Backoffice Overview
The Percus Backoffice is the central web platform through which clients manage their personalized video campaigns and through which the Percus internal team operates accounts. It is a multi-tenant Next.js 15 application backed by two independent .NET 10 microservices.
Two audiences
| Audience | Who | What they do |
|---|---|---|
| Client users | Marketing managers, project leads, developers, motion designers | Create and manage projects, upload templates, publish to distribution channels, generate landing pages |
| Percus internal | Account managers, platform admins | Manage organizations, assign system roles, oversee all accounts |
Architecture at a glance
The platform is divided into two backend services, each with its own PostgreSQL schema:
- Identity Service (port 5001) — users, organizations, roles, invitations, authentication
- Campaign Service (port 5000) — projects, templates, distribution channels, landing pages, API credentials
The frontend (Next.js 15, App Router) talks to both services and uses NextAuth.js for session management.
Core modules
Projects
The primary organizational unit. A project represents a personalized video campaign. Each project contains templates, distribution channels, and optionally public landing pages. See Projects.
Templates
Video template bundles uploaded by motion designers. Supports two kinds: Lottie-based (JSON animation) and Raster (MP4 video + Lottie overlay). Templates are versioned and progress through a testing → production workflow. See Templates.
Distribution Channels
Each project has three fixed channels: DEV, STAGING, and PROD. Publishing a template to a channel activates it for that environment. See Distribution Channels.
Public Video Shares
Shareable landing pages that serve a personalized video for a given channel. Can be enabled, disabled, and their URLs rotated. See Public Video Shares.
API Credentials
Per-project credentials (key + secret) used to authenticate programmatic access. See Public Video Shares.
Roles & Permissions
Access is controlled by organization-scoped roles assigned per user. See Roles & Permissions.
Technology stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS |
| Authentication | NextAuth.js 5, Google OAuth 2.0 |
| Backend | .NET 10, C#, ASP.NET Core |
| Architecture | Clean Architecture, DDD, CQRS |
| Database | PostgreSQL 15, Entity Framework Core |
| Infrastructure | AWS Lambda, Aurora Serverless v2, S3, CloudFront |
| CI/CD | GitHub Actions, AWS CDK |