~/gribeiro.dev
Voltar aos projetos

Pira Turismo · projeto próprio

Do site de agência a uma plataforma SaaS de turismo

Papel
Idealizador e desenvolvedor fullstack
Período
2023 — atual

O problema

Agências de turismo regionais ainda vendem pacotes por WhatsApp e planilhas: sem catálogo online, sem gestão de reservas e sem presença digital profissional. Para o viajante, comparar roteiros e reservar com segurança é difícil; para a agência, cada venda é um processo manual.

O que começou como um site para uma agência de Piracicaba evoluiu para uma plataforma de marketplace que conecta agências de turismo (B2B) a clientes finais (B2C).

A solução

A plataforma é um monorepo com NestJS no backend (cerca de 40 módulos: reservas, assinaturas, campanhas, blog, push, auditoria) e dois frontends Next.js 15 — o site B2C e o painel admin B2B — com Prisma sobre PostgreSQL, React Query e componentes compartilhados. Turborepo, lint, type-check e hooks de pre-commit/pre-push mantêm o fluxo disciplinado.

Autenticação JWT com refresh tokens e uma cadeia de guards cobre papéis, multi-tenancy por agência e liberação de recursos por plano de assinatura. Dez rotinas agendadas (lembretes, campanhas, cobrança) rodam com trilha de auditoria própria.

Observabilidade de produção completa e self-hosted: logs estruturados com Pino — com redação automática de segredos e correlação por request-id — fluem via Promtail para o Loki e alimentam dashboards do Grafana provisionados como código: logs por nível, erros recentes, respostas 4xx/5xx e volume por serviço, com retenção de 30 dias.

A infra roda em VPS com Docker Compose e proxy Caddy (HTTPS automático, security headers, bloqueio de scanners). O deploy via GitHub Actions só conclui depois que o health-check da API responde — e healthchecks em todos os serviços detectam e reiniciam qualquer coisa que cair.

Página inicial da plataforma Pira Turismo

Stack e práticas

Frontend

Next.js 15 (web + admin)React QueryZustandZod

Backend

NestJS 11PrismaPostgreSQLJWT + guardsCron jobs

Observabilidade

GrafanaLokiPromtailPinoHealthchecks

Infra & CI/CD

Docker ComposeCaddyGitHub ActionsVPSTurborepo

Resultados

No ar

em produção em piraturismo.com.br

B2B + B2C

agências e viajantes na mesma plataforma

100% observável

Grafana, Loki e healthchecks em produção