Skip to main content

Moosey CMS 🫎

PyPI version Python versions MIT License Downloads Last commit

A lightweight, drop-in Markdown CMS for FastAPI.

Moosey CMS turns a FastAPI application into a content-driven website using Markdown files, YAML frontmatter, and Jinja templates - no database required.

Moosey CMS admin editor with side-by-side Markdown editing and live preview

Features

  • File-based Markdown content with automatic URL routing
  • Jinja template resolution and sandboxed expressions
  • Hot reloading and content-aware caching
  • Visual admin for content, frontmatter, and static assets
  • Git-backed file history, diff previews, and rollback
  • SEO metadata, sitemaps, robots.txt, and RSS feeds
  • Responsive image processing and CDN support
  • JSON API for content management

Features that replace paid services

Moosey CMS feature Can replace
Responsive image generation, srcset, local transforms, and CDN URL support Cloudinary, Imgix, and ImageKit
Open Graph, Twitter Cards, JSON-LD, canonical URLs, sitemaps, robots.txt, and RSS feeds Yoast SEO Premium, Rank Math Pro, and managed SEO tooling
Markdown content management, a visual admin, structured metadata, file uploads, and a CRUD API Contentful, Sanity, Ghost(Pro), and hosted headless CMS platforms
Automatic Git history, version tracking, diff previews, and one-click rollback Contentful revisions, headless CMS version history, and Git-based CMS platforms

Installation

Install every optional feature, including image processing and face-aware cropping:

uv add 'moosey-cms[all]'
# or
pip install 'moosey-cms[all]'

Choose a smaller installation when you do not need every feature:

Package Included features
moosey-cms Core CMS
moosey-cms[images] Core CMS and Pillow image processing
moosey-cms[faces] Image processing and OpenCV face-aware cropping
moosey-cms[all] All optional features

Use the same package specifier with uv add or pip install.

Quick start

Scaffold and run a complete site:

moosey-cms init ./my-site
cd my-site
moosey-cms dev

Open http://localhost:8000. To add the admin UI to an existing project:

moosey-cms admin --templates ./templates --static ./static

See Getting Started for manual FastAPI setup, optional dependencies, and production commands.

Documentation

Guide Covers
Getting Started Installation, setup, configuration, and the example app
CLI Project scaffolding, admin installation, and server commands
Admin Dashboard & API Admin UI, Git history, authentication, and JSON endpoints
Templates Template resolution, layouts, collections, and pagination
Frontmatter Supported metadata and project overrides
Markdown Rendering and enabled Markdown extensions
Filters Complete Jinja filter reference
Images Responsive images, transforms, face detection, and CDNs
SEO Metadata, structured data, sitemaps, robots.txt, and feeds
Security Sanitization, CSP, template sandboxing, and deployment guidance
Patterns Practical project structures and conventions

The example/ project is a working reference implementation.

Development

uv sync
uv run pytest

Please report bugs and security issues through the GitHub issue tracker.

License

MIT License. Copyright © 2026 Anthony Mugendi.

Inspired by fastapi-blog by Daniel Roy Greenfeld.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moosey_cms-0.9.9.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moosey_cms-0.9.9-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file moosey_cms-0.9.9.tar.gz.

File metadata

  • Download URL: moosey_cms-0.9.9.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for moosey_cms-0.9.9.tar.gz
Algorithm Hash digest
SHA256 418fd66e8350adfda2f52e31bdf17461d36f06fb204cb9ae4e6bcdf6e73160ee
MD5 31062ab6f93ae44c84f4a3e5fdfd8dcb
BLAKE2b-256 5d4236757b53d3998deebc21305d27b6831d81d61df6215e09c8e522ac1fb04e

See more details on using hashes here.

File details

Details for the file moosey_cms-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: moosey_cms-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for moosey_cms-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0dfe23d8260615f8aab02ea14eb44b02edb50405e05e082a88f0fa380281b489
MD5 ff7bbb8f206e440394d303e5831a675d
BLAKE2b-256 d93d8d2cf7321cb9aea5eb63a532bb8cde576ca7ef1be66ef5672c408f77d5b3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.9.9 This release

2 files

0.9.8

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page