Documentação

StartFast Pro

StartFast Pro é um boilerplate premium Next.js 15 pronto para produção com autenticação, pagamentos, equipes, i18n, analytics, blog e um sistema de UI limpo — tudo pré-configurado.

Esta documentação vai te ajudar a começar rapidamente e personalizar o StartFast Pro para seu produto SaaS.

O que você recebe

  • Next.js 15 App Router com React 19 e componentes de servidor
  • Autenticação com Better Auth (E-mail, Google, GitHub OAuth)
  • Banco de dados PostgreSQL com Drizzle ORM
  • Pagamentos Stripe com assinaturas e webhooks
  • Envio de e-mails via Resend
  • Internacionalização com next-intl (7 idiomas)
  • Equipes e RBAC com organizações, funções e permissões
  • Analytics com integração PostHog
  • Sistema de blog com Markdown, SEO e tempo de leitura
  • Painel admin para usuários, pedidos, analytics e conteúdo
  • Testes E2E com Playwright
  • TypeScript com segurança de tipos de ponta a ponta

Início rápido

1Clonar o repositório
git clone https://github.com/Harries/startfast-pro.git my-saas
2Instalar dependências
cd my-saas && npm install
3Configurar ambiente
cp .env.example .env.local
4Configurar banco de dados
npm run db:push
5Iniciar desenvolvimento
npm run dev

Abrir http://localhost:3000

Variáveis de ambiente

Copie .env.example para .env.local e configure:

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=StartFast Pro

# Database (Postgres)
DATABASE_URL=postgresql://username:password@localhost:5432/startfast_pro

# Authentication (Better-Auth)
BETTER_AUTH_SECRET=your-secret-key-at-least-32-characters
BETTER_AUTH_URL=http://localhost:3000

# Email (Resend)
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx

# Optional: Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Optional: GitHub OAuth
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

# Default Locale
NEXT_PUBLIC_DEFAULT_LOCALE=en

Configuração do banco de dados

StartFast Pro usa PostgreSQL com Drizzle ORM. Recomendamos Neon para PostgreSQL serverless.

  1. 1.Criar um banco de dados PostgreSQL (local ou Neon)
  2. 2.Configurar DATABASE_URL no seu .env.local
  3. 3.Executar npm run db:push para enviar o schema ao banco de dados
  4. 4.Usar npm run db:studio para ver/editar dados com Drizzle Studio
  5. 5.Usar npm run db:generate para gerar migrações

Schema: O schema do banco é definido em src/db/schema.ts usando a abordagem TypeScript-first do Drizzle. O cliente DB é exportado de src/db/index.ts.

Autenticação

StartFast Pro usa Better Auth com adaptador Drizzle para autenticação. Suporta e-mail/senha e OAuth social.

  1. 1.Configurar BETTER_AUTH_SECRET (pelo menos 32 caracteres)
  2. 2.Configurar BETTER_AUTH_URL com a URL do seu app
  3. 3.(Opcional) Configurar Google OAuth: GOOGLE_CLIENT_ID e GOOGLE_CLIENT_SECRET
  4. 4.(Opcional) Configurar GitHub OAuth: GITHUB_CLIENT_ID e GITHUB_CLIENT_SECRET

Tip: A config de auth está em src/lib/auth.ts (servidor) e src/lib/auth-client.ts (cliente). Sessões expiram após 7 dias por padrão.

Pagamentos Stripe

StartFast Pro suporta assinaturas Stripe com tratamento de webhooks.

  1. 1.Obter suas chaves API em Stripe Dashboard → API Keys
  2. 2.Configurar STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
  3. 3.Criar um endpoint de webhook em https://your-domain.com/api/webhook/stripe
  4. 4.Copiar o segredo de assinatura do webhook para STRIPE_WEBHOOK_SECRET

Tip: Para testes locais, use stripe listen --forward-to localhost:3000/api/webhook/stripe

Configuração de e-mail

StartFast Pro usa Resend para e-mails transacionais.

  1. 1.Criar uma conta no Resend
  2. 2.Obter sua chave API e configurar RESEND_API_KEY
  3. 3.Configurar EMAIL_FROM com seu endereço de remetente verificado
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

Internacionalização

StartFast Pro inclui suporte multi-idioma via next-intl com 7 idiomas integrados.

  • Inglês (en)
  • Chinês (zh)
  • Japonês (ja)
  • Coreano (ko)
  • Alemão (de)
  • Francês (fr)
  • Espanhol (es)

Os arquivos de tradução estão em src/i18n/messages/. Configure o locale padrão com:

NEXT_PUBLIC_DEFAULT_LOCALE=en

Analytics

StartFast Pro integra-se com PostHog para analytics de produto. Rastreadores de eventos pré-configurados estão incluídos para cadastros, assinaturas, ações de equipe e mais.

  1. 1.Criar uma conta no PostHog
  2. 2.Configurar NEXT_PUBLIC_POSTHOG_KEY e NEXT_PUBLIC_POSTHOG_HOST

Tip: Helpers de analytics estão em src/lib/analytics.ts. Use analytics.signUp(), analytics.subscriptionStarted(), etc.

Equipes e funções

StartFast Pro inclui um sistema completo de organização e controle de acesso baseado em funções (RBAC).

Funções

  • Proprietário — Acesso completo. Pode transferir a propriedade.
  • Admin — Gerenciar membros, configurações e a maioria dos recursos.
  • Membro — Criar e editar conteúdo. Acesso limitado a configurações.
  • Visualizador — Acesso somente leitura.

Tip: Permissões são definidas em src/lib/permissions.ts. Use hasPermission(role, permission) para verificar acesso.

Deploy

Faça deploy na Vercel em minutos:

  1. 1.Envie seu código para o GitHub
  2. 2.Importe o repo na Vercel
  3. 3.Adicione todas as variáveis de ambiente
  4. 4.Deploy!

Important: Após o deploy, atualize sua URL de webhook do Stripe para seu domínio de produção.

Suporte

Precisa de ajuda? Entre em contato: