BeBitter é um portfólio público construído para servir duas frentes ao mesmo tempo:
- apresentação profissional de Bernardo Gomes
- vitrine de projetos com dados puxados do GitHub
| Camada | Ferramentas |
|---|---|
| App shell | React 19, React DOM 19, React Router 7 |
| Linguagem | TypeScript 5.9 |
| Estado e dados | TanStack Query 5, React Context |
| UI | Tailwind CSS 4.2, Radix UI, shadcn/ui, Framer Motion |
| Formulários | React Hook Form, Zod |
| Testes | Vitest 4, Testing Library, jsdom |
| Build | Vite 7, terser, Critters, vite-plugin-compression |
| Deploy | SSH + rsync para Hostinger |
Definidas em src/App.tsx:
//now/services/projects/projects/:slug
src/
├── components/ # layout, SEO, analytics e UI compartilhada
├── constants/ # configurações e textos estáticos
├── contexts/ # idioma e catálogo de projetos
├── hooks/ # integrações e lógica reutilizável
├── lib/ # helpers compartilhados
├── pages/ # páginas e seções
├── test/ # setup de testes
└── utils/ # segurança, performance e utilitários
- GitHub REST API para listar repositórios e montar páginas de projeto
- Google Analytics via componente dedicado
- Service worker para cache e gestão de atualização
- WhatsApp widget carregado de forma lazy em telas maiores
O fluxo de produção parte de pnpm build:
- gera
public/sitemap.xml - executa o build do Vite 7
- aplica inlining de CSS crítico
- gera assets comprimidos em gzip e Brotli
O deploy para Hostinger usa scripts/deploy.ts e faz:
- build local
- backup remoto da pasta
public_html - sincronização com
rsync --delete - ajuste de permissão
- verificação de
index.html,robots.txtesitemap.xml
pnpm ci:checkroda lint, testes e build- GitHub Actions executa CI em Node 22
- CodeQL roda em PR e push
- Dependency Review valida mudanças de lockfile
- Dependabot monitora dependências
- HTML de README vindo do GitHub é sanitizado antes da renderização em src/utils/security.ts
Aplicacao local:
cp .env.example .env.localDeploy:
cp .env.deploy.example .env.deployAs variáveis de deploy esperadas estão descritas em DEPLOY-CHECKLIST.md e em scripts/deploy.ts.