Agents write code. The hard part is done.

Paste into Claude Code, Codex or Cursor
Set up github.com/level09/readykit in this folder and follow its AGENTS.md.
Then build: a Projects page in each workspace, for Pro workspaces only.
Run checks.py when you're done and show me the result.

Auth, billing and multi-tenant workspaces, written and tested. Your agent builds the product on top.

MIT licensed, free for commercial use. v1.7.4, released 18 October 2026.

Bill with Stripe.Chargebee.

Billing is where agent-written code fails quietly. ReadyKit's is already written and tested: retried and late webhooks, failed renewals, and unpaid workspaces sent to the billing portal.

Pick a provider in .env. Checkout and the customer portal work the same either way.

BILLING_PROVIDER=stripe
STRIPE_SECRET_KEY=your_secret_key
STRIPE_PRO_PRICE_ID=your_price_id
BILLING_PROVIDER=chargebee
CHARGEBEE_SITE=your-site
CHARGEBEE_API_KEY=your_api_key
BILLING_PROVIDER

What you start with.

Click through them in the live demo. It resets every hour.

ReadyKit workspace settings: the workspace name, your role, the plan, member count, and an Upgrade to Pro button at $29 a month
Workspace settings, with the plan and the Stripe upgrade.
Users dashboard listing a Super Admin user with email, workspaces and active status
Users, roles and workspaces in the admin.
Two-factor authentication panel: not enabled, with a Setup button
Two-factor setup for every user.
Activity log with a Login from new IP entry, its user and date
An activity log with user context.

What your agent runs.

  1. Set up

    It clones the repo and runs setup without prompts. Secrets are generated.

    git clone \
      https://github.com/level09/readykit
    cd readykit && ./setup.sh --yes
  2. Database

    SQLite to start, or Postgres provisioned by Stripe Projects.

    uv run flask create-db
    uv run flask install
  3. Billing

    Give it a Stripe test key. It makes the Pro price and webhook secret.

    uv run flask stripe-setup
    uv run flask stripe-listen
  4. Build

    It follows AGENTS.md and runs checks.py after each change.

    @app.get("/workspace/<int:workspace_id>/invoices/")
    @require_workspace_access("member")
    def invoices(workspace_id):
        invoices = Invoice.for_current_workspace()
        return render_template(
            "invoices.html", invoices=invoices
        )

The money paths are tested.

127 tests run in CI on Python 3.11 to 3.14, for Stripe and for Chargebee. Opt-in browser journeys drive checkout, cancellation and a failed renewal on a Stripe test clock.

Six of them, and the full result, from a run of v1.7.4 on 18 October 2026.

PASSED  test_duplicate_is_acknowledged_without_processing
PASSED  test_provider_failure_leaves_event_retryable
PASSED  test_late_event_cannot_revoke_recovered_access
PASSED  test_upgrade_with_unpaid_subscription_opens_portal
PASSED  test_foreign_record_id_cannot_be_used_in_own_workspace
PASSED  test_revoked_membership_blocks_existing_session

$ uv run pytest
119 passed, 8 skipped in 25.05s

Python 3.11+, uv and Git. Prefer containers? docker compose up --build. Full setup guide

Already in the box.

AGENTS.md

One instruction file for every coding agent: the stack, the commands, the workspace rules and the checks to run before it says it is done.

Sign-in

Google and GitHub login, TOTP two-factor and passkeys, run by Flask-Security-Too inside your own app.

Workspaces

Every signup gets a personal workspace and goes straight to your app. Switching and team controls appear when they are needed.

Teams

Manage members, assign roles, and issue workspace API keys.

Activity log

Who did what, with user and workspace context, and an admin view to review it.

Admin screens

Vue and Vuetify screens for dashboards, users, profiles and settings, ready to restyle.

Background jobs

Redis and Celery wired in, with Alembic migrations as your schema grows.

Stack

Python, Flask, Vue 3 and Vuetify with no build step, SQLite or PostgreSQL, uv and Docker.

Questions.

More to ask? Join the discussion

Which coding agents does it work with?

Any agent that reads AGENTS.md, including Claude Code, Codex, Cursor and GitHub Copilot. The file covers the stack, the commands, the workspace rules and the checks to run before finishing.

Do I have to use an agent?

No. It is a regular Flask app with its conventions written down, and AGENTS.md reads just as well as a guide for people.

Can I sell what I build?

Yes. ReadyKit uses the MIT license, which permits commercial use and modification. Keep the copyright and license notice with copies of the software.

Can I switch billing providers later?

Before launch, yes: change BILLING_PROVIDER and add that provider’s keys and webhooks. After customers subscribe, moving them to the other provider is a data migration you do by hand.