Um portfólio fica mais fácil de manter quando projetos, posts, links e módulos da stack são orientados a dados. Esse princípio moldou cada decisão arquitetural no LookADev, da estrutura de arquivos à estratégia de deploy.
O portfólio e o arquivo de artigos mantêm seu conteúdo em módulos TypeScript. Isso dispensa um CMS para editar a descrição de um projeto ou publicar um post. Não significa que toda a aplicação LookADev esteja sem banco de dados ou integrações em tempo de execução.
Para um arquivo pequeno, um objeto tipado é uma interface de edição útil: o autocompletar aponta campos ausentes e o pull request mostra as alterações no conteúdo. Reavalie um CMS quando editores não técnicos precisarem publicar sem ajuda ou de um fluxo de aprovação que o Git não atenda.
Separe a estrutura compartilhada, as listas de página e os componentes básicos de UI. Faça os cards consumirem os registros de projeto e as páginas de artigo consumirem os módulos de conteúdo. Assim, uma edição de texto não exige alterar componentes de layout e você tem um lugar para conferir os dados publicados.
Mantenha títulos e corpos em português e inglês no mesmo fluxo de publicação. URLs por idioma, tags canonical e links de idioma recíproco precisam descrever o mesmo artigo traduzido. Um seletor de idioma sozinho não torna um artigo bilíngue.
A metáfora retrô de 'cartucho' nos cards de projetos não era apenas visual. Ela orientou o modelo de dados. Cada projeto tem um fileName (como PROJECT_01.CART), um status (LIVE, PUBLIC, EXPERIMENTAL), uma cor de destaque e um array caseStudy com seções identificadas. O componente do card renderiza de forma diferente conforme o status: projetos no ar recebem um indicador pulsante, repositórios públicos recebem um link do GitHub e projetos experimentais recebem um selo de laboratório.
O Next.js pode gerar rotas de conteúdo conhecidas antes de uma requisição. Confira o comportamento de renderização no runtime implantado e meça o carregamento e a estabilidade visual em dispositivos representativos. Arquivos de dados e pré-renderização não garantem pontuação no Lighthouse nem posição em buscas.
Mantenha os dados separados da apresentação para ordenar posts recentes, localizar títulos e gerar um feed a partir dos mesmos registros. Essas operações ainda têm custo computacional; o benefício é uma superfície menor de manutenção e menos cópias divergentes.
Referência: API de Metadata do Next.js.