Hosted · /billing

Billing & license

Per-seat subscription, monthly or annual. Stripe-billed at the team level. License keys are signed JWTs the hosted issuer mints; each bound desktop carries one with a 30-day TTL. Soft grace if a renewal fails — the team rollup keeps streaming for 7 days while you sort the card out.

See it in motion

Where to find it

  • Hosted: https://repoops.ai/billing (owner / admin only).
  • Stripe: Each team has a Stripe customer + subscription. Card management via the Stripe customer portal.
  • License key: Signed JWT, minted on subscription start, refreshed on each binding tick. 30-day TTL = soft expiry.
  • Admin console: Seats used vs. paid, expiring keys, over-plan indicator, at /team.

What it does for you

One subscription, every developer.Per-seat pricing. Add a developer = bump the seat count = next invoice picks it up. No per-developer setup beyond the binding flow.
Soft grace, not a kill switch.If a renewal fails, you have 7 days. The hosted rollup keeps streaming. License-key issuance pauses (new bindings can't complete) but existing ones don't go dark mid-day.
License keys verify offline.Each desktop's license is a signed JWT it can verify without phoning home. Means a brief Vercel outage doesn't freeze the dashboard.

Configure

Mostly hands-off after sign-up. A few things to know:

  • Plan — Team ($20–30/seat/mo) vs. Cloud ($35–50/seat/mo, adds hosted retention + SSO).
  • Billing period — monthly or annual (annual gets the lower price).
  • Seat count — auto-bumps as bindings exceed paid count; over-plan indicator on the admin console.
  • Card — manage in the Stripe customer portal (link from /billing).
  • Tax — handled by Stripe Tax (when enabled; pending decision Q-001).

Use it well

  1. Pre-buy seats for the team you're hiring into.

    Cheaper than over-plan rates. Audit the admin console at the start of each month.
  2. Watch the expiring-keys list weekly.

    Keys expire 30 days after issuance; the streamer re-mints automatically while the desktop is online. A key showing > 25 days = the desktop hasn't synced recently.
  3. Use annual billing for stable team sizes.

    Save 15–20%; lock in the rate. Use monthly while sizing the team.
  4. If a renewal fails, fix the card in the 7-day grace.

    The 7-day soft grace is generous, not infinite. After day 7, license issuance pauses; bindings start to expire one by one as their JWTs hit 30 days.

Read more