Manage · Billing & license

Billing & license

Solo Hosted is a flat $25/mo for one user; Team is $50/seat/mo, billed 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 up to 30 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 30 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: Solo Hosted ($25/mo flat, single user) vs. Team ($50/seat/mo, adds multi-user connect + sync, governance rollup, budget alerts) vs. Enterprise (contact sales; adds SSO, SCIM, audit export).
  • 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 - not collected at checkout today. Stripe Tax is under evaluation (open question Q-001) and is not wired into checkout yet.

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.

    Annual billing is 12 months for the price of 11: 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