ÚLTIMO RELEASEEM DESENVOLVIMENTO DESDE 2026

Pule seis
meses de
boilerplate

Um starter TypeScript SaaS production-grade construído sobre Domain-Driven Design.

01Clone

Um comando. Bun puxa cada dependência do workspace, Prisma gera o cliente.

02Gere

Plop faz scaffold de domain, application, infrastructure — conectado ao container de DI.

03Deploy

A imagem Docker é construída com `bun run build`. Deploy para Fly, Render, sua VPS.

STACK

Construído sobre tecnologia que você já conhece.

Sem lock-in exótico de vendor. Infra padrão, chata, battle-tested — conectada para que você não precise.

EM NÚMEROS

Densidade, quantificada.

O que você recebe no dia em que clona o repo.

459
testes passando
24
páginas de docs
10
bounded contexts
3
providers de pagamento
3
idiomas i18n
0
mocks em CI

01 — IDENTITY

Auth que não te faz chorar.

Email + senha, OAuth, magic-link, 2FA TOTP, password reset, GDPR delete — pré-conectado com defaults sãos e rate limits desde o dia que você clona.

  • BetterAuth + sessões argon2id
  • OAuth (Google, GitHub, mais)
  • Sign-in com magic-link
  • 2FA TOTP + códigos de backup
  • Rate-limit por IP e por email
  • Password reset + verificação de email
Ver docs de auth
iam.signIn.ts
import { iam } from '@app/iam';
 
const session = await iam.signIn({
email,
password,
totp: code, // throws on invalid 2FA
});
 
// session is an HMAC-signed httpOnly cookie
// rate-limited per IP and per email

02 — REVENUE

Receba pagamentos no dia em que lançar.

Três providers de pagamento atrás de uma única port. Customer portal, webhooks assinados in e out — o loop completo.

  • IPaymentProvider port: Polar, Stripe, MercadoPago
  • Checkout e portal hospedados pelo provider
  • Webhook ingest idempotente com HMAC verificado
  • Recibos React Email via o módulo notifications
  • Webhooks de saída para seus clientes (HMAC + retries)
  • Audit trail de cada evento de billing
Ver docs de billing
01

Checkout

POST /billing/checkout returns the provider-hosted URL.

02

Webhook in

HMAC-verified, idempotent, persists to your read model.

03

Portal

One-line redirect to the provider-hosted customer portal.

03 — TENANCY

Multi-tenant desde t=0.

Workspaces, membros, roles, convites, API keys por tenant. As primitivas B2B que cada cliente pagante pede na semana dois.

  • Workspaces de organização com cookies HMAC-signed
  • Roles de membro: owner, admin, member
  • Convites por email com tokens que expiram
  • API keys com scope por tenant
  • Impersonation de platform-admin, totalmente auditada
  • Audit log append-only, event-sourced
Ver docs de RBAC
A
Acme Inc
PRO PLAN
MEMBERS · 4+ Invite

04 — RELIABILITY

Durma tranquilo à noite.

Tracing, erros, logs estruturados, readiness probes, jobs em Redis real. A infra chata que acorda alguém se você pular.

  • OTel auto-instrumentation (boota antes de Express)
  • Sentry: @sentry/bun + @sentry/nextjs
  • Logs Pino estruturados com trace correlation
  • /readiness probe + endpoint /metrics
  • Jobs BullMQ em Redis real
  • Dead-letter queue + schedulers tipo cron
Ver docs de observability
OTEL TRACE · 245mstrace_id 7f3a…
  • POST /api/v1/checkout245ms
  • iam.requireAuth4ms
  • pg SELECT user18ms
  • redis GET plan:423ms
  • polar.createCheckout168ms
  • jobs.enqueue receipt6ms

05 — AI

Primitivas de AI, não rebuilds.

Streaming de chat sobre SSE no Express, tool use, structured output, orçamentos de tokens por tenant, RAG, e um scaffold de servidor MCP.

  • Vercel AI SDK + provider da Anthropic
  • Streaming SSE no Express (sem lock-in de Vercel)
  • Tool use + structured output, type-safe
  • Token budget por org + rate limits
  • RAG com pgvector + primitivas de retrieval
  • Scaffold de servidor MCP + módulo assistant
Ver docs de AI
chat.route.ts
import { ai } from '@app/ai';
 
const stream = await ai.streamText({
model: 'claude-opus-4-7',
messages,
tools: { listUsers, search },
maxTokens: 4096, // per-org budget enforced
});
 
return stream.toResponse(); // SSE, typed

ARQUITETURA

Domain-driven, layer-enforced.

Quatro camadas, uma regra: dependências apontam para dentro. ESLint impõe isso em cada commit — não existe "oops, importei Express em domain".

interfaces/http/
Controllers Express, schemas Zod, registro de rotas.
application/
Use cases, ports, DTOs. Orquestra domain + infrastructure.
domain/
Entities, value objects, repositories. Puro, sem I/O, sem framework.
infrastructure/
Prisma repos, adapters de terceiros, mappers. Implementa os ports.
Dependencies point inward.
infrastructure/ implements ports.

domain/ não pode importar express, @prisma/client, nem nada de application/, infrastructure/, interfaces/. ESLint flat config impõe.

BUILT FOR AGENTS

Claude Code e Cursor se sentem em casa.

AGENT.md por bounded context. Plop generators que scaffoldam toda a pilha de camadas. Contratos OpenAPI tipados. Nomenclatura de arquivos previsível. Seu pair-programmer de IA não alucina quando as convenções são tão consistentes.

~/usedeploy
$ bun run plop endpoint
? Module name: notifications
? Endpoint name: send
? Method: POST

 application/use-cases/send.use-case.ts
 application/dto/send.dto.ts
 interfaces/http/send.controller.ts
 interfaces/http/send.schema.ts
 application/use-cases/send.use-case.spec.ts

$ bun run generate:api
 OpenAPI regenerated · 47 routes typed
  • AGENT.md por bounded context — as regras, em inglês simples, onde o agente lê
  • Plop generators scaffoldam domain + application + infrastructure + interfaces num só comando
  • OpenAPI gerado em cada mudança de endpoint — o typed fetch client fica em lock-step
  • ESLint impõe o layering DDD — agentes não cruzam boundaries por acidente
  • Tipos de ID branded tornam impossível misturar foreign keys
  • Result<T, E> em vez de throw — agentes veem os error paths na assinatura do tipo

Type-safe end-to-end. Bounded contexts DDD. Endpoints de AI streaming. 459 testes desafiadores.

UseDeploy é a base production-grade para a próxima geração de aplicações TypeScript SaaS.

TESTING

459 testes na suíte. Redis real. Zero mocks em CI.

Testes unitários de domain, testes de integração sobre Postgres + Redis reais, testes end-to-end sobre um browser real. O pipeline de CI roda todos em cada commit.

$ bun run testPASS · 14.2s
modules/iam/use-cases/sign-in.spec.ts(24)
modules/iam/use-cases/totp.spec.ts(11)
modules/billing/adapters/polar.spec.ts(18)
modules/billing/use-cases/checkout.spec.ts(14)
modules/tenancy/use-cases/invitation.spec.ts(12)
modules/tenancy/use-cases/api-keys.spec.ts(9)
modules/observability/probes/readiness.spec.ts(7)
infrastructure/jobs/bullmq-runner.spec.ts(16)
PASS · 459 tests across 62 files in 14.21s

INTERNACIONALIZAÇÃO

Três idiomas, type-safe, dia um.

next-intl com typed messages. Fumadocs i18n com dot-parser de arquivos por locale. EN/ES/PT no produto E no site de docs, com fallback automático para keys faltantes.

ENgetting-started.en.mdx

Get started

Clone the repo, install deps, run the dev server.

t('onboarding.start')
ESgetting-started.es.mdx

Empezar

Cloná el repo, instalá deps, corré el dev server.

t('onboarding.start')
PTgetting-started.pt.mdx

Começar

Clone o repo, instale deps, rode o dev server.

t('onboarding.start')

DEPLOY ONDE QUISER

Roda onde você quer rodar.

Sem lock-in de plataforma. O Dockerfile é a única fonte da verdade — cada target builda da mesma imagem.

Docker

docker-compose para local + prod. Build multi-stage do Bun, non-root, healthcheck.

Railway

Deploy num clique com railway.toml na raiz + apps/client. Postgres + Redis como managed plugins.

Supabase

Use Supabase Postgres + Auth como substitutos drop-in. Schema e seeds compatíveis.

Seu VPS

Units systemd, reverse proxy com Caddy, GitHub Actions para CD. Self-host friendly.

Pensado para agentes de AI.

De convenções AGENT.md a tipos de IDs branded e geradores Plop. UseDeploy é estruturado para que Claude Code e Cursor naveguem, raciocinem e refatorem sem alucinar.

Convenções legíveis por agentes

O repo inclui arquivos CLAUDE.md e AGENT.md que documentam bounded contexts, convenções, padrões proibidos e o PORQUÊ de cada decisão arquitetural. Solte sua própria config de assistente e produza.

Ler a docu
CLAUDE.md
1  ## DDD layering (enforced by ESLint)
2
3  Each module under apps/server/src/modules/<ctx>/:
4
5    domain/          # entities, VOs — no I/O
6    application/     # use cases, ports, DTOs
7    infrastructure/  # Prisma repos, adapters
8    interfaces/http/ # Express controllers, Zod
9
10 domain/ cannot import express,
11 @prisma/client, or anything from
12 application/infrastructure/interfaces/.
13
14 ESLint flat configs enforce this.

VS OS STARTERS GRATUITOS

O que "grátis" te deixa carregando.

create-t3-app te dá um app Next tipado e um login OAuth. No dia que você precisa de invoices, convites ou background jobs, já está caçando mais 6 semanas de glue work.

FeatureuseDeploycreate-t3-appShipFastMakerkit
Email + senha + 2FA + magic-linksó OAuth
Multi-tenant orgs + convites + API keysparcial
RBAC com permissões tipadas
Billing — múltiplos providers3 (Polar/Stripe/MP)StripeStripe
Background jobs (BullMQ + Redis real)
Observability (OTel + Sentry + /metrics)
Webhooks de saída (HMAC + retries)
i18n (EN + ES + PT, tipado)
DDD layering imposto por ESLint
Site de docs scaffoldado (Fumadocs)

Tudo o que você precisa
por um pagamento único.

Um único pagamento cobre o código-fonte, a docu e 459 testes. Sem assinaturas, sem license keys, sem telemetria.

Guia de preços
$15/ $50
pagamento único · updates vitalícios no tier de $50
  • Código-fonte completo, congelado para sempre
  • Projetos ilimitados, uso comercial
  • 459 testes · 24 páginas de docs · 10 bounded contexts
  • Garantia de devolução de 14 dias

FAQ

O que você vai perguntar de qualquer jeito.

Posso pedir refund?

Sim. 14 dias, sem perguntas, sem formulário "pode nos contar por quê?". Preferimos que você saia a que fique com uma ferramenta que não encaixa.

O código é aberto?

Sim. Você recebe o repo Git completo, MIT-licensed para uso comercial em seus projetos. Sem ofuscação, sem licence keys, sem telemetria ligando para casa.

Qual stack usa?

Bun runtime, servidor Express, Prisma + Postgres, cliente Next.js, BetterAuth, billing Polar/Stripe/MercadoPago, BullMQ + Redis, OpenTelemetry + Sentry + Pino, storage S3-compatible, Vercel AI SDK + Anthropic. Padrão, chato, bem suportado.

Quanto tempo até estar shippando?

Primeiro commit pushado numa noite. Auth real + org + primeiro cliente pagante num fim de semana. SaaS completo com domínio custom numa semana.

Vem com testes?

459 deles. Testes unitários de domain, testes de integração sobre Postgres + Redis reais, e2e sobre browser real. CI roda todos em cada commit. Sem mocks em CI.

Posso usar para client work / agências?

Sim, a licença cobre projetos ilimitados e uso comercial. Use no seu próprio SaaS, no SaaS do seu cliente, ou ambos.

E os updates depois de comprar?

Lifetime updates no tier de $50. Cada release chega no seu repo via a ferramenta de sync — overwrite seletivo, nunca destrói seu código de negócio.

MC
Desde 2026 · v2.1.0 · Desenvolvimento ativo

MAINTAINER

Construído e shippado por um só engenheiro.

UseDeploy é construído e mantido por Martin Coll — engenheiro full-stack, founder e operador. Cada linha sai de um só teclado, com o feedback loop agêntico ligado. Sem comitê, sem culto Discord — apenas um maker que já shippou um SaaS antes.