Skip to content
Jutellane logowith Justine.
← Back to projects

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.