Billing global, sem abrir empresa fora

Do download ao seu primeiro pagamento internacional, em um final de semana.

Três frontends, uma API e billing com dois provedores: Stripe na sua conta doméstica, Paddle como merchant of record no resto do mundo. O código é seu, sem lock-in.

React + TypeScriptAPI .NET 10i18n incluídoCI/CD pronto
Marketing SitePáginas públicas, preços e SEO
React Web AppÁrea do cliente com auth e billing
API .NETProdutos, planos, features e pagamentos
Banco · Auth · PagamentosPostgreSQL, Supabase, Stripe + Paddle
Admin PanelOpere produtos, planos e PSPs

Feito para construir com agentes de IA

Por que partir de uma base

Pare de reconstruir a mesma base a cada SaaS.

Comece pelas partes que tornam seu produto único. O resto já está pronto e rodando.

Construindo do zero

  • Autenticação~5 dias
  • Gestão de sessão~3 dias
  • Estrutura de admin~10 dias
  • Modelos de produto e preço~5 dias
  • Pagamentos globais com dois provedores~15 dias
  • Internacionalização~5 dias
  • Testes~5 dias
  • CI/CD~3 dias
  • Estrutura de deploy~3 dias
  • Documentação~3 dias

Começando com o CastorStack

  • Autenticaçãopronto
  • Gestão de sessãopronto
  • Estrutura de adminpronto
  • Modelos de produto e preçopronto
  • Pagamentos globais com dois provedorespronto
  • Internacionalizaçãopronto
  • Testespronto
  • CI/CDpronto
  • Estrutura de deploypronto
  • Documentaçãopronto

≈ 11 semanas de trabalho antes da primeira linha do seu produto — ou US$ 147 e você começa depois disso.

O que vem dentro

Todas as camadas de um SaaS real, já no lugar.

Três frontends, uma API e tudo o que liga um ao outro.

Marketing Site

Site público com preços, estrutura de SEO e i18n, conectado ao catálogo do produto.

Web App do Cliente

Área autenticada do cliente: dashboard, plano, uso e base de billing.

Painel Admin

Opere produtos, planos, features, usuários, assinaturas e PSPs.

API .NET

API .NET 10 com EF Core, PostgreSQL e endpoints versionados.

Autenticação

Auth com Supabase, sessões e rotas protegidas em todos os apps.

Gestão de Produtos

Produtos, planos e catálogo gerenciados pelo painel admin.

Preços & Features

Planos, feature flags e vínculos plano-feature prontos para modelar sua oferta.

Provedores de Pagamento

Stripe e Paddle integrados de ponta a ponta: checkout, webhooks assinados e entitlements, com vínculo de checkout por plano.

Internacionalização

Rotas por idioma, arquivos de tradução e seletores de idioma em cada frontend.

Testes Automatizados

Testes unitários com Vitest nos frontends, testes xUnit na API e suítes end-to-end com Playwright.

Deploy

Frontends prontos para Vercel e uma API containerizada, que você sobe onde quiser.

Configuração Centralizada

Branding, produto, preços e features guiados por arquivos de configuração.

Extensível
Billing global

Venda no mundo todo sem abrir empresa em cada país.

Clientes do seu país são cobrados pelo Stripe. Todos os outros passam pelo Paddle como merchant of record, então o IVA e os impostos sobre venda ficam por conta dele.

  • Regra de país para provedor, configurada no painel admin
  • Webhooks assinados dos dois provedores liberam os mesmos entitlements
  • Um único endpoint de checkout: a API resolve qual provedor usar
País do compradorConfirmado no checkout
Regra de roteamentoDoméstico, internacional, fallback
StripeSua conta doméstica
PaddleMerchant of record
Webhook → acessoEntitlement liberado
Arquitetura

Um monorepo. Fronteiras claras.

Cada app tem uma única responsabilidade, e o que é compartilhado vive em um só lugar.

apps/

Três frontends com a mesma linguagem visual: marketing, app do cliente e admin.

backend/api/

Backend .NET 10: produtos, planos, features, usuários, assinaturas e provedores de pagamento.

config/

branding.json, product.json, pricing.json e features.json guiam o produto inteiro.

shared/ · docs/ · scripts/

Convenções, documentação e automações compartilhadas por todos os projetos.

Explorar a arquitetura completa
Stack

Uma stack que os times já conhecem.

Sem dependências exóticas. Ferramentas comprovadas, tipadas de ponta a ponta.

Frontend

ReactNext.jsViteTypeScriptReact Routeri18nextVitest

Backend

.NET 10C#EF CorePostgreSQLSupabase Auth

Qualidade & Infra

Playwright E2ESentryVercelMigrationsEnv Config
Como funciona

Do download ao deploy, sem desvios.

Branding, produto, preços e features são configuração centralizada, não constantes espalhadas.

Baixe o código

Um monorepo com frontends, API, banco e scripts.

Configure sua marca

Cores, logo e temas em config/branding.json; nome, slug e idiomas em config/product.json.

Defina produtos e preços

Modele planos e features pelo painel admin ou pelos arquivos de configuração.

Conecte auth e pagamentos

Plugue as credenciais do Supabase e as chaves de Stripe e Paddle. As integrações já estão prontas.

Construa sua experiência única

Gaste seu tempo no produto, não no boilerplate.

Faça o deploy

Suba na Vercel ou em qualquer host de sua escolha, sem lock-in.

config/branding.json
{
  "primaryColor": "#7C4DFF",
  "secondaryColor": "#0D0D16",
  "logoText": "CastorStack",
  "themeModes": [
    "light",
    "dark",
    "system"
  ]
}
Onboarding guiado

Um caminho guiado do zero ao seu primeiro pagamento

Sua compra inclui uma trilha de onboarding de 15 passos em inglês, espanhol e português. Ela leva você do pacote fechado a um produto no ar recebendo pagamentos reais. Cada passo termina com uma verificação, escrita para ser executada com um agente de IA.

Para quem é

Feito para quem lança SaaS.

Objetivos diferentes, mesmo ponto de partida.

Founders solo

Valide sua ideia com um produto de verdade, não com um protótipo.

Devs de SaaS

Pule a parte repetida e trabalhe nas features que diferenciam seu produto.

Freelancers

Entregue projetos SaaS de clientes com uma base profissional desde o dia um.

Software houses

Padronize como seu time inicia cada projeto SaaS.

Times de produto internos

Lance ferramentas internas com auth, admin e estrutura de billing prontos.

Quem lança em série

Reutilize a mesma base em vários produtos sem reaprender tudo de novo.

Em detalhe

O que a base cobre.

Agrupado pelas áreas que importam na hora de lançar.

Estrutura de monorepo
Convenções compartilhadas
Configuração centralizada
Documentação
Segurança

Proteções embutidas que você pode verificar no repositório.

Padrões concretos na API e no banco — não um selo genérico de enterprise.

Webhooks de pagamento assinados

Stripe e Paddle usam verificação HMAC, comparação em tempo constante, janela de replay de cinco minutos e tratamento idempotente de eventos.

Rotas admin protegidas de ponta a ponta

Todo endpoint /api/v1/admin/* exige sessão de administrador autenticada — conferido rota a rota.

Credenciais de PSP cifradas

Segredos dos provedores de pagamento são cifrados com ASP.NET Data Protection, ficam no banco e nunca voltam em texto puro pela API.

Sem SQL bruto na API

Entity Framework Core é o único caminho de acesso ao banco — sem queries montadas por concatenação que abram superfície de injeção.

RLS aplicado por migration

Tabelas no Supabase saem com row-level security e privilégios fechados, com teste de regressão que quebra o build se alguma tabela ficar exposta.

CORS restrito por padrão

Origens permitidas são explícitas e credenciais ficam desligadas — CSRF contra sessão por cookie fica fora por configuração.

Allowlist de redirect no checkout

URLs de returnTo precisam bater com as origens permitidas configuradas, para o checkout não virar open redirect.

Preview

Três frontends, uma linguagem visual.

Mesmo design system, trabalhos diferentes.

Home do marketing site em tema escuro, mostrando o hero e o diagrama dos três frontends.
Marketing Site

Venda o produto: hero, preços e páginas prontas para SEO.

Painel do web app do cliente com plano ativo, uso e ações rápidas, dados de demonstração.
Web App do Cliente

Área simples e orientada a valor para o cliente final.

Dashboard do admin panel com produtos, planos, PSPs e status de integrações, dados de demonstração.
Admin Panel

Painel operacional e denso para quem toca o SaaS no dia a dia.

Extensibilidade

Mude configuração, não código espalhado.

Identidade do produto e regras comerciais vivem em arquivos de configuração versionados.

config/product.json
{
  "slug": "castorstack",
  "name": "CastorStack",
  "tagline": "A production-ready foundation to build and launch SaaS products.",
  "locales": [
    "en",
    "es",
    "pt"
  ],
  "defaultLocale": "en",
  "demoMode": true
}
config/pricing.json
{
  "currency": "USD",
  "plans": [
    {
      "id": "starter",
      "name": "Starter",
      "priceMonthly": 0
    },
    {
      "id": "growth",
      "name": "Growth",
      "priceMonthly": 199
    }
  ]
}

Estas amostras são lidas dos arquivos reais de config/ no build. pricing.json é semente de instalação: depois do seed, planos e preços vivem no painel admin.

Quem construiu isto

Existe uma pessoa por trás deste código

Danilo Rodrigues

Danilo Rodrigues

Um dos fundadores do CastorStack e da DanTI Digital, programador há mais de 13 anos.

Construí este template para lançar produtos SaaS sem recomeçar a base do zero a cada vez. É o mesmo código que uso nos meus próprios produtos.

FAQ

Perguntas frequentes

Não. É uma base code-first para desenvolvedores: um monorepo com frontends React, API .NET e arquivos de configuração que você possui e estende.

Blog

Últimos artigos

O preço por usuário está perdendo força

Pesquisas de 2026 mostram entre 43% e 61% dos SaaS já usando algum modelo híbrido de preço. O que muda quando cobrar por usuário deixa de ser o padrão.

Ver todos os artigos

Seu próximo SaaS deveria começar pelo produto, não pelo boilerplate.

Baixe o código e gaste sua primeira semana no que torna seu produto diferente.