// The project's own identity — the one place the product is named and located. // // This is deliberately PURE: zero imports, zero I/O, no framework types. That // makes it safe to pull into server components, `"use client"` trees, plain // `tsx` scripts and the MCP server alike, without dragging `node:fs` (or a // settings read) along with it. // // IDENTITY SPLIT — read this before adding a consumer. There are two identities // in this codebase and they are not the same thing: // • PRODUCT identity (here): what the software is called, where it lives, how // it describes itself. Same on every install. Used by the project site's // chrome, the "Built with Archilyzer" back-link every export site renders, // and the `generator` string in corpus.json. // • OPERATOR identity (common/lib/homepage.ts + settings.json): what THIS // operator calls their own deployment, their social links, their site // descriptions. Editable in the editor; differs per install. // A string that should change when someone else deploys this belongs there, // not here. export const PROJECT_NAME = "Archilyzer"; // The wordmark's heavy lead: "Archi" + "lyzer" (lib/brand.ts splitWordmark). // The family's wordmark splits on the subject's name, and the project's subject // is the archive itself. The hub's synthesized Site carries it // (export/app/lib/site.ts hubSite). export const PROJECT_WORDMARK_LEAD = "Archi"; // The canonical public home of the project site. Baked into every export // bundle's footer at build time, so changing it does not retroactively fix // already-deployed archives. If a bespoke domain is ever acquired, DO NOT swap // this and rebuild the world: point the new domain at Cloudflare Pages and add // a 301 from `archilyzer.pages.dev`, which keeps every deployed back-link // valid. Only then is changing this string a cosmetic follow-up. export const PROJECT_URL = "https://archilyzer.pages.dev"; // The homepage's Official Instances section, where every archive's header // links in place of the old sites dropdown (homepage/app/page.tsx, // `id="instances"`). export const INSTANCES_URL = `${PROJECT_URL}/#instances`; export const PROJECT_TAGLINE = "Self-hosted, searchable video-transcript archives."; // Where a visitor gets the source as a tarball. The canonical public copy is // the read-only git mirror on the same site (lib/sourceManifest.ts CLONE_URL, // homepage/app/source); this is its no-git alternative. export const PROJECT_DOWNLOADS_URL = `${PROJECT_URL}/downloads/`; // The homepage's AI and MCP doc (homepage/content/docs/ai-and-mcp.md): the // published contract, the MCP server and its setup, in one place. Every // archive's "Use with AI" link goes here, in the same tab (release 16 slice // DX), as do corpus.json's `useWithAi` and llms.txt's line of that name. export const AI_DOC_URL = `${PROJECT_URL}/docs/ai-and-mcp/`; // The `generator` string stamped into corpus.json and llms.txt, so anything // that reads an archive machine-side can find the software that built it. // Shape mirrors the HTML convention. export const PROJECT_GENERATOR = `${PROJECT_NAME} (${PROJECT_URL})`;