v0.4.0 · Chameleon MIT License Python 3.11+ FastAPI

The modern CMS,
built with FastAPI.

A blazing-fast, plugin-first, open-source content management system built with Python, FastAPI, and modern web technologies — for teams who outgrew PHP but never wanted to.

12.4k stars 640 contributors ~40ms avg response
Core Posts Media Plugins SEO Users Themes Storage Analytics
WHY PYPRESS

Everything WordPress should have been in 2026.

No PHP, no plugin spaghetti, no mystery meat hosting requirements. Just a modern async core and a plugin API developers actually enjoy writing for.

FastAPI-powered async backend

Every request path is async from the router down to the database driver, so PyPress scales on a fraction of the hardware a synchronous CMS needs.

Python plugins, not PHP

Write extensions in the language your team already knows.

Built-in SEO & redirects

Meta, sitemaps, and a redirect manager, no plugin required.

Local, S3, R2 & MinIO storage

Swap storage backends with one config value.

Automatic OpenAPI docs

Every endpoint you build is instantly documented.

Docker-first deployment

Ship with a single docker compose up. Production images are under 180MB and ready for Postgres, MySQL, or SQLite out of the box.

Secure auth & RBAC

JWT sessions with granular role-based permissions.

Headless-ready

Consume content via REST today, GraphQL is on the roadmap.

Enterprise-ready architecture

Multi-tenant and audit logging on the roadmap for teams that need it.

FEATURES

Everything a content team needs, out of the box.

Async performance core

Non-blocking I/O across routing, templating, and the database layer keeps response times flat under load.

Plugin system

A typed plugin SDK with lifecycle hooks for content, admin UI, and background jobs.

Theme engine

Jinja2-based themes with hot reload and scoped asset bundling.

REST API & OpenAPI

Every content type is exposed as a documented, versioned REST endpoint automatically.

JWT authentication

Short-lived access tokens, refresh rotation, and role-based access control baked in.

Media library

Automatic image optimization, responsive variants, and CDN-friendly URLs.

Redirect manager

Track 404s, set up rules, and manage bulk redirects from the admin panel.

Markdown support

Write content in Markdown or the visual editor; both save to the same schema.

soon

Block editor

A Gutenberg-style block canvas for structured, component-based content.

soon

Multisite

Run a network of sites from one PyPress installation and database.

soon

Plugin marketplace

Browse, install, and update community plugins from inside the admin.

soon

Theme marketplace

A curated catalog of free and premium themes, one click to install.

Browser FastAPIASGI router Core Enginebusiness logic PluginMgr MySQL / PG Cloud Storage CDN
DEVELOPER EXPERIENCE

Feels like FastAPI, because it is FastAPI.

PyPress doesn't hide the framework underneath. Every route, dependency, and model is plain FastAPI, so you already know how to extend it.

  • Type-hinted models with Pydantic v2
  • Dependency injection for auth, DB sessions, and plugins
  • Hot-reload dev server via Uvicorn
main.py
from fastapi import FastAPI
from pypress import ContentEngine

app = FastAPI()
cms = ContentEngine(app)

@app.get("/")
async def home():
    return {"project": "PyPress"}

@app.get("/posts/{slug}")
async def get_post(slug: str):
    return await cms.posts.get(slug)
ROADMAP

Built in public, one release at a time.

v0.1
Bootstrap
v0.2
Authentication
v0.3
Media library
v0.4 · now
Plugin SDK
v0.5
Theme engine
v0.6
SEO suite
v0.7
Marketplace
v1.0
Stable release
COMPARISON

How PyPress stacks up.

Capability PyPress WordPress Ghost Strapi
FastAPI / Python core
REST API built-inpartial
Automatic OpenAPI docspartial
Python plugin SDK
Theme marketplacesoonpartial
Built-in SEO & redirectspartialpartial
Media library w/ optimizationpartialpartial
Docker-first deploymentpartial
Modern admin UI
EARLY ADOPTERS

What teams are saying.

"We migrated our docs site off WordPress in a weekend. The plugin SDK meant our custom widgets ported over almost as-is."
Maya R.
Platform Engineer
"Finally a CMS where the API docs generate themselves. Our frontend team started building against it before the backend was even finished."
Diego F.
Lead Developer
"The Docker image just works. We had staging and production environments up in under ten minutes."
Priya S.
DevOps Lead
PRICING

Free and open source. Always.

Open Source

$0

forever, MIT licensed

  • Full core CMS
  • Unlimited self-hosted sites
  • Plugin & theme SDK
  • Community support
Download
popular

Community

$0

everything in Open Source, plus

  • Discord priority channel
  • Early access to betas
  • Vote on the roadmap
  • Marketplace listing credits
Join Discord
coming soon

Enterprise

Custom

for regulated & multi-team orgs

  • SSO & audit logging
  • Multisite management
  • SLA-backed support
Join waitlist
FAQ

Questions, answered.

Is PyPress really free to self-host?

Yes. The core CMS is MIT licensed with no seat limits, site limits, or feature gates. Enterprise add-ons will be optional and clearly separated from the open-source core.

Which databases are supported?

SQLite for local development, and PostgreSQL or MySQL for production, all through the same async ORM layer.

Do I need to know FastAPI to write a plugin?

Basic Python is enough to get started. Knowing FastAPI helps for advanced plugins that add their own routes, but the SDK covers most content and admin hooks without it.

Can I migrate content from WordPress?

A WXR import tool is on the v0.6 roadmap. Today, the REST API makes scripted migrations straightforward.

How is this different from a headless CMS like Strapi?

PyPress ships a full themeable frontend like WordPress or Ghost, but can also run headless behind its REST API, giving you both options from the same install.

Ready to build with PyPress?

Spin up a local instance in under two minutes, or follow along as we ship toward v1.0.