From 05bdd6b563ba9aeca0981a4e1f56de25f88a50b6 Mon Sep 17 00:00:00 2001 From: Igor Benav Date: Tue, 2 Jun 2026 22:49:19 -0300 Subject: [PATCH] reference other --- docs/fastro-vs-fastroai.md | 30 +++++++++++++++++++++++ docs/user-guide/admin-panel/index.md | 3 +++ docs/user-guide/background-tasks/index.md | 3 +++ docs/user-guide/caching/index.md | 3 +++ docs/user-guide/rate-limiting/index.md | 3 +++ zensical.toml | 3 +++ 6 files changed, 45 insertions(+) create mode 100644 docs/fastro-vs-fastroai.md diff --git a/docs/fastro-vs-fastroai.md b/docs/fastro-vs-fastroai.md new file mode 100644 index 00000000..9d67e720 --- /dev/null +++ b/docs/fastro-vs-fastroai.md @@ -0,0 +1,30 @@ +# Fastro vs FastroAI + +This boilerplate - **Fastro** - is the free, open-source **foundation**: everything you need for a production FastAPI backend. **[FastroAI](https://fastro.ai)** is the paid template built on the same foundation for shipping a **complete SaaS** - Stripe billing (subscriptions, credits, discounts), entitlements, transactional email, and a frontend, all wired together. Building an **AI** product? The PydanticAI agent layer is included too - but every paid feature fits a regular SaaS just as well. + +| | **Fastro** (this repo · free) | **FastroAI** (paid) | +|---|:---:|:---:| +| FastAPI + SQLAlchemy 2.0, Pydantic v2 | ✓ | ✓ | +| Auth - sessions, OAuth, API keys | ✓ | ✓ **+ JWT** | +| FastCRUD · SQLAdmin · Alembic | ✓ | ✓ | +| Caching · rate limiting · Taskiq jobs | ✓ | ✓ | +| Docker (local / prod / nginx) | ✓ | ✓ | +| `bp` CLI - scaffolding, env audit, plugins | ✓ | | +| **Payments** - Stripe: subscriptions, credits, discounts, webhooks | | ✓ | +| **Entitlements** - feature gating by plan/tier | | ✓ | +| **Transactional email** & notifications | | ✓ | +| **Frontend** - Astro landing / marketing site | | ✓ | +| **Observability** - Logfire tracing & metrics | | ✓ | +| **AI agents** - PydanticAI: memory, tools, usage tracking | | ✓ | +| Support | Community · Discord | Priority · lifetime updates | + +

+ + FastroAI - the complete SaaS template: payments, entitlements, email, frontend and AI on top of Fastro + FastroAI - the complete SaaS template: payments, entitlements, email, frontend and AI on top of Fastro + +

+ +**Stick with Fastro** if you want a clean, hackable FastAPI backend to build on. + +**[Get FastroAI →](https://fastro.ai)** if you're shipping a SaaS - AI or not - and want billing, entitlements, email, auth, and a frontend ready out of the box, all on the same foundation you already know. diff --git a/docs/user-guide/admin-panel/index.md b/docs/user-guide/admin-panel/index.md index 25bb4cd5..a70aceab 100644 --- a/docs/user-guide/admin-panel/index.md +++ b/docs/user-guide/admin-panel/index.md @@ -2,6 +2,9 @@ The boilerplate ships a built-in admin panel powered by [SQLAdmin](https://aminalaee.dev/sqladmin/). It gives you a web interface for browsing and editing the database without writing custom CRUD endpoints. +!!! tip "Building a full SaaS?" + The admin panel is part of the free foundation. **[FastroAI](https://fastro.ai)** bundles it with Stripe payments, entitlements, transactional email, a frontend, and AI agents - all wired together and production-ready. [Ship your SaaS faster →](https://fastro.ai) + ## Accessing the Admin Panel The admin panel is mounted at `/admin`. It's enabled by default — toggle it with: diff --git a/docs/user-guide/background-tasks/index.md b/docs/user-guide/background-tasks/index.md index 3af0d45b..887fe020 100644 --- a/docs/user-guide/background-tasks/index.md +++ b/docs/user-guide/background-tasks/index.md @@ -2,6 +2,9 @@ The boilerplate runs background work with [Taskiq](https://taskiq-python.github.io/) — an async-native task queue with a Celery-like API and pluggable brokers. By default it runs against Redis, with RabbitMQ available as an alternative. +!!! tip "Building a full SaaS?" + Background tasks are part of the free foundation. **[FastroAI](https://fastro.ai)** bundles them with Stripe payments, entitlements, transactional email, a frontend, and AI agents - all wired together and production-ready. [Ship your SaaS faster →](https://fastro.ai) + This page covers the actual setup that ships in `backend/src/infrastructure/taskiq/`, how to write and enqueue tasks, and how to run a worker. ## When to Use a Background Task diff --git a/docs/user-guide/caching/index.md b/docs/user-guide/caching/index.md index 02f19be8..058be300 100644 --- a/docs/user-guide/caching/index.md +++ b/docs/user-guide/caching/index.md @@ -2,6 +2,9 @@ The boilerplate ships a flexible caching system supporting **Redis or Memcached** server-side, plus configurable client-side cache headers. Same decorator and provider API regardless of the backend. +!!! tip "Building a full SaaS?" + Caching is part of the free foundation. **[FastroAI](https://fastro.ai)** bundles it with Stripe payments, entitlements, transactional email, a frontend, and AI agents - all wired together and production-ready. [Ship your SaaS faster →](https://fastro.ai) + ## Overview Three layers, used together as needed: diff --git a/docs/user-guide/rate-limiting/index.md b/docs/user-guide/rate-limiting/index.md index 60a564e8..820a0feb 100644 --- a/docs/user-guide/rate-limiting/index.md +++ b/docs/user-guide/rate-limiting/index.md @@ -2,6 +2,9 @@ The boilerplate ships a flexible rate limiter that supports per-tier, per-path limits with Redis or Memcached backends. This page covers how the pieces fit together, how to enable enforcement on your routes, and the gotchas to know upfront. +!!! tip "Building a full SaaS?" + Rate limiting is part of the free foundation. **[FastroAI](https://fastro.ai)** bundles it with Stripe payments, entitlements, transactional email, a frontend, and AI agents - all wired together and production-ready. [Ship your SaaS faster →](https://fastro.ai) + ## What's Built In ```text diff --git a/zensical.toml b/zensical.toml index f46ebbb5..6b1b3c7e 100644 --- a/zensical.toml +++ b/zensical.toml @@ -72,6 +72,9 @@ name = "FastAPI on PyPI" [[project.nav]] "Home" = "index.md" +[[project.nav]] +"Fastro vs FastroAI" = "fastro-vs-fastroai.md" + [[project.nav]] "Getting Started" = [ { "Overview" = "getting-started/index.md" },