Print or save as PDF: use your browser’s Print dialog.

One portal.
Every surface a consulting business needs.

How I turned scattered business data into a knowledge system that compounds — with markdown, vanilla JS, and AI. A case study in building a business operating layer you own.

Illustration: scattered papers, notes, and small screens around a desk flow into one monitor showing a clean dashboard with teal accents.

Running a design consultancy means juggling CRM, finances, strategy, operations, and marketing at once. The default is fragmentation: a spreadsheet here, a slide deck there, context buried in email. This page is the story of the opposite — a single portal where raw inputs become structured knowledge, and knowledge becomes insights and decisions.

Three stacked planes: raw inputs as scattered shapes, a middle grid of organized knowledge, and top-level dashboards for decisions.

The three-layer model

What goes in

Key point: Inputs start life in specialist tools. The portal is the layer where they converge — same navigation, same design system, same truth.

What gets organized

Key point: Knowledge is compiled, not copy-pasted. One edit in source can refresh every surface that depends on it.

What comes out

Key point: The output isn’t “more reports.” It’s decision-grade views you open when you’re about to act.

Architecture (compact)

Sources (MD, JSON, CSV) → Sync scripts (Node CLI) → Portal data (*.js manifests) → 50+ static HTML pages (vanilla JS) ↑ └── AI skills (Cursor): maintain sources, run syncs, process sessions
Blueprint-style pipeline: sources and markdown flow through sync tooling into compiled portal data and static HTML pages.

One token file, every page

Palette and mode are orthogonal: pick a brand axis (Atelier, Courage, Minimal, SQDL, Blueprint) and a luminance axis (light / dark). tokens.css holds the custom properties — change a token, and the whole portal moves together.

Grid of minimalist UI cards in light and dark rows across five brand-tinted columns, abstract placeholders only.
Atelier
Courage
Minimal
SQDL
Blueprint
Light mode Dark mode — persisted per user; system fallback when unset.

Before & after

Before

Strategy in a Google Doc updated twice a year. Pipeline in a spreadsheet. Finances in Monarch with no unified business view. Messaging scattered across drafts. Session notes in a folder nobody reopens.

After

One portal. Pull up the one-sheet before a call. Check pipeline and finance in the same session. Draft an email sequence and export it for Kit. Process a cohort session and watch tasks, messaging, and resources stay in sync.

Abstract geometric composition: nested rectangles within a circle and radiating lines, Bauhaus-inspired.