Skip to main content

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

AudienceWhoWhat they do
Client usersMarketing managers, project leads, developers, motion designersCreate and manage projects, upload templates, publish to distribution channels, generate landing pages
Percus internalAccount managers, platform adminsManage 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

LayerTechnology
FrontendNext.js 15, React 19, TypeScript, Tailwind CSS
AuthenticationNextAuth.js 5, Google OAuth 2.0
Backend.NET 10, C#, ASP.NET Core
ArchitectureClean Architecture, DDD, CQRS
DatabasePostgreSQL 15, Entity Framework Core
InfrastructureAWS Lambda, Aurora Serverless v2, S3, CloudFront
CI/CDGitHub Actions, AWS CDK