Back to projects

Full-stack Developer — architecture, back-end, front-end and infrastructure

RastrackApp

SaaS platform that tracks leads from WhatsApp campaigns and sends conversions back to Meta Ads. Back-end migrated from Next.js to Fastify, with BullMQ and Redis queues.

Context

RastrackApp is a SaaS platform that tracks leads coming from WhatsApp campaigns, integrated with Meta Ads and the Conversions API (CAPI). It lets media buyers see which ads generate real conversations and conversions, sending those events back to Meta to optimize campaigns. The system started as a Next.js monolith and needed to evolve to handle more volume and scale safely.

Pain points

  • Back-end coupled to Next.js, making maintenance, deployment and scaling harder
  • High volume of real-time WhatsApp webhooks
  • Asynchronous processing of messages and events without blocking the API
  • Log table growing out of control and consuming almost all database storage
  • Migrating without breaking the front-end or interrupting operations
  • Infrastructure spread across more than one server

Solutions

  • Migrated the back-end to a standalone Fastify service in TypeScript, using the Next.js codebase as the source of truth
  • BullMQ and Redis queues to process webhooks and events in the background
  • Prisma 7 with PostgreSQL (Supabase) and a separate database for the chat module
  • Fully integrated chat module, with workers and graceful shutdown
  • All routes documented with Swagger/OpenAPI
  • Deployment with Docker and Dokploy (Traefik), servers connected via VPN, and a develop → staging → main branching flow
  • Diagnosed the log overload and split business logs (database) from infrastructure noise (stdout)
  • Automated tests with Vitest

Technologies

  • Node.js

  • React

  • Typescript

  • Redis

  • BullMQ

  • Docker

2026 © All rights reserved

Privacy Policy