Write Freely
Writing software for a minimalist, federated blog.
Open the official app on writefreely.org
This tool is hosted by its maintainers. Click below to open writefreely.org in a new tab — it's their official demo.
Browse text & tools tools →What's next with Write Freely?
Choose how you want to get started.
Use it free
Open the official tool or demo — no account needed.
Self-host it
Run the open-source version on your own infrastructure.
What is Write Freely?
WriteFreely is a browser tool.
How it works
WriteFreely is a browser tool.
How to use it
- 1Use the WriteFreely tool.
- 2Use the WriteFreely tool.
- 3Use the WriteFreely tool.
- 4Use the WriteFreely tool.
What it can do
- Blogging
Use cases
Assumptions and limitations
Assumptions
- source: https://github.com/writefreely
- license: AGPL-3.0 — free to use
- privacy: Opens an external demo
Limitations
- The software lacks a native drag-and-drop page builder or widget layout system. For complex magazine-style homepages with custom grids, use WordPress or Ghost.
- File uploads depend on external storage configuration or local disk space. For heavy media hosting, configure an S3-compatible object storage bucket in your config file.
- The minimalist editor does not support rich-text WYSIWYG formatting by default. For complex styling, authors must write raw Markdown or HTML tags.
- Federation relies on stable DNS and SSL configurations. For local development environments without public IPs, ActivityPub features will fail to communicate with remote servers.
- User management features are intentionally basic, lacking granular role-based access control (RBAC). For complex multi-tier editorial workflows, utilize a dedicated publishing CRM.
Understanding the result
Writing software for a minimalist, federated blog.
Tool details
- Clearly flagged when a network request is needed.
- No account, no sign-up, and no tracking of your content.
- Powered by writefreely (MIT).
- Built with
- writefreely (https://github.com/writefreely)
- License
- MIT
- Runs locally
- No — requires a network request
- Verification
- Not yet verified
- Input
- Text
- Output
- Output
Built with https://github.com/writefreely. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.
- Built with
- writefreely
- License
- MIT
Open-source project
OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.
References
- /writefreely — GitHub Repository
Upstream project · GitHub
- AGPL-3.0 License
Upstream project
Frequently asked
How do I connect my WriteFreely blog to the fediverse so Mastodon users can follow me?
To connect your blog to the fediverse, ensure your WriteFreely instance is served over a secure HTTPS domain with a properly configured SSL certificate. Navigate to your blog settings in the admin dashboard and enable federation options, which automatically generates an ActivityPub actor profile for your publication. Other users on Mastodon or compatible platforms can then search for your full handle, such as `@username@yourdomain.com`, and click follow to receive your posts directly in their home timelines. When you publish a new article, WriteFreely automatically broadcasts the content out to your subscribers via standardized ActivityPub inboxes.
What database engines are supported under the hood by WriteFreely?
WriteFreely natively supports SQLite, MySQL, and PostgreSQL as underlying database backends for storing user data, posts, and configuration states. The application abstracts database interactions using Go-based database drivers, allowing administrators to choose their storage engine during the initial setup wizard. For single-user blogs or low-traffic instances, SQLite provides zero-configuration file-based storage that is remarkably easy to back up. For high-traffic multi-user communities, migrating to MySQL or PostgreSQL ensures optimal query performance and concurrent transaction handling.
How can I customize the visual theme and CSS stylesheets of my WriteFreely blog?
You can customize the appearance of your blog by navigating to your blog settings and inserting custom CSS directly into the provided style injection field. This allows you to override default font families, adjust background colors, and modify line heights without touching the core Go source code or recompiling the application binary. For site-wide structural changes, you can mount a custom template directory and modify the underlying HTML templates before building your server deployment.
How is WriteFreely different from traditional blogging platforms like WordPress?
WriteFreely differs fundamentally from WordPress by rejecting dynamic plugin ecosystems, heavy PHP dependencies, and complex administrative dashboards in favor of raw simplicity and speed. While WordPress requires extensive hardening, database optimization, and plugin management to stay secure, WriteFreely compiles into a single static binary with an extremely small memory footprint. Furthermore, WriteFreely includes native ActivityPub federation out of the box, whereas WordPress requires third-party plugins to achieve basic fediverse connectivity.
What should I do if my ActivityPub federation stops working and remote users cannot see my posts?
If federation fails, first verify that your SSL certificate is valid and that your server's system clock is synchronized using NTP, as time drift disrupts cryptographic signature verification between servers. Next, check your reverse proxy logs in Nginx or Caddy to ensure requests to the `/.well-known/webfinger` and `/.well-known/host-meta` endpoints are returning successful HTTP 200 responses. Finally, confirm that your firewall is not blocking outbound HTTP POST requests on port 443, which are required to deliver ActivityPub payloads to remote follower inboxes.