Recurra

Em desenvolvimento

Projeto pessoal — andaime de cobrança recorrente para negócios de serviços locais. Construído como desculpa para aprender Nx, AWS CDK e a camada chata de billing ponta a ponta.

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
Links

O que faz

Recurra é uma plataforma de cobrança recorrente para negócios de serviços locais — repeat business, on repeat. O dono gerencia serviços, agenda e clientes a partir de um dashboard React ou um app mobile Expo. O cliente faz self-serve de assinaturas a partir de um portal hospedado. Stripe cuida das cobranças. Uma integração Clover POS escrita em Kotlin permite checkout presencial puxando a assinatura ativa do cliente.

Por que construí

Percebi que infraestrutura de cobrança por assinatura para negócios de serviços locais (clínicas, salões, banho-e-tosa, aulas) é consistentemente ruim — ou enxertada num SaaS horizontal que não entende o workflow, ou construída num POS vertical que não te deixa mudar preço sem ligar pro suporte. Recurra é a versão que um dono de negócio de serviço realmente escolheria.

Como funciona

Monorepo Nx com NPM workspaces. Seis apps:

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

Tipos compartilhados e schemas Zod vivem em @recurra/shared e são importados por todo app. Os stacks CDK usam SSM Parameter Store para segredos e um entrypoint script que monta a URL do banco a partir do JSON do Secrets Manager.

Status

Em desenvolvimento ativo. Backend, admin web e infra estão de pé; 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 de serviços locais — o tagline é 'repeat business, on repeat'. Lida com agendamentos recorrentes, cobranças automáticas via Stripe, self-serve de assinaturas pelo cliente e uma integração Clover POS para checkout presencial.

Por que um monorepo multi-app para o Recurra?

Um negócio precisa de três superfícies — admin web do dono, mobile do dono, POS voltada ao cliente — compartilhando um backend, um modelo de auth e um sistema de cobrança. O monorepo Nx com @recurra/shared mantém tipos, validação e regra de negócio em exatamente um lugar entre React Router, Expo e o cliente Kotlin POS.

← Todos os projetos