weve

Uma API em Go, um produto em TypeScript, um contrato entre os dois.

O contrato é a fonte de verdade: dele saem o servidor e o client. O que diverge não compila — em vez de aparecer em produção.

Recursos

API em Go

chi, pgx e queries tipadas com sqlc. Migrations versionadas e um envelope de erro único.

Contrato antes do código

Um openapi.yaml gera o servidor e o client. Divergir do contrato quebra o build, não a produção.

Dashboard em Next.js

App Router, Tailwind v4 e shadcn/ui, falando com a API por um BFF que nunca expõe a origem.

Cache e freio

Redis para cache e rate limit por IP. Sem Redis a aplicação sobe igual — cache é aceleração, não dependência.

Erro que chega em alguém

Sentry nas duas pontas, com PII podada na origem. O log guarda o detalhe; o alerta guarda o grupo.

Um repositório só

pnpm workspaces e Turborepo: um comando levanta tudo, e o que não mudou não é rebuildado.

Stack

API
Go · chi · pgx · sqlc · goose
Dashboard
Next.js · React · Tailwind · shadcn/ui
Site
Astro · ilhas React
Infra
Postgres · Redis · Sentry

Perguntas