Overview
Discover what makes Mataroa powerful
Mataroa is a **naked blogging platform** built on Django, designed for developers who want full control over the hosting environment and a minimalistic, privacy‑first experience. At its core, it serves as a stateless web application that maps each user to a subdomain (e.g., `alice.mataroa.blog`), enabling isolated blogs without the need for multi‑tenant routing logic. The platform exposes a RESTful API, webhook endpoints, and a command‑line interface (`mataroa-cli`) for programmatic management of posts, users, and exports.
Framework
Language
Database
Containerization
Overview
Mataroa is a naked blogging platform built on Django, designed for developers who want full control over the hosting environment and a minimalistic, privacy‑first experience. At its core, it serves as a stateless web application that maps each user to a subdomain (e.g., alice.mataroa.blog), enabling isolated blogs without the need for multi‑tenant routing logic. The platform exposes a RESTful API, webhook endpoints, and a command‑line interface (mataroa-cli) for programmatic management of posts, users, and exports.
Technical Stack & Architecture
- Framework: Django 4.x with a single app,
main, encapsulating all business logic. The project follows Django’s standard MVT pattern but eschews the admin UI in favor of a custom, lightweight interface. - Language: Python 3.11+, leveraging type hints and
uvfor dependency management. - Database: PostgreSQL, bundled with Docker Compose in a named volume (
docker-postgres-data). The schema is intentionally simple—users, posts, media, and export jobs—to keep the migration surface small. - Containerization: Docker Compose orchestrates a
webcontainer (gunicorn + Nginx) and adbcontainer. The Dockerfile is minimal, using the official Python slim image and installing only production dependencies. - Subdomain Handling: During development, developers map user accounts to
/etc/hostsentries. In production, a reverse proxy (NGINX or Traefik) routes subdomains to the Django container, withHostheader checks performed in middleware.
Core Capabilities & APIs
- Markdown‑first Publishing: Posts are stored as Markdown with optional front matter. The rendering pipeline uses
markdownand a custom template to convert to HTML on the fly. - Export & Import: CLI commands allow exporting a blog as an EPUB, JSON, or plain Markdown bundle. Import utilities parse markdown files and create posts with metadata.
- RSS & Email Newsletters: Built‑in RSS feeds expose the latest posts; an optional email newsletter system can push updates to subscribers.
- Analytics: Server‑side analytics are collected without third‑party cookies. Metrics (views, referrers) are stored in the same PostgreSQL database and exposed via a lightweight API.
- Webhooks: External services can hook into post creation, update, or deletion events. The webhook payload includes user ID, post slug, and timestamps.
Deployment & Infrastructure
- Self‑Hosting: Requires a Linux host with Docker or a virtual environment for local development. The platform is stateless aside from the database, making horizontal scaling straightforward—add more
webreplicas behind a load balancer. - Scalability: Django’s ORM and PostgreSQL handle moderate traffic out of the box. For high‑volume scenarios, caching (Redis) can be introduced for rendered HTML fragments and RSS feeds.
- Customization: The template system is intentionally minimal, but developers can override templates or extend the
mainapp with custom views. Static assets are served via Nginx, allowing CDN integration.
Integration & Extensibility
- Plugin System: While no formal plugin API exists, the codebase is modular. Developers can fork
mainor create separate Django apps that hook into signals (e.g.,post_save) to add functionality such as image processing or social media posting. - Webhooks & APIs: The REST endpoints follow Django Rest Framework conventions, enabling integration with CI/CD pipelines or external content management tools.
- CLI & Automation:
mataroa-cliexposes commands for user and post management, making it suitable for scripting deployments or generating static backups.
Developer Experience
- Documentation: The official docs (
docs.mataroa.blog) cover architecture, deployment, and API usage. Community support is active via a mailing list (~sirodoht/mataroa-community@lists.sr.ht) and GitHub discussions. - Configuration: Environment variables are managed through a
.envrcfile anddirenv, simplifying local setup. The Docker Compose stack abstracts most configuration, but developers can override settings via environment variables. - Licensing: Released under Affero GPLv3, ensuring that any modifications remain open source while allowing commercial hosting.
Use Cases
- Personal Blogging: A developer can spin up a private blog in minutes, host it on their own domain, and export content as EPUB for offline reading.
- Educational Content: Instructors can host course blogs, auto‑export lesson plans via email, and use the API to integrate with learning management systems.
- Micro‑Publishing: Teams can deploy multiple subdomains for product updates, using the lightweight API to push new posts from CI pipelines.
Advantages Over Alternatives
- Zero Tracking & Privacy: No third‑party analytics or cookies, appealing to privacy‑conscious developers.
- Simplicity & Performance: A single Django app with a lean database schema keeps resource usage low and startup times fast.
- Open Source Freedom: Affero GPL guarantees that any improvements remain in the community, and the absence of platform lock‑in means full control over hosting and data.
- Developer‑Friendly Extensibility: The codebase is small enough to be forked and extended without a steep learning curve, yet mature enough to support production workloads.
Mataroa offers a robust, privacy‑centric blogging foundation that empowers developers to host their own content with minimal friction while retaining the flexibility to extend and integrate as
Open SourceReady to get started?
Join the community and start self-hosting Mataroa today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Actual Budget
Local‑first personal finance tool with fast, privacy‑focused budgeting.
Engity's Bifröst
Advanced, OpenID‑connected SSH server for containers and Kubernetes
Uploady
Fast, secure multi‑file uploads with admin insights
Simple Private Image Server
Fast, lightweight image gallery for private servers
Apache Guacamole
Clientless remote desktop gateway via HTML5 browser
Rygel
DLNA/UPnP media server and renderer for home networks