🚧 v0 · early access — not for production🚧 FastCMS is under active development — not ready for production use. APIs and features may change without notice.
FastCMS

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

LayerTechnology
FrameworkFastAPI 0.115, Python 3.11+
DatabaseSQLAlchemy 2.0 async + Alembic, SQLite / PostgreSQL
AuthJWT (python-jose) + bcrypt (passlib)
Real-timeWebSockets + SSE + Redis pub/sub
StorageLocal / AWS S3 / Azure Blob
Admin UIJinja2 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"
# 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 dev

Option 2: Project-local with uv add

uv init my-app
cd my-app
uv add pyfastcms
uv run fastcms dev

Option 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 -d

See 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 dev

Then open http://localhost:8000/admin to access the admin dashboard.

Next Steps

On this page