Overview
Discover what makes WriteFreely powerful
WriteFreely is a lightweight, self‑hosted publishing platform designed to give developers full control over their content stack while maintaining a minimal resource footprint. At its core, the application exposes a single Go binary that serves both the editor and reader interfaces, leveraging an embedded SQLite database by default or a MySQL backend for larger deployments. The API surface is intentionally lean: content is stored as Markdown, tags are handled via hashtags, and static pages can be generated by pinning posts. This simplicity translates into fast boot times (typically < 2 s on a modern CPU) and minimal runtime dependencies, making it an attractive choice for environments ranging from personal Raspberry Pi setups to Kubernetes clusters.
Markdown Editor
Hashtag Taxonomy
Static Page Generation
Federation APIs
Overview
WriteFreely is a lightweight, self‑hosted publishing platform designed to give developers full control over their content stack while maintaining a minimal resource footprint. At its core, the application exposes a single Go binary that serves both the editor and reader interfaces, leveraging an embedded SQLite database by default or a MySQL backend for larger deployments. The API surface is intentionally lean: content is stored as Markdown, tags are handled via hashtags, and static pages can be generated by pinning posts. This simplicity translates into fast boot times (typically < 2 s on a modern CPU) and minimal runtime dependencies, making it an attractive choice for environments ranging from personal Raspberry Pi setups to Kubernetes clusters.
Architecture
WriteFreely is written entirely in Go (golang), a compiled language that produces statically linked binaries. The web layer is built on top of the standard net/http package with a small set of community‑maintained middlewares for routing, CSRF protection, and templating. Data persistence uses SQLite as the default store, accessed via the database/sql interface and an SQLite driver. For production scenarios requiring horizontal scaling or stronger consistency guarantees, developers can swap in MySQL (or MariaDB) without code changes. The application also implements the ActivityPub protocol, exposing a public inbox and outbox that allow federation with Mastodon, Pleroma, and other fediverse actors. OAuth 2.0 is supported for third‑party authentication, enabling integration with existing identity providers.
Core Capabilities
- Markdown Editor – A single‑page editor that auto‑saves drafts to the server, providing a distraction‑free writing experience.
- Hashtag Taxonomy – Tags are parsed from post content and exposed via a RESTful API (
/api/v1/tags), allowing developers to build custom tag clouds or analytics dashboards. - Static Page Generation – By pinning a post, the server treats it as a static page; developers can expose these pages through custom routes or embed them in external sites.
- Federation APIs – The ActivityPub endpoints (
/inbox,/outbox) are fully compliant, and developers can hook into theactivitypubpackage to create custom actors or modify delivery logic. - Webhooks – A lightweight webhook system lets external services subscribe to events such as
post.created,post.updated, andcomment.added.
Deployment & Infrastructure
Deploying WriteFreely is a matter of downloading the pre‑compiled binary for your platform and placing it in a directory with its configuration file (config.yaml). The application bundles all static assets, so no separate web server is required. For containerized environments, the official Docker image (ghcr.io/writefreely/writefreely) is available and can be orchestrated with Docker Compose or Kubernetes. The image exposes a single port (default 8080) and can be run with environment variables to switch databases or enable TLS via a reverse proxy. Because the binary is statically linked, the image size stays under 200 MB, and memory usage typically remains below 100 MiB even under moderate traffic.
Integration & Extensibility
While WriteFreely offers a solid core out of the box, its extensibility shines through three primary channels:
- Plugins – The application exposes a plugin API that allows developers to inject middleware, modify request handling, or add new routes without touching the core codebase.
- ActivityPub Customization – By implementing custom serializers or intercepting outbound activities, developers can tailor federation behavior (e.g., filtering certain content types or adding custom metadata).
- External APIs – The public REST API can be consumed by third‑party services, such as static site generators, analytics tools, or custom front‑ends built with frameworks like React or Vue.
Developer Experience
The configuration is YAML‑based and self‑documenting; changing the database type, enabling HTTPS, or configuring OAuth providers requires only a few lines. The project’s documentation is comprehensive, with sections covering API usage, deployment scenarios, and federation concepts. Community support comes from an active GitHub repository (over 5 k stars), a dedicated Discord channel, and regular contributions from the open‑source community. The Go ecosystem’s tooling (go mod, vet, and lint) ensures that code quality remains high across releases.
Use Cases
- Personal Blogging – A solo developer can spin up a local instance on a laptop or Pi, write Markdown posts, and publish to the fediverse with minimal overhead.
- Corporate Knowledge Bases – Organizations can host WriteFreely behind their intranet, leveraging OAuth for single‑sign‑on and using the API to integrate with internal documentation portals.
- Federated Communities – Community managers can create a shared writing space that federates with Mastodon or Pleroma, allowing members to follow each other’s posts across platforms.
- Static Site Generation – The API can feed a static site generator, producing a fully rendered blog that is then served from a CDN for high performance.
Advantages
- Performance & Resource Efficiency – Go’s compiled binaries and minimal dependencies mean low latency and negligible RAM usage.
- Licensing & Freedom – The project is released under an MIT‑style license, allowing unrestricted modification and redistribution.
- Scalability – With support for MySQL and ActivityPub, WriteFreely can scale from a single‑user blog to thousands of concurrent writers without architectural changes.
- Simplicity – The developer experience is
Open SourceReady to get started?
Join the community and start self-hosting WriteFreely 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
nefarious
Auto‑download movies and TV shows via torrents
Reiverr
Unified TMDB discovery and streaming hub
Password Pusher
Secure, self‑deleting password sharing for teams
WeeWX
Open source weather station software for data collection and reporting
µStreamer
Fast MJPEG streaming from V4L2 devices
Wingfit
Your personal fitness wingman
