Hacker News Plus
Cliente web para o Hacker News — React + TypeScript, consumindo duas APIs públicas.
- React 18
- TypeScript
- Vite
- React Router DOM v6
- Axios
- Bootstrap 5
- React Bootstrap
- Phosphor Icons
- date-fns
- DOMPurify
Full-screen para maior qualidade.
Contexto
HackerNewsPlus é um cliente web para o Hacker News que consome duas APIs públicas. O usuário navega pelos posts do front page, posts mais recentes, busca por título, visualiza comentários de uma story e acessa o perfil de qualquer autor. Interface full dark mode construída com Bootstrap 5.
Decisões técnicas
DOMPurify para sanitização de HTML externo
A HN API retorna comentários e o campo “about” dos usuários como HTML bruto gerado por terceiros. Antes de qualquer dangerouslySetInnerHTML, o conteúdo passa por DOMPurify.sanitize(). Sem isso, qualquer usuário do HN poderia injetar scripts que rodariam no contexto do cliente.
Duas APIs distintas para domínios distintos
Posts, comentários e busca usam a Algolia HN Search API — que tem suporte nativo a paginação, full-text search e filtros por tag. Perfis de usuário usam a Firebase HN API oficial, única fonte que expõe karma e about. Separar as chamadas por responsabilidade evita workarounds para buscar dados que uma API não tem.