This website is based on Nuxt 4. It is statically
generated (nuxt generate) and deployed to Cloudflare Workers and Netlify.
For the full architecture and contributor guide (content system, i18n,
prerendering, editorial and commit conventions), see CLAUDE.md.
Make sure to install the dependencies:
# yarn
yarn install
# npm
npm install
# pnpm
pnpm installStart the development server on http://localhost:3000
npm run devBuild the application for production:
npm run buildLocally preview production build:
npm run previewCheckout the deployment documentation for more information.
- General copy used throughout the website is located in
/i18n/locales/<locale>.json - Markdown-based content is in
/content/<content collection>/<locale>/<slug>.md(long documents like terms, privacy, objection pages) - JSON-based content is in
/content/<locale>_pages.json(general pages, programmatic content, data pages, etc.) - When to use i18n vs content: i18n = key-value translation, content = searchable, filterable, need metadata, etc.
npm run buildrunsnuxt generate(output in.output/public/). It first runsnpm run check:content, which fails the build if a prerendered EN slug/page has no FR/JA counterpart.- Cloudflare Workers:
npm run deploy(wrangler deploy). - Netlify: zero-config, picks up
nuxt generate. - Security response headers live in
public/_headers(honored by both hosts).