Version 0.13
Hello again! 👋 After a long absence, we’re pleased to release WriteFreely v0.13 today! This one includes a new rich editor, generic OAuth support, Web Monetization support, and a ton of small improvements. Besides that, this is one of our last releases before version 1.0!
Major Features
Classic editor (T727)
If plain text and Markdown aren't your thing, now you can get a more “classic” writing experience with the Classic editor! This features more of a What You See Is What You Get interface that doesn't require the learning curve of Markdown. However, behind the scenes, posts are still saved as Markdown, so you can always switch between the Classic and standard editor. Admins can enable this option by setting editor = classic
in the [app]
config section.
Gopher Support (T559)
Give your audience a old-school, lightweight way to read posts on your WriteFreely instance, via the Gopher protocol! Enable it with the new gopher_port
config value in the [server]
section. When it’s enabled, multi-user instances will show all Public blogs at gopher://[host]:[gopher_port]/
.
Gitea and Generic OAuth Provider Support (#293, #317, #405)
We’ve added more ways for users to authenticate with your WriteFreely instance, via Gitea or any generic OAuth 2.0 provider! Our generic OAuth provider support in particular gives you the chance to use WriteFreely alongside a range of applications that hold your users, from Mastodon to Nextcloud to Keycloak.
Web Monetization Support (T773)
Writers can now accept micropayments for their work via the proposed Web Monetization standard, and even publish exclusive content behind a paywall. Admins can enable this by setting monetization = true
in the [app]
section of their config, or changing the setting in their admin panel. This is just the start as we look to give readers more ways to financially support writers — read more about this on the Write.as blog.
ActivityPub Notes (#220)
Now, WriteFreely is more friendly to microblogs! If a post doesn’t have a double-line-break in it, it’ll be sent to the fediverse as a Note
, rather than an Article
. If you’d prefer to always send Notes, admins can set notes_only = true
in the [app]
config section.
Account deletion (T319)
It’s now easy for users and admins to quickly delete account data from WriteFreely via the web! Admins can access this option from their Admin Dashboard, and users can access it from their Account Settings page, if admins have configured Open Account Deletions (via the Dashboard or config file: open_deletion = true
under the [app]
section).
Post Signatures (T582)
This enables users to add a signature to all blog posts, and update it from a single location (the blog's Customize page).
User-Facing Changes / Fixes
- Optimize Drafts retrieval (#295)
- Support AP-style mentions of centralized social media accounts (#319)
- Show warning in editor when local draft is out of date (#41)
- Allow footer and header elements (#326)
- Set pad light / dark theme based on system settings (#196)
- Improved blog management navigation (#371)
- Fix silenced user post visibility (#374)
- Automatically resize CSS editor (T708)
- Stop private and protected blogs from federating (#403)
- Fix following from Mastodon with Authorized Fetch enabled (T820)
- Fix language metadata gets reset to English after editing a post (#280)
- Support logging out of password-protected blogs (T492)
- Always show post actions on mobile devices (#309)
- Include images as attachments in ActivityStreams data (#442)
- Fix .md file import from Safari (#334)
- Fix Custom CSS editor not working well on touchscreen devices (#452)
- Support Drafts list paging (T401, T696)
- Support title-only posts (#464)
Minor Changes
- Support number+letter hashtags
- Use a bigger font size for h2 (#217)
- Ignore “collation mix” errors in
GetCollectionRedirect()
(#318) - Make dropdown navigation menus more accessible (#355)
- Fix removal of query parameters on youtube embed links (#328)
- Truncate lede at question mark (#316)
- Fix double HTML-encoded meta tags (#340)
- Fix header spacing on pinned posts (#385)
- Fix unable to edit posts titled “Tags” (#305)
- Set SameSite=None on session cookie (#443)
- Make language highlighting matching case-insensitive (#429)
Admin-Facing Changes
- Remove “No to!” log (#311)
- Support encrypted database connections (#297)
- Fix docker-compose (#407, #139, #323)
- Fix Docker repository does not exist (#416)
- Support user deletion from web interface (T319)
- Support Unicode domain names (#457)
Developer-Facing Changes
- Add CORS header to public APIs (#327)
- Support
slug
parameter when publishing a post (T811) - Return a
url
property on Publish a Post endpoint - Support setting
description
at user registration
Performance / Backend
- Move WriteFreely repo from
writeas
org towritefreely
(#451) - Move MathJax library from submodule to single file (#176)
- Improve static file serving with Cache-Control header (#322)
- Use HTMLContent field in RSS feed (#418)
- Remove writeas/nerds/store pkg dependency (#445)
- Bump github.com/gorilla/feeds from 1.1.0 to 1.1.1
- Bump github.com/hashicorp/go-multierror from 1.0.0 to 1.1.1
- Bump github.com/microcosm-cc/bluemonday from 1.0.2 to 1.0.5
- Bump github.com/stretchr/testify from 1.6.0 to 1.7.0
- Bump gopkg.in/ini.v1 from 1.55.0 to 1.62.0
- Bump github.com/guregu/null from v3.4 to v3.5
- Bump github.com/go-sql-driver/mysql from 1.4.1 to 1.6.0
- Bump github.com/writeas/import from 0.2.0 to 0.2.1
- Bump github.com/mattn/go-sqlite3 from 1.10.0 to 1.14.6
- Bump github.com/gorilla/schema from 1.0.2 to 1.2.0
- Bump github.com/manifoldco/promptui from 0.3.2 to 0.8.0
- Bump github.com/urfave/cli/v2 from 2.1.1 to 2.3.0
- Bump github.com/fatih/color from 1.7.0 to 1.10.0
Upgrading from v0.12.0
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.
Now make sure your database is backed up, and update it with:
writefreely db migrate
Finally, generate a new encryption key needed for this release (you can ignore messages about removing existing keys):
writefreely keys generate
No additional steps are needed to upgrade from v0.12.0. Follow the instructions in each previous release if you're upgrading from an earlier version.
Developers
If you are running a custom build: we made changes to site styles and added a Javascript dependency that needs to be compiled (prose.js
). Run this to compile everything:
make ui
Contributors
Thanks to everyone who contributed to this release!
@gytisrepecka @thebaer @RJ722 @ketudb @pascoual @Dar13 @shleeable @joicemjoseph @dariusk @Obayanju @qwazix @Antolius @colin-axner @conor-f @VV-EE @mostfunkyduck @Dak425 @cjeller1592 @x4e @robjloranger
Support WriteFreely
Until now, WriteFreely has been funded entirely by Write.as, a small software company started by Matt Baer. As we grow, we want WriteFreely to develop into a project that can stand more on its own, independently from Write.as. So to help with this, we’ve started setting up separate financial infrastructure for the project.
If you’d like to help fund development and basic project infrastructure, you can now contribute directly to the project on Open Collective or GitHub. Thank you!