Project C · System Design · Multi-Site Architecture
System Design: Jutellane Ecosystem
How I unified the Jutellane main hub, blog engine, and documentation site into a consistent, reliable multi-site ecosystem — with shared branding, predictable routing, and independent CI/CD pipelines.
Role
Platform Architect · DevSecOps Engineer
Tech stack
Next.js · GitHub Pages · Vercel · GitHub Actions · DNS/IONOS · CI/CD Pipelines · Versioned Assets · Branding Systems
Highlights
Multi-repo platform · Consistent dark/light themes · Reliable subdomains · Unified UX · Independent deployments · Predictable routing · Shared design system
Overview
As the Jutellane ecosystem grew — the main site, documentation, custom blog engine, and multiple subdomains — branding inconsistencies appeared. Gradients, images, buttons, routing, and deployment behaviour drifted across repos.
Instead of patching symptoms, I redesigned the setup as a distributed system: stable interfaces, predictable pipelines, versioned assets, and clear boundaries between repos.
The problem
- Headers and gradients differed across sites.
- Blog and docs used different routing patterns and assets.
- Buttons and navigation drifted between versions.
- DNS conflicts surfaced when adding new subdomains.
- Different deployment pipelines created inconsistent behaviours.
The solution
- Unified the architecture around a shared **design vocabulary**, component system, and routing conventions.
- Adopted a shared design system for colours, spacing, UI, and typography across the main hub, docs, and blog.
- Normalised routing across repos, with predictable URLs for projects, posts, and documentation.
- Standardised CI/CD pipelines so each repo deployed independently but followed the same guardrails.
- Introduced clear ownership: main site, docs, and blogs each had dedicated pipelines, assets, and release rhythms.
Outcomes
The Jutellane ecosystem now behaves like a single platform instead of a collection of unrelated sites. Branding stays consistent, deployments are predictable, and new subdomains can be added without breaking DNS, themes, or routing. It's the foundation I use for every new Jutellane surface going forward.