Skip to content

Billing transparency & usage metering #22

Description

@nthh

Summary

If/when Remolt offers a hosted paid tier, build billing transparency from day one. Users should always know what they're paying for and how much they've used.

Why this matters

Fly.io Sprites launched with unclear billing — HN users complained they couldn't tell if idle Sprites cost money, couldn't see real-time usage, and called pricing "extremely expensive" partly due to opacity. Lesson: show the meter while it's running, not just on the invoice.

Principles

  1. Real-time visibility — user sees current cost accumulating during a session
  2. Clear idle policy — explicitly state what idle costs (ideally $0)
  3. Predictable pricing — per-minute or per-hour, not per-CPU-cycle
  4. Spending controls — auto-stop when balance runs low (Shellbox stops at $5 remaining)
  5. Usage history — dashboard showing past sessions, duration, cost

Implementation notes

  • The events.jsonl analytics stream already tracks session.created, session.ended, and duration_s — this is the billing data source
  • Session time remaining indicator (Session time remaining indicator #6) is the UX foundation for real-time metering
  • Server already tracks last_activity per session — extend to track cumulative runtime

Not needed now

This is a forward-looking issue. Remolt is currently self-hosted/free. File this to ensure billing is designed well when the time comes, informed by competitor missteps.

Competitive context

  • Shellbox: $0.02/hr running, $0.50/mo stopped — extremely transparent
  • Sprites: usage-based but opaque — drew significant criticism on HN
  • GitHub Codespaces: included hours per plan tier, clear overage pricing

Metadata

Metadata

Assignees

No one assigned

    Labels

    mediumWeeks of work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions