Recurra

Arquivado

Projeto pessoal — estrutura de cobrança recorrente para negócios locais de serviços. Construído como desculpa para aprender Nx, AWS CDK e a camada de billing do começo ao fim.

Função
Solo — backend, web, mobile, infra
Período
fev. de 2025 – Atual
Stack
  • NestJS
  • React Router 7
  • Expo
  • Kotlin (Clover POS)
  • PostgreSQL
  • Prisma
  • AWS CDK
  • LocalStack
  • Nx monorepo

O que faz

Recurra é uma plataforma de cobrança recorrente para negócios locais de serviços. O dono gerencia serviços, agendamentos e clientes pelo painel admin em React ou pelo app mobile em Expo. O cliente gerencia suas assinaturas por um portal hospedado. O Stripe cuida das cobranças. Uma integração com o Clover POS escrita em Kotlin permite checkout presencial consultando a assinatura ativa do cliente.

Por que construí

Não é um produto — é um projeto pessoal. Queria construir algo que abrangesse web + mobile + POS + infraestrutura AWS em um único monorepo, em parte para aprender Nx e CDK de verdade, em parte porque cobrança por assinatura para negócios locais de serviços é um domínio que acho genuinamente interessante (e consistentemente mal atendido).

Como funciona

Monorepo Nx com NPM workspaces. Seis apps:

  • backend — NestJS com Prisma conectado ao PostgreSQL no RDS, deployado no App Runner.
  • web — React Router 7 SPA em build/client/, hospedado no S3 + CloudFront.
  • mobile — Expo.
  • clover-pos — Kotlin Android para o Clover Mini.
  • infra — AWS CDK com seis stacks: Network, Dns, Database, Backend, Web, Email.
  • backend-e2e — testes e2e com Jest.

Tipos compartilhados e schemas Zod ficam em @recurra/shared e são importados por todos os apps. As stacks do CDK usam o SSM Parameter Store para segredos e um script de entrada que monta a URL do banco a partir do JSON do Secrets Manager.

Status

Em desenvolvimento ativo. Backend, web admin e infra já estão no lugar; o app Clover POS e o app mobile do dono são os próximos.

Perguntas

O que é o Recurra?

Recurra é uma plataforma de cobrança recorrente para negócios locais de serviços — o slogan é 'clientes que voltam, cobranças que se repetem.' Gerencia agendamentos recorrentes, cobranças automáticas via Stripe, assinaturas em autoatendimento pelo cliente e uma integração com o Clover POS para checkout presencial.

Por que um monorepo multi-app para o Recurra?

Um negócio precisa de três interfaces — painel web do dono, app mobile do dono, POS voltado ao cliente — compartilhando um único backend, um modelo de autenticação e um sistema de billing. O monorepo Nx com @recurra/shared mantém tipos, validações e regras de negócio em um único lugar, acessível pelo React Router, Expo e o cliente Kotlin do POS.

Publicado 25 de mai. de 2026, 9:59 GMT-3 · Atualizado 28 de mai. de 2026, 22:29 GMT-3

← Todos os projetos