0018. Publish the liquidware-ninja site on Cloudflare Workers under liquidware-ninja.prignano.ai
Context and Problem Statement
liquidware-ninja is the Liquidware second brain, template library, technical blog, and PowerShell toolkit backing our Liquidware and Azure Virtual Desktop work (avd-liquidware, ux-assess, flexapp-factory, and the broader avd-ops ecosystem). We want a fast, browser-accessible web front door that presents the knowledge base, interactive graph, technical field notes, and high-level architectural descriptions of both the public and private companion repositories, hosted on Cloudflare under liquidware-ninja.prignano.ai.
Considered Options
- Option 1: Static site in
site/built with the vendoredavd-opsdesign system (ds-v2.7.0) and deployed via Cloudflare Workers Static Assets (wrangler.jsonc). Uses a lightweight Node generator (scripts/site/build-site.mjsandscripts/site/apply-shell.mjs) to renderdocs/knowledge/(including the Obsidian-compatible link graph) andblog/intosite/alongside hand-written overview pages forliquidware-ninja,avd-liquidware,ux-assess(high-level private overview),flexapp-factory(high-level private overview), and theavd-opsfamily. Deploys toliquidware-ninja.prignano.aiviawrangler.jsonc(assets.directory = "./site"). - Option 2: Heavyweight external documentation framework (Docusaurus, Astro, or VitePress). Introduces a separate framework build pipeline, diverges from the
avd-opsdesign system tokens and app shell, and duplicates page layouts. - Option 3: GitHub Pages only. Does not use the Cloudflare Workers Static Assets pipeline (
wrangler.jsonc) standardized acrossprignano.aiproperties.
Decision Outcome
Chosen option: Option 1 (vendored avd-ops design system in site/ + Cloudflare Workers Static Assets via wrangler.jsonc), because it keeps visual and structural parity with avd-ops.dev, serves self-hosted fonts with zero third-party network requests, enforces public-safe guardrails via tests/site.test.mjs, and deploys directly to liquidware-ninja.prignano.ai on Cloudflare.
Consequences
- Good, because every knowledge base page (
docs/knowledge/), decision record, and technical blog post (blog/) is automatically rendered intosite/docs/andsite/blog/with an interactive link graph (site/docs/graph.html). - Good, because
ux-assessandflexapp-factoryare documented at a high architectural level while keeping their implementation repositories private. - Neutral, because editing
docs/knowledge/orblog/requires runningnpm run build:sitealongsidepython3 scripts/kb/build.py(enforced by CI in.github/workflows/site.yml).