FastAPI · PostgreSQL · Stripe · Azure

Ship your Python SaaS
in a weekend

Auth, Google sign-in, Stripe subscriptions, Postgres migrations, Docker, CI/CD, and production Azure infrastructure — already built, tested, and documented. You write the product, not the plumbing.

Get the code → See what's inside

One-time purchase · Build unlimited products · Runs on Azure for under €30/month

32 passing tests Type-checked SQLAlchemy 2.0 Scale-to-zero infra No frontend build step OWASP-conscious auth

Everything the first two weeks would have cost you

Extracted from a real production app — not a demo that falls apart when Stripe sends its first webhook retry.

🔐 Auth done right

Email/password + Google OAuth (Authlib). Password reset with hashed single-use tokens, JWT revocation on reset, per-IP rate limiting, no email enumeration. The security model is documented, not implied.

💳 Stripe subscriptions

Checkout, customer portal, and webhook-driven sync — the local DB mirrors Stripe the way Stripe recommends. Gate any route behind payment with one dependency.

🗄️ Postgres + migrations

SQLAlchemy 2.0 typed models, Alembic migrations verified against real Postgres, and a session pattern that works in tests, containers, and jobs.

☁️ Azure infra as code

Bicep modules for Container Apps (scale-to-zero), Postgres Flexible Server, Key Vault, ACR, Log Analytics — plus a budget alert so you never get a surprise bill. One script deploys everything.

🚀 CI/CD wired

GitHub Actions run lint, tests, and Docker builds on every push. Infra deploys via OIDC federation — zero cloud credentials stored in GitHub.

🧪 32 tests you inherit

Full auth flows, the complete Stripe webhook lifecycle (subscribe → access → cancel → revoked), rate limiting, and token revocation. Change with confidence from day one.

Paywall a feature in one line

Two dependencies cover the whole access model: CurrentUser for logged-in users, Subscriber for paying ones. Stripe webhooks keep them honest.

  • 401 for anonymous users
  • 402 until they subscribe
  • Access revoked the moment Stripe cancels
# your_product.py
from app.api.deps import CurrentUser, Subscriber

@router.get("/reports")
def reports(user: CurrentUser):
    # any signed-in user
    ...

@router.get("/reports/export")
def export(user: Subscriber):
    # paying customers only
    ...

Pricing

Cheaper than half a day of your freelance rate. Two to four weeks of your calendar back.

€199
€149
one-time · launch price
Get FastForge →
  • Full source code (private GitHub repo access)
  • Build unlimited commercial products
  • All future updates to the kit
  • Setup guides: Stripe, Google OAuth, Azure deploy
  • 30-day money-back guarantee

FAQ

Why Azure and not AWS/Vercel?

Nearly every boilerplate targets Next.js + Vercel. If your stack is Python and your company or clients live on Azure, FastForge is built for exactly that — and the whole setup costs under €30/month, near €0 while idle thanks to scale-to-zero.

Do I need a frontend framework?

No. FastForge ships dependency-free landing, account, and password-reset pages so you can launch without a build step. The backend is a clean JSON API, so you can add React/Vue/Svelte later without touching it.

Is the auth actually production-grade?

bcrypt passwords, JWT revocation via token versioning, hashed single-use reset tokens, verified-email-only OAuth linking, rate limiting on every auth endpoint, and identical error responses to prevent enumeration. The full security model is documented in the repo, with tests for each property.

Can I use it for client projects?

Yes — the license allows unlimited products, commercial or not. The only thing you can't do is resell or republish the boilerplate itself.

What if it's not for me?

Email me within 30 days for a full refund.