Skip to content

Write Freely

Writing software for a minimalist, federated blog.

Self-hostedNot yet verified
Demo online
MIT★ 5222

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.

Free

Self-host it

Run the open-source version on your own infrastructure.

Open

What is Write Freely?

WriteFreely is a browser tool.

How it works

WriteFreely is a browser tool.

How to use it

  1. 1Use the WriteFreely tool.
  2. 2Use the WriteFreely tool.
  3. 3Use the WriteFreely tool.
  4. 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
Open-source source & license

Built with https://github.com/writefreely. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.

Built with
writefreely
License
MIT
View source on GitHub

Open-source project

OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.

References

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.

Spotted something wrong with Write Freely, or want to maintain it? See how to help.