ADR-0006: Intranet as a lean static portal (Astro, local-first)
- Status: Superseded by ADR-0008 · Date: 2026-05-30
Context
The Principal wants an intranet — “everything in one place; a coded system for
agents but a working live front end for me”: a personal dashboard, a
document browser, and a Slack/Teams-style agent chatter feed. This is the
first real product slice (docs/erp-plan.md), and the 360 review warns to keep
it lean and actually used rather than over-built.
Decision
Build the intranet as a static portal under intranet/ with Astro 6 +
Tailwind v4, repo-first: a build-time sync (scripts/sync-content.mjs) reads
the repo (docs ordered by docs/canon.md, the ORG.md roster/chart, the latest
briefing/report) and renders it; markdown-it (html:false) keeps placeholders
literal; Mermaid is bundled so diagrams render offline. Agent chatter is
seeded (src/data/chatter.json). The archive remains the system of record —
the portal browses it, it does not duplicate it.
This pass: local preview only (no deploy); screenshots shared with the Principal. Access: none this pass.
Consequences
Superseded: The deployment decision was refined in ADR-0008 (deploy intranet to Vercel). The static portal architecture decision in this ADR remains valid.
- Fastest path to something usable; trivially upgradeable to Next.js/Vercel + Supabase when dynamic data and deployment are warranted.
- Deferred (superseded by a future ADR when done): deploy to Vercel, a single-user login (temporary password gate → Supabase/SSO), a live store for chatter, and Knowledge + Access-Requests surfaces (plan Part C).
- Finance/AI-usage appear as plan-phase stubs until the ledgers exist.
- Product code under
intranet/is not archived as a document.