Public website for Monarchic.
The site is an Astro static site for the Monarchic brand and public product research surface. It currently owns:
- the brand home page at
/ - the public products catalog at
/products - individual product detail pages at
/products/[slug] - the research index at
/research - one bounded research brief for each of the 27 public MCPs at
/research/[slug] - the substantive ExplicitMem benchmark at
/research/explicitmem - the current trust boundary at
/security - the company and operator page at
/about - privacy and service terms at
/privacyand/terms - generated
robots.txtandsitemap.xmlendpoints
The authenticated product experience, cart, account pages, API-key management,
and hosted MCP dashboard live in ../monarchic-webapp.
- Astro as the site shell
- Tailwind CSS v4 for styling
- a self-hosted Space Grotesk variable font bundled through Fontsource
- Svelte integration available for future interactive islands
- A code-native shader background component in
src/components/Shader14.astro - Shared canonical/Open Graph/Twitter metadata through
src/components/SeoHead.astro - A 1200x630 branded social preview image at
public/social-card.png
pnpm installpnpm devpnpm checkpnpm check:webcomposerpnpm buildpnpm previewpnpm smoke:localpnpm smoke:productionpnpm smoke:production:wwwpnpm smoke:production:apexpnpm smoke:stagingpnpm astro -- --help
The project currently expects Node >=22.12.0.
On NixOS, run browser smoke inside the repository dev shell so Playwright uses the packaged Chromium build:
nix develop -c pnpm smoke:productionGitHub Actions runs the shared Monarchic Nix CI workflow on main. That
workflow builds the flake packages, runs the flake checks, and leaves release
smoke commands as explicit flake apps.
Run production release smoke with:
nix run .#smoke-productionRun staging release smoke with:
nix run .#smoke-stagingUse docs/release-smoke-runbook.md for the
live deployment checklist and current smoke evidence.
/
├── public/
│ ├── favicon.svg
│ ├── social-card.png
│ └── social-card.svg
├── src/
│ ├── components/
│ │ ├── ProductWorkflowProof.astro
│ │ ├── Shader14.astro
│ │ └── SeoHead.astro
│ ├── lib/
│ │ ├── mcpResearch.ts
│ │ ├── mcpResearchContent.json
│ │ ├── pricing.ts
│ │ ├── productDetails.ts
│ │ └── productWorkflowProofs.ts
│ ├── pages/
│ │ ├── index.astro
│ │ ├── about.astro
│ │ ├── privacy.astro
│ │ ├── robots.txt.ts
│ │ ├── security.astro
│ │ ├── sitemap.xml.ts
│ │ ├── terms.astro
│ │ ├── products/
│ │ │ ├── index.astro
│ │ │ └── [slug].astro
│ │ └── research/
│ │ ├── index.astro
│ │ ├── [slug].astro
│ │ └── explicitmem.astro
│ └── styles/
│ └── global.css
├── astro.config.mjs
├── svelte.config.js
└── package.json
src/lib/pricing.generated.json,src/lib/pricing.coming-soon.json, andsrc/lib/productDetails.tsare generated deploy artifacts copied from../shared/product-catalog. Edit the shared catalog, then runpnpm sync:shared-catalogfrom../monarchic-webapp.pnpm check:shared-catalogcompares the website and webapp generated catalog artifacts against../shared/product-catalogwhen the sibling workspace is present. In a standalone website checkout it skips cleanly so Vercel and GitHub can still build the deployable artifact copy./build-info.jsonexposes one sortedcatalog.planSlugsinventory plus aggregatecatalog.manifestDigestandcatalog.artifactDigestvalues for generated artifacts. The live smoke verifies that shape and both digests without publishing internal file names or per-file hashes. The endpoint is markednoindex, nofollow.vercel.jsondefines the expected static deployment settings. SetPUBLIC_MONARCHIC_WEBSITE_BASE_URL,PUBLIC_MONARCHIC_API_BASE_URL, andPUBLIC_MONARCHIC_WEBAPP_BASE_URLfromenv.examplein Vercel before deploying.vercel.jsonalso applies the website CSP, HSTS, framing, MIME-sniffing, referrer, and browser-permission headers. Keep the CSP API origins aligned with the production and staging waitlist endpoints.- Available MCP product pages render a website-local, schema-grounded workflow proof. Those examples must keep their permission and content-isolation boundaries beside the request, output, and estimated usage impact.
src/lib/mcpResearchContent.jsonis website-local public content. Its entries must cover the same 27 MCP slugs as the catalog exactly. Hosted status and the available-plan or waitlist action are derived from the catalog instead of being duplicated in research copy.- Product research briefs explain the problem, validation approach, public evidence boundary, and current limits without exposing proprietary implementation details. A brief is not called a benchmark unless it meets the stricter publication bar used by the ExplicitMem LongMemEval-S report.
- Set
PUBLIC_MONARCHIC_WEBSITE_BASE_URLwhen building non-production environments that need canonical URLs, Open Graph URLs, robots output, and sitemap entries to point somewhere other thanhttps://monarchic.io. - Set
PUBLIC_MONARCHIC_API_BASE_URLwhen the website waitlist should submit somewhere other thanhttps://api.monarchic.io. - Set
PUBLIC_MONARCHIC_WEBAPP_BASE_URLwhen available-plan purchase links should open somewhere other thanhttps://app.monarchic.io. pnpm smoke:localbuilds the static site, startsastro previewon127.0.0.1:4332, runs the production smoke assertions against that local preview, and stops the server. Override the port withMONARCHIC_WEBSITE_LOCAL_PORT.pnpm smoke:productionuses Playwright to verify the live site HTTP response,robots.txt,sitemap.xml, homepage metadata, product pages, all 27 research routes, reciprocal product links, the waitlist form contract, and horizontal overflow againsthttps://www.monarchic.iowhile keeping canonical URLs pinned tohttps://monarchic.io. Override the target withMONARCHIC_WEBSITE_SMOKE_URL. Override expected canonical links withMONARCHIC_WEBSITE_EXPECTED_CANONICAL_URL, which is useful when smoking a local preview built with production canonical URLs. On NixOS, prefernix develop -c pnpm smoke:productionso the smoke script gets a Chromium executable with the required shared libraries.pnpm smoke:production:wwwis an alias for the current production release gate.pnpm smoke:production:apexruns the same gate againsthttps://monarchic.io. Use it while investigating apex DNS or edge routing.dist/contains generated build output and should be treated as an artifact, not as source.