Project
A CMS platform that serves multiple independent websites from a single deployment. Built with Payload CMS embedded in Next.js, it provides each tenant with isolated content, custom domains, theme presets, bilingual support, and a visual rich text editor — all managed from one admin panel.
One codebase, multiple websites. This platform runs portfolio sites, blogs, business pages, and literary showcases from a single deployment. Each site gets its own content, settings, domain, and visual identity — logically isolated from every other tenant.
The CMS runs inside the application — not as a separate service. When a page loads, it calls the content layer in-process with no HTTP round-trip. This embedded approach eliminates the need for an API gateway and keeps the deployment simple: one process handles both the public site and the admin panel.
Tenant resolution happens in middleware: the incoming domain is matched to a tenant, and all subsequent data queries are scoped to that tenant. Users never see content from other sites, and admins can only manage their own.
Next.js 15 with React 19 and Server Components by defaultPayload CMS 3 — embedded in the application, using the Local API for in-process data accessTypeScript end-to-end — 13 content collections, components, hooks, testsTailwind CSS with CSS variable-driven theming for dynamic preset switchingLexical rich text editor with Shiki syntax highlighting and video embedsVitest + Playwright — 560+ tests