PWA offline-first do zero: da fundação ao dashboard, em paralelo
Dia intenso bootstrapando um PWA mobile-first com Next.js, Dexie e Supabase, avançando da fundação até o dashboard e os PRDs de fase 3, com múltiplos workspaces em paralelo.
Dia quase inteiramente dedicado a um projeto cliente (NDA): um app mobile-first offline-first que saiu do nada para ter fundação, auth, dashboard e PRDs de fase 3 no mesmo dia.
Projeto PWA (NDA)
Vários workspaces correndo em paralelo, todos convergindo para o mesmo repositório. O ponto de partida foi um scaffold limpo com Next.js e Bun; em poucas horas a base já tinha Dexie para armazenamento offline, TanStack Query para estado servidor, Zustand para estado global, Serwist para o service worker e t3-env para validação de variáveis de ambiente.
A decisão arquitetural mais fina foi lidar com o conflito Turbopack e Serwist.
Turbopack acelera o dev, mas o Serwist é estável só com webpack.
A saída: Turbopack em next dev (SW desabilitado em dev de qualquer jeito) e next build --webpack na produção.
Isso ficou documentado num ADR junto com as outras escolhas do dia.
A fase 2 entrou em seguida: dashboard do piloto, sync engine entre Dexie e Supabase, wizard de relatório e o schema no banco.
O Supabase auth ganhou uma regra de gate de senha temporária no primeiro acesso.
Aqui surgiu também o padrão de abstração para o cliente Supabase: em vez de criar a instância espalhada por vários arquivos, ficou definido que hooks encapsulam o createClient(), separando server-side de client-side com contratos explícitos.
Um dos workspaces focou em utilitários: portei máscaras de CPF, CNPJ, telefone, CEP e formatação de moeda em centavos de outro projeto da casa, adaptando para as convenções locais.
Outro workspace varreu as classes Tailwind arbitrárias (os h-[54px] e px-[16px] da vida) e substituiu pelos canônicos do framework.
Para fechar o dia no projeto, um workspace analisou os contextos visuais das telas e gerou PRDs detalhados por tela com 15 tickets de implementação para a fase 3.
tgmarinho-ai-website
Fechei o PR com as entradas de journal dos dias 21-23 de julho e comecei o daily de hoje. Atividade leve aqui, mas o pipeline seguiu funcionando.
Curadoria técnica
Separei um tempo para mapear repositórios open-source de tecnologia fiscal brasileira: NF-e, NCM, tributos, reforma tributária. A intenção é ter referências rápidas quando o tema aparecer em algum projeto.
Dia pesado, mas com uma satisfação rara: ver um app ir do zero ao dashboard com auth offline-first em horas, com múltiplos agentes operando em paralelo no mesmo repositório sem conflito.