Como tornar seu open source famoso
(evilmartians.com)O que saber antes de tornar seu open source famoso
- Se você quer ficar famoso ou rico com open source, essa é a abordagem errada
- Em vez de criar um projeto popular, escrever um blog ou palestrar em conferências é mais eficaz
- Redux e React Router são projetos populares, mas seus mantenedores não têm muitos seguidores nas redes sociais → a popularidade do projeto não leva à popularidade pessoal
Não crie open source para colocar no currículo
- A percepção de que participação em open source é obrigatória é falsa
- Mesmo que você comece open source para ficar famoso, não há garantia de sucesso
- Mesmo um bom projeto pode te deixar desanimado se tiver apenas uma estrela
- Atividade em open source pode ajudar em processos de contratação, mas contribuir para projetos famosos já existentes é mais eficaz do que criar seu próprio projeto
Comece contribuindo primeiro
- Em grandes projetos open source, comece por corrigir documentação ou corrigir bugs
- Escrever um PR é muito mais fácil do que escrever código
- O melhor motivo para criar um bom open source é querer mudar o mundo
Como mudar o mundo com open source
- O motivo para criar o PostCSS foi diversificar o ecossistema de ferramentas de CSS e facilitar o processamento de CSS → foi um sucesso
- Popularidade e sucesso são fatores importantes
O segredo dos projetos populares
Popularidade de um projeto = notoriedade + promoção + benefícios para o usuário + sorte
- Projetos criados por desenvolvedores populares tendem a ficar populares com mais facilidade → pode ser injusto, mas é a realidade
- É preciso entender as causas da popularidade e agir de forma estratégica
Como as pessoas escolhem open source
- As pessoas não escolhem ferramentas de forma racional
- A maioria decide olhando a quantidade de estrelas no GitHub
- Ou costuma seguir frameworks mencionados em conferências
Como as pessoas realmente leem informação
- Usuários não leem o README nem a documentação do começo ao fim
- É preciso oferecer a informação de forma simples e progressiva, como um 'JPEG progressivo'
- No primeiro bloco, é preciso explicar com clareza os benefícios
Estratégias para ganhar popularidade
- É preciso organizar bem suas contas em redes sociais
- No começo, o autor não criou contas sociais em inglês, então as pessoas tinham dificuldade para encontrá-lo
- Se você é um desenvolvedor que não fala inglês, criar contas em redes sociais em inglês é vantajoso
- Quando o projeto for mencionado, é preciso fornecer um link para o perfil para facilitar a conexão com os usuários
- Defina uma mentalidade realista
- Sorte é importante, mas não é tudo
- O autor teve apenas 4 projetos bem-sucedidos entre 56
- Passou por várias falhas até criar um projeto popular
- Projetos de sucesso são resultado de tentativas consistentes e falhas repetidas
- Aceite o fracasso como algo natural
- Um projeto popular exige esforço de longo prazo, como uma maratona
- O fracasso faz parte do processo → é preciso melhorar continuamente e tentar de novo
- Comece esperando falhar desde o início, mas sem abrir mão da qualidade do trabalho
Como tornar um open source popular: README
- O README e a documentação definem a primeira impressão do projeto
- O usuário precisa entender rapidamente o valor do projeto pelo README
- O README pode chegar ao usuário por caminhos como
- apresentações, posts de blog, podcasts e outras rotas de promoção
- no fim, tudo leva ao README, então ele precisa ser escrito com cuidado
- O leitor não lê o README com atenção do começo ao fim
- Por isso, a primeira parte do README precisa transmitir com clareza o valor do projeto
- No primeiro bloco, as pessoas precisam entender rapidamente os benefícios do projeto
Pergunta: você está comunicando o valor do projeto de forma eficaz?
- As pessoas não leem documentação com calma e em detalhes
- Por isso, é preciso organizar as informações e os benefícios principais de forma clara e concisa
- Uma boa organização da documentação melhora a experiência do usuário e aumenta a popularidade do projeto
1. Comunicar benefícios ao usuário de forma eficaz
- Comunicar os benefícios do projeto ao usuário está diretamente ligado à promoção
- Na fórmula de sucesso mencionada antes, oferecer benefícios ao usuário é um fator importante
Popularidade de um projeto = notoriedade + promoção + benefícios para o usuário + sorte
- É preciso comunicar com clareza os benefícios ao usuário no README, na documentação ou mesmo em uma apresentação curta
- Para chamar atenção pelo valor real, e não pela popularidade ou reputação, considere os seguintes pontos
- Legibilidade da informação: o usuário precisa conseguir entender rapidamente o essencial
- Escaneabilidade: as informações importantes precisam se destacar facilmente
- Primeira impressão: o valor do projeto precisa ficar claro nos primeiros segundos
2. Transmitir a mensagem de forma rápida e eficaz
- O primeiro bloco do README precisa incluir obrigatoriamente estes três elementos
- Uma explicação clara
- Uma indicação clara de como isso ajuda o usuário
- Uma diferenciação em relação a outros produtos
- Você precisa deixar claro já na primeira frase por que vale a pena ler a documentação
- A primeira frase é a mais importante → a maioria dos usuários lê só a primeira frase para julgar o valor do projeto
- Por isso, os benefícios do projeto precisam aparecer com clareza no primeiro bloco
- Não tem problema investir de alguns dias a uma semana escrevendo o primeiro bloco do README
- O primeiro bloco do PostCSS levou cerca de uma semana para ser escrito
- Quanto mais esforço houver nesse primeiro bloco, maiores as chances de sucesso do projeto
3. Explicar o produto de forma que as pessoas entendam facilmente
- A descrição do projeto precisa ser clara e intuitiva
- Uma explicação prática é mais importante do que uma frase que pareça sofisticada
- ❌ "Svelte is cybernetically enhanced web apps"
- É vago demais → não fica claro quais vantagens concretas isso traz
- ✅ "Svelte is a web UI framework with a unique compiler which generates smaller JS fixes."
- É específico e claro → explica que problema resolve e quais benefícios oferece
- Escreva a explicação como se estivesse conversando com um colega em um bar
- "Você criou uma ferramenta nova? O que ela faz?" → explique de forma natural
- Depois de organizar a explicação, refine para deixá-la mais concisa
- Depois de escrever, revise mais 2 a 4 vezes para deixá-la curta e clara
4. Transmitir informação rapidamente com listas e texto em negrito
- Para transmitir informação com clareza, é preciso usar bem listas e texto em negrito
- Descrição anterior do Nano Stores (em bloco de texto)
- Nano Stores é um gerenciador de estado que pode ser usado em vários frameworks de front-end
- É pequeno e não tem dependências
- Descrição revisada (usando lista e destaque em negrito)
- Nano Stores tem as seguintes características:
- Tamanho pequeno: 286~818 bytes (minified e brotlied)
- Suporte a vários frameworks: React, Vue, Svelte, Angular etc.
- Sem dependências
- Nano Stores tem as seguintes características:
-
Pontos para melhorar a legibilidade
- Uso de listas: estrutura a informação para entendimento rápido
- Uso de negrito: destaca as informações principais para percepção imediata
- Frases concisas: mantenha apenas o que importa e remova o desnecessário
- Mesmo reduzindo o texto, a mensagem precisa continuar clara
5. Usar exemplos de código e imagens
- Conceitos complexos podem ser explicados com facilidade por meio de código de exemplo ou imagens
- Como diz o ditado, “uma imagem vale mais que cem palavras”; recursos visuais são ferramentas poderosas para ajudar na compreensão
6. Usar estatísticas reais
- Expressões vagas ou promessas abstratas têm dificuldade para gerar confiança
- É preciso apresentar estatísticas concretas sobre desempenho, tamanho, velocidade etc.
-
Exemplo: uso de estatísticas reais no Nano ID
- Prova de tamanho: Nano ID tem 141 bytes → fornece um número claro
- Prova de velocidade: Nano ID é 16% mais rápido que UUID → apresenta resultado de benchmark
- Dicas para usar estatísticas de forma eficaz
- Forneça dados de desempenho quantificados → reforça a credibilidade
- Mostre resultados de benchmark → destaca a diferenciação em relação a outros produtos
- Apresente também desempenho da API e forma de uso de maneira clara com exemplos reais
- Desempenho, tamanho e velocidade devem ser comprovados com números e dados concretos
7. Fornecer um guia de início passo a passo
- Se os benefícios do projeto ficaram claros, o próximo passo é oferecer instruções concretas de uso
- Depois de ler o README e se interessar pelo projeto, o usuário deve conseguir seguir naturalmente para a próxima etapa
-
Dicas para escrever um guia de início eficaz
- Forneça um guia específico, passo a passo
- Em vez de uma explicação vaga como “use PostCSS”, apresente etapas claras e concretas
- Em cada etapa, especifique os comandos e a forma de configuração necessária
- Ofereça caminhos alternativos
- Apresente abordagens diferentes conforme a situação do usuário
- Ex.: adicione como proceder caso o PostCSS não esteja instalado
- Crie seções por tipo de usuário
- Ofereça guias adequados tanto para usuários de bibliotecas grandes quanto de bibliotecas pequenas
- Forneça um guia específico, passo a passo
-
Teste é obrigatório
- Siga você mesmo o guia que escreveu para verificar se ele realmente funciona
- Sempre que possível, esqueça o conhecimento prévio sobre o projeto e refaça tudo do zero
- Se surgir algum problema, corrija e complemente imediatamente
- Siga você mesmo o guia que escreveu para verificar se ele realmente funciona
Estratégias eficazes de divulgação para open source
1. A importância da divulgação repetida
- Muita gente comete o seguinte erro
- posta só uma vez na rede social
- não recebe reação
- fica desanimada
- abandona o projeto
- Uma única grande divulgação não é eficaz → é necessária uma divulgação gradual e repetida
- Ciclo eficaz de divulgação repetida
- criar conteúdo como lançamento de recurso novo, post de blog ou publicação em rede social
- receber feedback dos usuários
- ajustar o projeto com base no feedback
- criar novo conteúdo sobre as mudanças → recomeçar
- No início, ter poucos usuários pode até ser uma vantagem → permite ajustar sem estresse
- Melhorias contínuas e divulgação repetida aumentam a notoriedade
2. Estratégia eficaz de divulgação em redes sociais
- Não compartilhe apenas um link nem termine com uma explicação curta demais
- Inclua estas duas coisas
- Exemplo de código ou imagem → facilita o entendimento
- Descrição clara do projeto → até novos usuários conseguem entender
-
Exemplo de template para post de divulgação
- anúncio de novo recurso → explicação clara → incluir exemplo de código → compartilhar nas redes sociais
- postar no subreddit relevante no Reddit (verifique as regras de cada subreddit)
- postar no Hacker News → pode ajudar a obter traction inicial
- escrever artigos no Dev.to, Smashing Magazine, CSS-Tricks etc. → ampliar a exposição
3. Estratégia de divulgação por PR
- Envie PRs para introduzir seu open source em outros projetos
- Ex.: o PostCSS foi divulgado com sucesso por meio de PRs em outros projetos
- "Se precisar de ajuda, posso tentar aplicar esta ferramenta."
- Quando o PR for aceito, registre os casos de adoção no README → aumenta a confiança
- Informar que seu projeto é usado por projetos populares reforça a credibilidade
4. Repita, mas sem fazer spam
- Divulgação contínua e repetida é necessária
- Mas spam é absolutamente proibido
- Não repita a mesma mensagem; entregue valor novo
- Inclua mudanças e evolução no conteúdo
- Nem todo usuário lê toda publicação → é preciso repetir a divulgação periodicamente em formatos variados
Por que repetir a divulgação
- As pessoas não escolhem ferramentas racionalmente
- A divulgação repetida forma notoriedade de maneira natural
- É preciso construir notoriedade ao longo do tempo para aumentar as chances de sucesso
Bônus
1. Como lidar com problemas quando o projeto fica famoso
- Quando o projeto ganha popularidade, a quantidade de issues a resolver pode explodir
- Se você tentar resolver tudo sozinho, a carga aumenta e isso pode levar a desânimo e queda de produtividade
-
Solução
- Não tente resolver tudo diretamente → incentive os usuários a abrirem PRs
- Peça algo como: "Se você quiser resolver esse problema, pode enviar um PR?"
- Defina um tempo para lidar com problemas (ex.: 15 minutos por dia) e trate disso apenas dentro desse limite
- Em problemas difíceis, não tente resolver imediatamente; responda algo como "Estou analisando uma forma de resolver" → só esse retorno de que o problema foi reconhecido já tranquiliza o usuário
- Correções de documentação também podem ser deixadas para os usuários → peça: "Você pode corrigir esta parte?"
2. Como lidar com feedback negativo
- Feedback negativo pode reduzir a motivação
- No começo do projeto, ele pode minar o entusiasmo; quando a popularidade cresce, pode enfraquecer sua confiança
-
Estratégia de resposta
- Não reaja emocionalmente
- Faça perguntas sobre a crítica → pergunte: "Por que você acha que B é melhor do que A?"
- Muitas críticas são apenas expressão emocional → tente conversar com o usuário para construir confiança
- A crítica pode se tornar uma oportunidade de melhoria
3. Como reagir quando surgem projetos concorrentes
- Não há motivo para se preocupar quando aparece um projeto concorrente
- Quando surgem concorrentes, isso pode trazer vantagens como
- aliviar o peso de manter o projeto
- estimular soluções melhores por meio da concorrência → no fim, os usuários também ganham
- O objetivo final do open source é mudar o mundo → não é monopólio nem dominação
- Surgimento de projeto concorrente → ferramenta melhor nasce → situação ganha-ganha
Resumo final
Como criar um open source popular e ganhar visibilidade
- O melhor motivo para criar open source não é fama nem fortalecer o currículo, mas mudar o mundo
- Não há garantia de que uma boa ideia vá virar um projeto popular
- A fórmula da popularidade em open source = notoriedade + promoção + benefícios para o usuário + sorte
- Suas contas em redes sociais devem ser ativas, fáceis de encontrar e escritas em um idioma amplamente usado, como o inglês
Como escrever documentação eficaz
- README e documentação devem ser escritos de forma clara e natural, como se você estivesse explicando para um amigo
- Use texto em destaque, listas e estrutura organizada para transmitir informações complexas de forma progressiva
- É preciso fornecer evidências concretas, como benchmarks reais e exemplos de código
- Sempre que possível, ofereça guias de início específicos para iniciantes e usuários avançados
Estratégia de divulgação
- Divulgação repetida é mais eficaz do que uma única grande campanha → lançar → receber feedback → melhorar → repetir
- Publique regularmente, mas evite spam
- Crie posts com exemplos de código e imagens
- Envie PRs para outros projetos para maximizar o efeito de divulgação
Dicas para quando o projeto ficar famoso
- Não tente resolver todos os problemas sozinho; incentive os usuários a enviar PRs
- Reserve um tempo fixo para lidar com problemas (ex.: 15 minutos por dia)
- Se houver feedback negativo, tente abrir diálogo por meio de perguntas
- Não tenha medo de projetos concorrentes → a concorrência pode até libertar você da responsabilidade
1 comentários
Também parece importante encontrar lugares onde seja aceitável fazer divulgação com conteúdos ligeiramente diferentes, mas que, vistos de longe, são repetitivos. Por exemplo, o Twitter.