Billing and Accounts

Every external account Immersive depends on, what it costs, and what to watch. Compiled 2026-07-24 from the codebase, deploy config, and infrastructure work; amounts marked verify need Sean to confirm against the actual invoices/console. Keep this current: any PR that adds an external service must add a row here (and the reverse when one is removed).

Service Purpose Plan Est. cost Notes
Hetzner Cloud Production VM immersive-prod-01 (app + Postgres + Redis, see ../technical/production/kamal.md) CPX-class 4 vCPU / 8 GB ~€14/mo (verify) Snapshots bill extra per GB; check the console for snapshot retention
Namecheap Domain registration immersive-app.com ~$13/yr (verify) Registrar only since 2026-07-23; DNS lives at Cloudflare
Namecheap Private Email Human mail + catch-all → bonjour@ paid mailbox ~$15–25/yr (verify) Independent of the DNS move
Anthropic Claude Claude Code (dev automation, GitHub Actions via CLAUDE_CODE_OAUTH_TOKEN, cloud sessions) Pro/Max subscription per plan (verify) Deliberately no Anthropic API key (#470 item 2 dropped)
GitHub Copilot Automated PR review individual (verify) ~$10/mo (verify) The Copilot PR reviewer; confirm which plan is active
Apple Developer Program iOS distribution — TestFlight/App Store (#466) individual $99/yr Enrolled 2026-07 (#470 item 6); app record com.immersiveapp.immersive in App Store Connect
Service Purpose Pricing driver Recent reference point Notes
OpenAI All LLM features via RubyLLM (openai.api_key in credentials) tokens KB ingest, coach, corrections, verb generation Sole LLM backend after the #499 consolidation
AWS – Translate Reader glosses, frequency-deck imports per character 15k calls ≈ 150k chars ≈ $2.26 (#489 generation) Biggest spike risk: new frequency-deck language pairs (~5k calls/pair)
AWS – Polly All pronunciation/read-aloud audio per character generate-on-demand, cached in S3 Neural voices bill higher than standard
AWS – S3 Active Storage (audio, uploads, DB backups) GB stored + requests Backup retention pruning is automated (backup.rake)
ElevenLabs Premium TTS (#415/#418 — not yet wired into the app) characters/mo by tier Action open: dev API key reports free-tier despite the paid-plan tick on old #470 — verify which account the key came from before #415’s premium path ships

Free tier (watch the limits)

Service Purpose Free-tier boundary Notes
Cloudflare DNS, proxy/CDN, WAF managed rules, Zero Trust Access, Pages (handbook) Access ≤ 50 users; Pages 500 builds/mo One account carries the whole edge + the handbook hosting
GitHub Repos, Actions CI/deploys, GHCR images 2,000 Actions min/mo (private repos); GHCR 500 MB free Tag deploys + CI both consume minutes; Kamal images live in GHCR — prune old tags if the storage limit nears
Sentry Error tracking (Ruby + JS), uptime + cron monitors 5,000 errors/mo, 1 uptime, 1 cron Free Developer plan via GitHub SSO
MailerSend Transactional email (Devise, Anki export) 3,000 emails/mo (verify current tier) SMTP creds in credentials; DNS records documented in ../technical/production/dns.md

Upcoming / decided but not yet paid

Service Trigger Cost
ElevenLabs paid tier #415 premium audio path from ~$5/mo (Starter) — sized after the voice-selection pass

Cost hygiene — one-time actions

  • Verify the ElevenLabs account/key mismatch (free-tier key vs paid-plan tick)
  • Confirm GitHub Copilot plan and price
  • Close the Better Stack account if it still exists (replaced by Sentry during #288)
  • Close the Langfuse account if one exists (integration removed in PR #526); prune langfuse.* keys at next credentials:edit
  • Note the Hetzner snapshot retention and its monthly cost
  • Record actual amounts for every (verify) above after the next billing cycle

Where credentials live

API keys sit in Rails encrypted credentials (bin/rails credentials:edit --environment ...); deploy-time secrets in GitHub Actions secrets and the local .env (see ../technical/production/kamal.md). No service above bills through anything other than Sean’s own cards — there is no consolidated billing provider.


This site uses Just the Docs, a documentation theme for Jekyll.