Write Freely

Painless, federated, self-hosted blogging platform.

Today we're excited to launch our new service, WriteFreely.host! This is a fully-managed hosting service for anyone who wants to start their own writing community, powered by our software.

Instead of going through the technical work of installing WriteFreely yourself, with this new service we set up and host your site for you — that means we take care of maintenance, backups, and constant upgrades — all for one low monthly cost. To get started, all you need is a domain name.

Once you're up and running, you can choose what your community is about. Write your own about page and privacy policy through the admin control panel; Choose how many lightweight blogs everyone in your community gets; Enable federation to let your writers share their posts to the fediverse; Turn on the Reader to showcase everyone's work in one place.

You can also try out a demo to see what a WriteFreely community looks like!

To get this service off the ground, we're taking 50% off the normal rate for our first several customers. There are only a few spots left, so if you've ever wanted to start your own blogging community, now is a great time to get started!

#WriteFreely

Today's release features two major additions, one to make installation easier, and the other to make discovery easier. Let's jump in.

Features

SQLite support (T529)

You no longer need MySQL / MariaDB to store data for your instance! Just select SQLite during the configuration process to use it instead of the MySQL driver.

Reader / local timeline (T554)

Take a break from writing to see what others on your instance have written! Admins can now turn on the Local timeline option in the Admin panel ([app] local_timeline in config.ini) to enable this for both writers on your instance and the wider public. The local timeline functions just like Read Write.as — it includes an RSS feed, and is opt-in. Writers can start publishing their work on the feed by going into their blog settings and choosing the Public visibility option.

More changes

  • Ability to create admin user from the command-line with: --create-admin username:password (T544)
  • Specify non-default configuration file to use with various commands via new -c [filename] flag
  • Host highlight.js and MathJax locally, instead of on CloudFlare (T551)

Upgrading from v0.5.x

Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

No additional steps are needed to upgrade from v0.5.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

Contributors

Thanks to everyone who contributed to this release!

@BenOvermyer @kaiyou

#WriteFreely

This week's release brings more admin control via the web UI and new ways to configure the application. It also finishes up support for syntax highlighting.

Features

  • Configure bind address with new bind configuration value (#38, #5)
  • Syntax highlighting support for all programming languages supported in highlight.js (#39)
  • Modify NodeInfo description with new site_description config value
  • Change admin values via the web admin UI (T541)

Fixes

  • Fix metadata editing in single-user mode (#40)
  • Always show stats on About page if public_stats enabled

Upgrading from v0.4.x

Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

No additional steps are needed to upgrade from v0.4.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

Contributors

Thanks for contributing!

@mrvdb

This week's release features a few minor improvements, one of which removes the need for a reverse proxy in front of your WriteFreely installation.

Features

  • Work as a standalone server, with TLS (T537)
  • Code syntax highlighting (#31)

Functional Fixes

  • Fix About page link in Admin dashboard
  • Include About/Privacy page content in page description

Upgrading from v0.3.x

Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

No additional steps are needed to upgrade from v0.3.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

Contributors

Thanks to everyone who contributed!

@mrvdb @koehn

Welcome to WriteFreely Release Monday! Yep, this is a thing now — a new major release every Monday. Let's get into this one, which brings a ton of stability improvements and new features like an admin dashboard!

Features

Admin panel

Dashboard

Now you can get a basic overview of your application on the admin dashboard. It shows you the app's resource utilization and provides helpful admin commands.

Currently, the first registered user is always an admin.

Page editing (T533)

Make your instance your own by updating your site's About and Privacy pages — now possible directly from the web. The editor accepts Markdown.

Other Features

  • Add --init-db flag to create schema in app (T530)
  • Add --reset-pass <username> option for resetting passwords (#25, T534)
  • Federate draft when published to a blog (#9, T526)
  • Support setting created date on new posts (T532)

Functional Fixes

  • Fix “view blog” links on customize page in single-user mode (#21)
  • Fix “Scheduled” badge appearing when application and database timezones are different (#23)
  • Prevent fatal errors when no ActivityPub response is returned
  • Change Accept activity ID to use blog's origin (#16)
  • Fix MathJax setting not sticking (#28)
  • Fix wrong collection data loaded in RSS feeds on multi-user instances
  • Fix feed and outbox post order in RSS feeds and ActivityPub outboxes
  • Fix em dashes and some glyphs by upgrading Lora

Others

  • Add -v flag for outputting version

Upgrading from v0.2.x

Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

Important: you'll want to keep config.ini and the files in your keys directory across all upgrades — don't delete or replace these manually.

You'll need to manually migrate your database for now. To upgrade, connect to your database and run:

CREATE TABLE IF NOT EXISTS `appcontent` (
  `id` varchar(36) NOT NULL,
  `content` mediumtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Optionally, run these queries to clean up bad data that might've shown up due to previous bugs, now fixed in this version.

-- Erroneous values inserted if you tried to enable MathJax on your blog (fixed in #28)
DELETE FROM `collectionattributes` WHERE collection_id = 0;

Development

This update contains some style changes. Run make ui to regenerate CSS after pulling in the latest changes.

Contributors

Thanks to our contributors!

@TheJF @BenOvermyer

#release

This bugfix release includes a fix for following via ActivityPub, adds a login link to single-user instances, and fixes the database schema to work more often.

Application Fixes

  • Fix Accept activity IDs (#16)
  • Add login link to single-user blogs (#15)

Installation Fixes

  • Fix more schema issues (#18)

#release

We've just released version 0.2! This includes a ton of basic fixes, especially around installation, and some bigger things like federation with Pleroma.

New Features

  • See how many fediverse followers your blogs have
  • WriteFreely now works with Pleroma

Application Fixes

  • Fix individual post ActivityStreams data fetching, so boosting works (#4)
  • Use WriteFreely avatars in social media image preview, instead of Write.as logo

Installation Fixes

  • Fix template loading on Windows (#2)
  • Fix database errors around default values (#3, #7)
  • Don't unnecessarily connect to DB after configuring multi-user instance
  • Show any errors when server start fails
  • Fix encryption key loading on Windows
  • Move encryption key generation from keys.sh to writefreely --gen-keys

Upgrading from v0.1

Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

Important: always keep config.ini and the files in your keys directory across all upgrades — don't delete or replace these manually.

Database migrations are manual for now! Fun! To upgrade, connect to your database and run:

ALTER TABLE `remoteusers` DROP `followers`;

#release

It's been several months since we launched ActivityPub support on Write.as and entered the fediverse. That was an exciting month, where we saw a ton of energy around what we're building, as well as plenty of people wishing we were open source.

As we said then, going open source for us wasn't going to be as simple as slapping a free license on our code and then distributing it. We care about doing this right from the start, and creating a self-hosted product people actually want to use. We also wanted to build a self-hosted blogging platform for everyone, including those outside the fediverse.

So we promised it'd be done by the end of the year, but it looks like New Year's is coming early this year. Today we're officially launching v0.1 of WriteFreely, our free, self-hosted version of Write.as.

WriteFreely lets you start your own community of writers, optionally with ActivityPub enabled, so you can join the larger fediverse and spread your writing on the decentralized social web. You'll be able to set up a space for your small gathering of writers, who can all create multiple blogs under one account, save drafts, and even customize their blogs with CSS. You can also use WriteFreely to host your own minimalist blog with the same distraction-free writing experience you love on Write.as.

This is just the beginning, and we're excited to finally get this out to the world. We'll be quickly moving toward version 1.0, but to get started with your own instance today, check out our guide.

#release