Problem
The agency needed to run its own content, services, intake forms, careers and store without a developer in the loop — in three languages, under Algerian data protection law, and on infrastructure it owns rather than rents abroad.
Solution
A NestJS API with separate public and admin surfaces over one Prisma schema, a Refine backoffice for staff, and a Next.js public site. Service intake forms are authored by admins and frozen as immutable schema versions, so a form can change without invalidating the requests already answered against the previous shape.