Production runs on Coolify (Railpack) behind nginx, as a static site (bun run generate → .output/public). See AGENTS.md for deploy and analytics details.
We use Bun for package management. nuxi generate still runs on Node.
bun install
bun run dev
bun run generate
Output: .output/public. Coolify/nginx serves that folder.
bun run build
bun run start runs Nitro (node .output/server/index.mjs). Production is SSG, not this server.
generate runs sync-durations, nuxi generate, then converts prerendered HTML to markdown next to the HTML. build runs validate-durations then nuxi build. Both fail if a published episode is missing duration or fileSize in its frontmatter.
After adding a new episode, sync duration and fileSize from the remote MP3 into the markdown frontmatter:
bun run sync-durations
Options:
--dry-run— preview changes without writing files--force— recalculate even when values already exist--slug <dsSlug>— sync a single episode
Check that all published episodes have the required metadata (same check used before build):
bun run validate-durations
Umami is self-hosted at https://analytics.double-slash.dev. @nuxt/scripts loads it with hostUrl: 'https://analytics.double-slash.dev'. The browser posts to /api/send on that origin (CORS allowed). No nginx reverse-proxy on the static site.
- Transcription for
SEO - Sponsoring page => redirection
- Contact Form
- Live page ?