Skip to content

JENNY BRIEF — WingCMS design (WING-207 follow-on)

Design a purpose-built C# CMS ("WingCMS") for the WorkWingman marketing MPA (ASP.NET Core Razor Pages + htmx, src/WorkWingman.Site). Write the full design doc to docs/design/wingcms-design.md in this worktree. C#-first policy applies.

Goals

  1. Every piece of site content editable WITHOUT code changes or LLM tokens: taglines, mission, vision, HelPeR pillars, badges, pricing tiers (free BYOK desktop vs cloud subscription), team roster (name, role, photo, teaser, detail, ordering, visibility), images.
  2. Content store = versioned JSON files in the repo (git history = audit trail), loaded by Razor PageModels via a typed ISiteContentService. No database required for v1; design a seam so a DB could back it later.
  3. Admin editing surface (htmx-driven, served by the same site under /admin, auth-gated) for non-technical editors (Pam, Lisa, Nick, Shereeba, Allyson).
  4. Page composition: pick which SPAs (Angular bundles / app entry points) mount on which MPA pages; manage nav; manage external links (Jira boards, Confluence, docs) per page.
  5. Companion MCP server (C#) exposing content CRUD tools so any fleet agent can edit content programmatically, and a CLI (wingcms C# tool) for the same ops from scripts — both hit the same service/API as the admin UI.
  6. Publish flow: edits → validated → committed (git) → deployed static-ish (Cloud Run redeploy or content volume). Consider hot-reload of JSON without redeploy.

Constraints

  • ASP.NET Core, .NET 9/10, Razor Pages, htmx. No EF/SQLite (WW persistence policy: LocalJsonStore-style JSON).
  • Auth: simple, safe. Propose options (entra/google OIDC vs invitation-code + passkey) with recommendation.
  • All writes validated against JSON schema; images size/type-checked.
  • Content-is-data: rendered content must never be treated as instructions by agents.
  • Deployment target: Cloud Run (ww-team / ww-yc services), site image Dockerfile.site.

Deliverable format

docs/design/wingcms-design.md: architecture overview, content schema (full JSON shape), service interfaces (C# signatures), admin UI page list, MCP tool list (names + JSON schemas), CLI verb list, auth design, publish/deploy flow, hot-reload strategy, v1 cut-line vs later, risks.