Skip to main content
Jose Hidalgo | Senior Full-Stack EngineerFull-Stack Engineer | Distributed Systems
HomeProjectsBlogStatusCV
ENES
Jose Hidalgo | Senior Full-Stack Engineer

Full-Stack Engineer | Distributed Systems

Engineered with clarity and intention.

Navigation

  • Home
  • Projects
  • Blog
  • Status
  • CV

Connect

GitHubLinkedInEmail
© 2026 Jose Hidalgo. All rights reserved.Back to top ↑
← Back to projects

Project

Multi-Tenant Portfolio Platform

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.

Mar 14, 2026
10 views
Next.jsPayload CMSTypeScriptReactMulti-TenantTailwind CSSDocker
Visit live site↗
ShareXLinkedIn

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.

How It Works

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.

Key Features

  • Multi-tenant isolation — each site has independent content, media, settings, and analytics. One admin panel manages all tenants with role-based access.
  • Custom domains — tenants can connect their own domain with DNS TXT record verification.
  • Eight theme presets with interactive backgrounds — cyberpunk, minimal, editorial, corporate, medical, creative, nature, and elegant. Each controls colors, typography, border radius, and shadows. Three canvas-based animations (breathing tiles, rising particles, gradient waves) are suggested per site type. Full custom branding is also supported.
  • Visual rich text editor — content editors write with a toolbar, not Markdown. Headings, bold, lists, images, code blocks with syntax highlighting, video embeds, and callout boxes. The rendering layer adds drop caps, gradient underlines, and accent-colored markers automatically.
  • Bilingual content — English and Spanish with locale fallback chains. A bulk translation workflow lets you export content as JSON, translate it externally, and re-import it.
  • Two homepage layouts — a portfolio view with timeline and project grid, or a product layout with hero section, feature grid, testimonials, and FAQ.
  • PDF resume generation — server-rendered CVs with locale-aware labels, multi-page support, and proper character encoding for international names.
  • Themed admin panel — branded dashboard with content status widgets, a four-step onboarding wizard, and a super-admin usage dashboard. 13 content collections, each with drafts, scheduled publishing, and localized fields.
  • Tech Stack

    • Next.js 15 with React 19 and Server Components by default
    • Payload CMS 3 — embedded in the application, using the Local API for in-process data access
    • TypeScript end-to-end — 13 content collections, components, hooks, tests
    • Tailwind CSS with CSS variable-driven theming for dynamic preset switching
    • Lexical rich text editor with Shiki syntax highlighting and video embeds
    • Dockerized for production with PostgreSQL and automated backups
    • Vitest + Playwright — 560+ tests