Building a Modern Digital Garden with Angular 22, SSR, and Markdown
3 min read Architecture 🌿 Bud

Building a Modern Digital Garden with Angular 22, SSR, and Markdown

Archived Release Snapshot: August 25, 2026

Expanded with Idea Evolution & Pivot tracking, and Firebase App Hosting GitOps workflows (7fb446c)

View Current Active Version ↗

Building a Modern Digital Garden with Angular 22, SSR, and Markdown

As developers and builders, we want complete ownership over our writing workflow, typography, routing, and SEO. While traditional CMS platforms often come with database bloat and external sync middleware, a Git-native Digital Garden offers the ultimate combination of speed, simplicity, and creative freedom.

In this architecture guide, we dive into how this garden is built using Angular 22 (SSR), Tailwind CSS v4, Firebase App Hosting, and a build-time Wikilinks, Backlinks & Idea Evolution Compiler.


The System Architecture Overview

Our pipeline separates local Markdown authoring from production content serving, ensuring maximum loading performance, 0ms runtime database latency, and rock-solid reliability.

flowchart LR A["Local Markdown\n(content/*.md)"] --> B["Build-Time Compiler\n(scripts/compile-content.js)"] B -->|Generate Backlinks & AST| C["src/app/generated/content.json"] C -->|Static TransferState| D["Angular 22 SSR Server\n(Cloud Run)"] D -->|Hydration| E["Interactive UI &\nForce-Directed Graph"]

Core Technical Features

When writing notes in markdown, you can link to other notes using double brackets like [[welcome-to-my-digital-garden|Welcome to my digital garden]] or [[from-gemini-chats-to-signals-why-i-built-a-digital-garden]].

During build time, the compilation script:

  • Detects all outgoing references across all markdown files while protecting inline code and code blocks.
  • Builds an inverted index to compute every note's inbound backlinks ("Mentioned In").
  • Converts wikilinks into fast, client-side Angular router links with instant hover previews.

2. Idea Evolution & Pivot Tracking (Living Thought Lineage)

Digital gardens shouldn't just show finished essays—they should capture the journey of how your thinking evolves over time.

Alongside traditional maturity stages (🌱 Seed, 🌿 Bud, 🌳 Evergreen), the garden supports:

  • 🔀 Pivoted: When a thought or technical approach deliberately shifts direction. Frontmatter links (pivotedTo: "new-slug", pivotReason: "...") automatically generate 🔀 Idea Evolution Trail banners on the old note and 🪵 Lineage & Roots banners on the new note.
  • 🍂 Pruned: Deprecated or archived thoughts kept for historical transparency.

3. Force-Directed Physics Graph Map

The garden includes an interactive HTML5 Canvas graph powered by custom Newtonian spring physics:

  • Nodes are sized and color-coded by their growth maturity (Teal for Evergreen, Lime for Bud, Amber for Seed, Purple for Pivoted, and Rust for Pruned).
  • Nodes repel each other while connected links pull related thoughts together into natural clusters.
  • Drag nodes, hover to inspect labels, and click to navigate instantly across your knowledge network.

4. Server-Side Rendering (SSR) & Firebase App Hosting

The entire application is deployed via Firebase App Hosting:

  • Git-Driven Rollouts: Pushing to main triggers a Cloud Build that compiles the Markdown graph, prerenders static routes, and deploys the Cloud Run SSR backend.
  • Pull Request Previews: Creating a branch and opening a Pull Request automatically spins up a dedicated live preview environment for testing drafts before merging.
  • Dynamic SEO: Every route delivers pre-rendered HTML with dynamic OpenGraph meta tags, Twitter summary cards, and canonical links.

Writing & Cultivating New Notes

To cultivate a new thought in the garden:

  1. Create a .md file inside the content/ folder.
  2. Add YAML frontmatter with title, category, growth, tags, and optional heroImage.
  3. Interlink with existing concepts using [[slug]] or [[slug|Custom Title]].
  4. Commit and push—Firebase App Hosting handles the rest!

For a wider view on the full-stack ecosystem powering this setup, check out My Tech Stack: The Google-Native Architecture for the Agentic Era.

🪵

Note Evolution & Releases

Snapshot history as this thought was cultivated over time

Current Version
🌱 Return to latest

Promoted to Evergreen: complete full-stack architecture guide with 3D pipeline illustration and Firestore reader layer

Expanded with Idea Evolution & Pivot tracking, and Firebase App Hosting GitOps workflows

Initial planting (Angular 22 SSR, Canvas physics graph, wikilinks compiler)

Discussion & Garden Notes

Share your insights, reflections, or critiques on this note.

0 thoughts

Join the conversation

Sign in with Google to post comments, share technical perspectives, and connect your thoughts.

🌱

No thoughts planted yet.

Be the first to share an insight on this note!

© 2026 Steve Campbell. All rights reserved.