fullstack-vc
ActiveA team-initiative Venture Capital community site bringing the astro-knots conventions to bear on a live community. Breakthroughs in Interactive Polling, Svelte-SSR driven engaging features.
The Lossless Group
A pseudomonorepo of Astro sites · The Lossless Group
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.
The lattice
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
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
We tried to be a monorepo. We aren't. Here's what actually held up against the friction of a small team.
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.
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.
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.
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
The most recent threads pulled. Each links back to the spec or blueprint that asked for it.
Resolved the long-standing problem that bit us hardest on calmstorm-decks last week: a busy primary stakeholder couldn't get into the gated site, the gate had no server-side telemetry to debug it, and there was no way to attribute downstream sharing. The new pattern — exploration + spec at the cross-cutting level, working implementation in calmstorm-decks — replaces client-side localStorage gates with a DB-backed session model on Astro DB / Turso. Tier 1 is a signed pre-authed link (WhatsApp-deliverable, identity-bound) for direct stakeholders; Tier 3 is a two-role universal passcode (admin / viewer) with a downstream-sharing attribution hack via passcode suffix. Every verify attempt writes an AuthEvent row; every gated page view writes a PageView row; an /admin/activity dashboard surfaces both in real time. Now the lineage of any client interaction is recoverable in a 30-second DB query instead of a multi-hour forensic exercise.
calmstorm-decks now exports the live HTML/CSS/Tailwind slide tier to pixel-perfect PNGs and three per-variant PDFs (v1/v2/v3, 17 pages each) in one `pnpm export:decks` call. The unlock was a tiny dev-only un-gated route — `/dev/shot/{slot}/{variant}` — that renders exactly one SlideCanvas filling the viewport, with no chrome, no auth, no aria-hidden juggling. Screenshot infrastructure shouldn't traverse production auth; once we accepted that, the export script collapsed to a five-line URL loop and we got a runnable PDF deck for every design variant on the fund.
The day after the analytics + LFM sweep, we shipped the discoverability layer. Every actively-maintained site and splash in the astro-knots ecosystem got an llms.txt / llms-full.txt pair (per llmstxt.org), an XML sitemap auto-generated by @astrojs/sitemap, a robots.txt pointing crawlers at it, and a pair of <link> hints in BaseLayout announcing both surfaces from every rendered page. SEO + GEO discoverability, parallel-patterned across eight repos in one motion.
Specs, blueprints, prompts, reminders — the working notes that underwrite the code,
kept in each site's context-v/ and rolled up here.