Files
millions/docs/19_TECH_STACK.md
2026-04-21 10:53:35 +01:00

2.2 KiB

Tech Stack

Stack selecionada

Aplicação

  • Next.js 16
  • React
  • TypeScript

Estilo e UI

  • Tailwind CSS
  • shadcn/ui
  • Lucide Icons

Dados e backend

  • PostgreSQL
  • Prisma ORM
  • Zod
  • React Hook Form

Plataforma e serviços

  • Supabase Database
  • Supabase Auth
  • Supabase Storage

Deploy recomendado

  • Vercel para a aplicação web
  • Supabase para base de dados, autenticação e ficheiros

Justificação da stack

A stack foi escolhida para maximizar:

  • rapidez de desenvolvimento
  • simplicidade arquitetural
  • boa legibilidade para agentes de IA
  • facilidade de manutenção
  • boa experiência para construir dashboards, formulários, listagens e workflows operacionais

Princípios da arquitetura técnica

  • Uma única codebase full-stack
  • Frontend e backend no mesmo projeto
  • Regras de negócio isoladas da camada visual
  • Base de dados relacional como fonte de verdade
  • Validação partilhada e explícita
  • Preparação para crescer sem reescrever a base

Decisões associadas

  • Não usar backend separado na V1
  • Não usar microserviços na V1
  • Não usar GraphQL na V1
  • Não desenvolver app mobile nativa na V1

Componentes por responsabilidade

Next.js

Responsável por:

  • interface da aplicação
  • routing
  • páginas
  • server components
  • route handlers
  • server actions, quando fizer sentido

Prisma

Responsável por:

  • schema de dados
  • migrations
  • acesso type-safe à base de dados

PostgreSQL

Responsável por:

  • persistência principal
  • integridade relacional
  • consultas operacionais e relatórios simples

Supabase

Responsável por:

  • alojamento da base de dados PostgreSQL
  • autenticação base
  • storage para ficheiros e imagens, quando ativado

Tailwind + shadcn/ui

Responsáveis por:

  • consistência visual
  • rapidez na criação de UI
  • componentes reutilizáveis

Zod + React Hook Form

Responsáveis por:

  • validação
  • formulários previsíveis
  • redução de erros de input

Dependências candidatas adicionais

  • TanStack Table para tabelas operacionais
  • date-fns para datas
  • clsx / tailwind-merge para composição de classes

Itens adiados

  • filas assíncronas
  • Redis
  • serviços de eventos
  • arquitetura multi-tenant
  • monitorização avançada