Introduction
FastCMS is a production-ready Backend-as-a-Service built with FastAPI and Python — your open-source alternative to Supabase and PocketBase.
Introduction
FastCMS is an open-source Backend-as-a-Service (BaaS) built with FastAPI, SQLAlchemy async, and Python. It provides everything you need to build data-driven applications — without managing infrastructure.
What is FastCMS?
FastCMS gives your frontend (or mobile app) a complete backend in minutes:
- Dynamic Collections — define schemas on the fly, auto-creates database tables
- Authentication — JWT, OAuth (29 providers), 2FA/TOTP, API Keys
- Access Control — row-level permission rules per collection
- Real-time — WebSocket subscriptions and SSE
- File Storage — local, S3, or Azure Blob with thumbnail generation
- Admin Dashboard — manage everything from a web UI
- Plugin System — extend with custom plugins
Who is it for?
FastCMS is ideal for:
- SaaS applications — multi-tenant apps with auth collections per user type
- Content platforms — blogs, e-commerce, media with dynamic schemas
- Internal tools — admin panels with access-controlled data
- Rapid prototyping — get a full REST API with auth in under 10 minutes
Tech Stack
| Layer | Technology |
|---|---|
| Framework | FastAPI 0.115, Python 3.11+ |
| Database | SQLAlchemy 2.0 async + Alembic, SQLite / PostgreSQL |
| Auth | JWT (python-jose) + bcrypt (passlib) |
| Real-time | WebSockets + SSE + Redis pub/sub |
| Storage | Local / AWS S3 / Azure Blob |
| Admin UI | Jinja2 templates |
Quick Start
FastCMS uses uv as its recommended Python toolchain. Install it first (one-time, ~5 seconds):
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
# Windows: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Option 1: Install from PyPI (Recommended)
# Install FastCMS as a global CLI (auto-isolated, no venv to manage)
uv tool install pyfastcms
# Create a new project
fastcms init my-project
cd my-project
# Set up the database
fastcms migrate up
# Create an admin user
fastcms create-admin
# Start the dev server
fastcms devOption 2: Project-local with uv add
uv init my-app
cd my-app
uv add pyfastcms
uv run fastcms devOption 3: Docker (production stack)
git clone https://github.com/aalhommada/fastCMS.git
cd fastCMS
cp .env.example .env # set SECRET_KEY (openssl rand -hex 32)
docker compose up -dSee the Docker deployment guide for the full production walkthrough.
Option 4: From Source (Contributors)
git clone https://github.com/aalhommada/fastCMS.git
cd fastCMS
# uv sync creates .venv and installs everything (dev tools included)
uv sync --all-extras
source .venv/bin/activate
# Set up and start
fastcms migrate up
fastcms create-admin
fastcms devThen open http://localhost:8000/admin to access the admin dashboard.
Next Steps
- Getting Started — full installation guide with environment setup
- Collections — learn how to define your data schema
- Authentication — set up users and login flows
- API Reference — complete REST API documentation