The production site is a statically generated Astro application.
apps/site/contains the Astro source.apps/site/astro.config.mjssetsoutput: "static"; React is reserved for explicitly hydrated interactive islands.
Set PUBLIC_SITE_ORIGIN to the public origin used for Astro canonical URLs and the static host's site setting. During migration, NEXT_PUBLIC_SITE_ORIGIN and SITE_ORIGIN remain supported as fallbacks. The default is https://apiopscycles.com.
/llms.txt is generated by Astro from the current method catalog and locale list. It introduces the method vocabulary and guides agents to public pages and structured JSON, including graph joins and licensing. Public pages link to it with rel="describedby".
Public cycles, stations, lines, roles, and published resources have .md references generated from the same method data, including canvas guidance. Each language has an /index.md method document index and /llms-full.txt combined download (for example /fi/index.md and /fi/llms-full.txt). Contextual station documents contain changes to shared guidance, linked explicitly; shared sections and resource bodies are not copied into every journey. These exports cover method content, not every site page or interactive workspace state. HTML method pages advertise their Markdown reference with rel="alternate" type="text/markdown".
npm run prepare:local-data writes internal build artifacts to generated/method/ and publishes only the JSON integration surface under public/data/. The root build scripts run it automatically before building the Astro site.
npm install
npm run dev # Astro development server
npm run prepare:local-data # build and sync local package data
npm run build # static Astro production artifact in dist/
npm start # preview the built Astro site locally
npx playwright install chromium # install the browser used by end-to-end tests
npm run test:e2e # run Playwright end-to-end tests