Skip to main content

Mosaic

A simple blog system in the spirit of the IndieWeb. It's aimed to get up and running as quickly as possible with your own, easily customizable CMS

Installation

First, install the package using your favorite python package manager

uv add django-mosaic

or

pip install django-mosaic

Second, you need to enable the app in your Django project.

# settings.py
INSTALLED_APPS = [
  ...
  "django_mosaic"
  ...
]

Third, run the migrations to add the relevant schemas to your database

uv run python manage.py migrate

Quickstart

Start the development server.

uv run python manage.py runserver

Mosaic exposes all its features through the admin. First, create a user for the admin.

uv run python manage.py createsuperuser

Go to http://localhost:8000/admin.

You can write a post right within the admin, in markdown.

By default, there are two namespaces, public and private. Everything you post in public will be visible to, well, everyone. Posts in private will be visible only to those with a secret AccessToken, which you can also generate in the admin.

Only Posts with the is_draft flag set to False will be shown on your website.

Hit the save button and go to https://localhost:8000

Have fun!

Deployment

To reduce one of the major pains of running your own site, Mosaic includes automated deployment for VPS hosting with sane (reach out if not!) defaults for Docker, nginx, and SSL certificates.

Quick Deploy

Deploy to a fresh Ubuntu/Debian VPS:

uv run python manage.py mosaic deployment setup

The setup wizard will prompt you for:

  • VPS hostname and SSH credentials
  • Domain name
  • Email for SSL certificate notifications

The deployment script will:

  • Install Docker, nginx, and certbot
  • Configure firewall (UFW)
  • Build and deploy your application in a Docker container
  • Set up nginx as a reverse proxy with rate limiting
  • Obtain SSL certificates via Let's Encrypt
  • Configure automated hourly database backups

Check Deployment Status

uv run python manage.py mosaic deployment status

Shows health checks for services, SSL certificates, backups, and application availability.

Configuration

Configuration is saved to .deployment-config.toml for subsequent runs.

🤖 AI Disclaimer

This project uses AI-assisted development tools. See the AI usage policy for details.

Tools

  • Claude Code (Anthropic) · claude-sonnet-4-6 · Agentic

Contribution Profile

Phase                               Human│ AI
─────────────────────────────────────────┼───────────────
Requirements & Scope       95% ██████████│             5%
Architecture & Design      95% ██████████│             5%
Implementation             40%       ████│░░░░░░      60%
Testing                     5%           │░░░░░░░░░░  95%
Documentation              40%       ████│░░░░░░      60%

Oversight: Collaborative

Human and AI co-author decisions; human reviews all output.

Process

AI agent operated autonomously across multi-step tasks. Human reviewed diffs, resolved conflicts, and approved merges.

Accountability

The human author(s) are solely responsible for the content, accuracy, and fitness-for-purpose of this project.


Last updated: 2026-02-20 · Generated with ai-disclaimer

Metadata

Release files for django-mosaic 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-mosaic 0.1.9
File Size Uploaded
django_mosaic-0.1.9.tar.gz 426.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-mosaic 0.1.9
File Interpreter ABI Platform
django_mosaic-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 871.8 kB

Release files / django_mosaic-0.1.9.tar.gz

Download URL django_mosaic-0.1.9.tar.gz
Size 426.9 kB
Tags Source
SHA-256 checksum
How to use checksums
451aeb4bc2c0e202571fed6f60d6a0e33135450644111ec1ac7f8c822cb5fb44
BLAKE2b-256 checksum
How to use checksums
7aaeddfee2dcecc20a59242e69ffa9ecf3b00461f2e58396c15dca7a9a1f69a2
Upload date
Uploaded using Trusted Publishing?
What is 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":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / django_mosaic-0.1.9-py3-none-any.whl

Download URL django_mosaic-0.1.9-py3-none-any.whl
Size 445.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46751806b7e8b6fe9834eeac918ddb3d53add1078a510ed249ed0c567b01ef80
BLAKE2b-256 checksum
How to use checksums
866385af6d35bfe412c0cc7f147fc9b528e06c2c4e9e4fda8af4251e05214d4b
Upload date
Uploaded using Trusted Publishing?
What is 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":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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