Em 2014, o HTML do Hacker News havia se tornado uma base frágil para um grande ecossistema: muitos aplicativos e projetos de terceiros faziam scraping da marcação do site para ler suas histórias e comentários, e a marcação estava longe de ser amigável para dispositivos móveis. O Y Combinator queria modernizar o front end e iterar mais rápido sobre ele, mas uma mudança ingênua no HTML teria quebrado de uma vez todas as ferramentas dependentes de scraping.
A jogada do YC foi lançar os dados como um produto próprio antes de mexer na apresentação. Em 7 de outubro de 2014, anunciou uma API oficial do Hacker News construída em parceria com o Firebase (YC S11), servindo o conteúdo do site quase em tempo real em hacker-news.firebaseio.com, com documentação e exemplos publicados em uma conta do Hacker News no GitHub. Os SDKs prontos para iOS, Android e Web do Firebase, além de uma API REST, permitiram que os desenvolvedores fizessem a troca sem reconstruir suas stacks.
O sequenciamento era o ponto central: o anúncio deu ao ecossistema três semanas de prazo antes da data-alvo do YC, 28 de outubro, para um novo motor de renderização, ainda alimentado pelo Arc, cuja marcação mais limpa permitiria ao front end iterar mais rápido e finalmente tornar o Hacker News otimizado para dispositivos móveis. Como a API era estritamente melhor que o scraping para a maioria dos usos — atualizações quase em tempo real, SDKs mantidos, nenhuma análise frágil de HTML —, converter era uma melhoria e não uma tarefa penosa, e o site podia mudar sua apresentação sem manter seus usuários reféns.
A medida foi lida como zelo pelo ecossistema: a thread do Hacker News recebeu 1.714 pontos e 298 comentários no mesmo dia. A API foi lançada somente para leitura, com acesso OAuth a dados privados por usuário planejado para depois, e o YC creditou sua equipe de software — kogir, dang e sctb — pela construção.
Lançar primeiro o contrato de dados: uma API oficial quase em tempo real que é estritamente mais fácil que o scraping, com aviso antes da mudança que quebra compatibilidade
Desacoplar os dados da apresentação significa que o front end pode mudar sem quebrar ninguém que consome o conteúdo.
A sincronização quase em tempo real do Firebase com SDKs mantidos tornou a API estritamente mais fácil que o scraping, de modo que a adoção foi uma migração voluntária e não uma conversão forçada.
Anunciar um prazo fixo de três semanas antes da mudança da marcação deu a cada aplicativo um prazo e um motivo para migrar cedo.
Manter o mesmo motor Arc enquanto se mudava apenas a marcação de saída reduziu o risco de que a API e o site se afastassem.
Para mudar uma plataforma sobre a qual outros constroem, extraia primeiro o contrato de dados, torne-o estritamente melhor que o hack que ele substitui e publique a data da mudança que quebra compatibilidade para que os usuários migrem por conta própria.
A API entrou no ar no mesmo dia em hacker-news.firebaseio.com, somente para leitura, com SDKs oficiais para iOS, Android e Web, além de uma API REST, e o YC disse que o acesso OAuth a dados privados por usuário poderia vir depois. O anúncio no Hacker News recebeu 1.714 pontos e 298 comentários em 7 de outubro de 2014. O post definiu 28 de outubro como meta para a troca para o novo motor de renderização, para que a marcação pudesse ser modernizada e otimizada para dispositivos móveis depois que o ecossistema tivesse tempo de converter — a API foi apresentada como o viabilizador dessa mudança, e não como um fim em si mesma.
CONFIRA AS EVIDÊNCIAS
As fontes
- Hacker News API Y Combinator Blog · blog.ycombinator.com ·
- Hacker News discussion: Hacker News API Hacker News · news.ycombinator.com ·