Ship your SaaS. Own the stack.
ReadyKit is the open-source Python starter. Auth, billing and workspaces come ready-cut.
Bill with Stripe.Chargebee.
Pick a provider in .env. Hosted checkout, subscriptions, webhooks and a 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
What you start with.
Screens from a fresh install, not mock-ups. Sign in to the live demo; it resets every hour.
Tested in CI on Python 3.11 to 3.14, with Stripe and Chargebee test suites. Checkout, failed renewals and cancellations run against a Stripe sandbox.
From repo to running.
-
Clone
First, clone it and run the setup script. It generates your app secrets.
git clone https://github.com/level09/readykit.git cd readykit && ./setup.sh -
Configure
Then add your OAuth credentials and billing keys to
.env. -
Run
Next, create the database and start it on
localhost:5050.uv run flask create-db uv run flask install uv run flask run -
Build yours
Finally, add your own routes. Membership checks and scoped queries are already there.
@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 )
Python 3.11+, uv and Git. Prefer containers? docker compose up --build.
Full setup guide
Already in the box.
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.
Billing
Stripe or Chargebee: hosted checkout, subscriptions, webhooks and a customer billing portal.
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.
Familiar tools.
- Python
- Flask
- Vue
- Vuetify
- PostgreSQL
- Redis
- Celery
- Alembic
- Docker
- uv
ReadyKit
For anyone building a SaaS, commercial products included.
The complete source, commercial use, self-hosting on your own infrastructure and community support on GitHub. Keep the MIT copyright and license notice.
Running it
Hosting and your billing provider’s fees are paid to them, never to us.
At cost
Read the licenseGood questions.
More to ask? Join the discussion
How does workspace scoping work?
Use the WorkspaceScoped helpers for model queries and require_workspace_access on workspace routes. They check membership and scope data to the current workspace.
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.
What about solo users?
They get a workspace automatically and go straight to your app. The workspace switcher and team controls appear when they are needed.
Which billing providers are supported?
Stripe and Chargebee. Set BILLING_PROVIDER in your .env, add your credentials and plan IDs, then configure the provider’s webhooks. Pick one before launch: switching after customers subscribe means migrating their data by hand.
Who controls authentication?
You do. Authentication runs in your application with Flask-Security-Too. OAuth connects Google or GitHub; two-factor and passkeys are handled by your app.
Can I run it in containers?
Yes. docker compose up --build starts the whole stack locally.