This garden, and how it’s built

This is the note the whole site points back to: a garden about the making of the garden. Everything here is genuinely part of building Wei Jie’s Digital Garden — the tools I reached for, the pieces I wrote, and the decisions I’m still turning over. If you want the honest version of “what is this and why does it work the way it does”, start here and follow the links out.

One garden, two lenses

It isn’t a blog and it isn’t a portfolio. It’s a single set of connected notes, and the two lenses are just different ways of looking at the same garden rather than two separate silos.

Lens What it collects
Experience The professional record — things I’m working to understand, projects shipped, and milestones reached. The notes on the technologies underneath this site live here.
Tinkering Experiments and things I’m building, including this garden itself, which is why this note carries the tinkering lens.

How a note becomes a page

There is no CMS and no admin screen. The entire authoring contract is “put a file in the repo”. A build-time step reads content/ and produces the JSON the app reads — I wrote up how that works in the content compiler note, and the same story as A content compiler that runs at build time shows up wherever I link it by wikilink.

The metadata a note declares is deliberately small:

content/first-seedling.md
---
type: experience    # experience | tinkering
status: seed        # seed | growing | evergreen | draft
tags: [vite, react]
date: 2026-08-23
---
The body starts here.

What’s underneath

The stack was a deliberate set of choices: Vite, React 19 and shadcn on Tailwind v4 for the build, and the spec-driven way I’m steering the whole thing in Spec-driven development with OpenSpec and AI agents. The more speculative thread is a Reaching for React Three Fiber for a knowledge graph — still an idea I’m poking at, not a finished feature. Pulling it all together is assembling the first version.

I’d left open whether this would live on a custom domain or stay on its build URL. That’s settled now: it lives at ng-weijie.com.