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.8.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.8-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: moosey_cms-0.9.8.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.8.tar.gz
Algorithm Hash digest
SHA256 f4353e89236e74054c3944b58679b1ff8b92efef3b29b271c539dfc26088082a
MD5 a96d2ea0a4636df4828ccc504f03bfb2
BLAKE2b-256 f709eefd78ad63a0dddfaa79c928f2395812e1231fc5687163f35ee7c96bbde0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: moosey_cms-0.9.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a9327ba8615a14ad62750cf6e4a58ef4fcd5c553d6a1ff0c27780e4c6e8546c9
MD5 12f82fba6b19949bfc2280b69cda64b4
BLAKE2b-256 466d030744d683a2056187e081527e8f7f686afed3e1e9c73a0c91a1ee1773e9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.9.9

2 files

This release

0.9.8 This release

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