astro-knots
Mode
GitHub →

A pseudomonorepo of Astro sites · The Lossless Group

Loose threads, tied with intent.

Thirteen Astro sites + four splash pages. One workspace. A shared context layer, a single published package, and a strict three-mode color contract. Not a true monorepo — never tried to be — but tied together by patterns the team actually uses.

See the lattice View on GitHub →

↑ try the mode toggle, watch everything pivot.

  • 13 Astro sites tied together
  • 3 Modes (light · dark · vibrant)
  • 1 Real published package (LFM)

The lattice

The sites

Each site is its own repo, included here as a git submodule. Each card carries a thread in that site's brand color — a small reminder that nothing's actually merged.

The contract

Two tiers. Three modes. One toggle.

Every astro-knots site declares --color__name raw values at the top of theme.css, then composes --color-bg / --color-accent semantic tokens from them — re-bound per data-mode. Tailwind v4 generates utilities from the kebab-case tier only. Toggle the mode in the header and watch these swatches pivot live.

--color-bg bg
--color-bg-elevated bg-elevated
--color-text text
--color-text-soft text-soft
--color-accent accent
--color-accent-warm accent-warm
--color-thread thread
--color-accent-hot accent-hot

Reference: context-v/blueprints/Maintain-Themes-Mode-Across-CSS-Tailwind.md

Honest notes

What worked. What didn't.

We tried to be a monorepo. We aren't. Here's what actually held up against the friction of a small team.

What survived.

Co-located development. Each site visible alongside its siblings so patterns can be compared. Submodules so each site stays its own repo and ships independently. A shared context-v/ that travels with the workspace.

What got promoted.

Lossless Flavored Markdown. The one piece that was identical across every site — remark/rehype — earned its way out of pattern-land into a real published package. Everything else stayed copy-and-adapt.

What didn't work.

Treating @knots/* as importable dependencies. Style-free shared components. "Copy when you remember" — we usually didn't. Every site's design diverged enough that generic UI components were a tax, not a gift.

Where it's going.

Selective sharing where it's justified, copy-and-adapt where it isn't. The two-tier token system + three-mode contract are the closest thing to a non-negotiable convention. You can toggle them in the header right now.

Latest from the workspace

Recent ship notes

The most recent threads pulled. Each links back to the spec or blueprint that asked for it.

Read the thinking.

Specs, blueprints, prompts, reminders — the working notes that underwrite the code, kept in each site's context-v/ and rolled up here.