Writefreely Versions Save

A clean, Markdown-based publishing platform made for writers. Write together and build a community.

v0.15.0

2 months ago

Major Features

Newsletters / subscribe by email (https://github.com/writefreely/writefreely/pull/478)

Now readers can subscribe to receive blog posts via email! Connect an email service to enable email subscriptions and automated password resets (https://github.com/writefreely/writefreely/pull/777). Admins can enable this with the new [email] section in their configuration file -- see the documentation for instructions on setting this up.

Note: today, WriteFreely only supports Mailgun as an email service -- but our next release will support plain SMTP, so you can use any provider you want to.

View fediverse followers and email subscribers (https://github.com/writefreely/writefreely/pull/775)

For instances with federation enabled, authors can now privately see who is following them from the fediverse via the new Subscribers page. This page also shows everyone subscribed to updates via email, if enabled.

User-Facing Changes

Small Changes and Fixes

Admin-Facing Changes

Developer-Facing Changes

Dependencies

Upgrading from v0.14.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 then update it with:

writefreely db migrate

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

New Contributors

Thanks to everyone who contributed to this release of WriteFreely!

Full Changelog: https://github.com/writefreely/writefreely/compare/v0.14.0...v0.15.0

v0.14.0

7 months ago

writefreely

v0.14

Major Features

Fediverse verification (#771)

Verify that your WriteFreely blog on fediverse platforms like Mastodon! Simply go to your blog's Customize page under the Verification section, and enter your fediverse handle or URL. It will place an invisible tag on your blog, so the other platform can verify that the blog is yours. You can also insert a rel="me" link in your blog bio.

Contact Page (#772)

Admins on multi-user instances can add a Contact page, so members and visitors know how to get in touch. Add your email address, fediverse handle, or any other method you want people to know to reach you!

User-Facing Changes

  • Show post excerpt in stats list when no post title (#540)
  • Log user out when authenticated as deleted user (#483)
  • Make 404 error message friendlier (#521)
  • Remove rel=nofollow on single-user blogs (#314, #482)
  • Support filtering blog posts by language (#508, T805)
  • Direct users to Contact page on 500 server error (#684, #772)

Minor Changes

  • Remove mention of Coil on Customize page (#720, #765)

Admin-Facing Changes

  • Support custom instance-level stylesheets with static/local/custom.css file (#533)
  • Support running on Unix socket (#543)
  • Catch and output directory walking errors (#620, #621)
  • Fix segmentation fault related to DNS (#675, #691)
  • Fix insertion failure for certain OAuth providers (#516, #618)
  • Support using MySQL without a password (#568, #770)

Developer-Facing Changes

  • Fix cross-compilation (#565, #597, #703)
  • Strip debugging information (#638)
  • Correctly respond to application/ld+json requests (#564, #766)
  • Fix monthly active user stats (#769)
  • Code cleanup (#728, #729, #730)
  • WriteFreely now requires Go v1.19 or later to compile
  • Bump github.com/manifoldco/promptui from 0.8.0 to 0.9.0 (#554)
  • Bump github.com/gorilla/sessions from 1.2.0 to 1.2.1 (#562)
  • Bump github.com/fatih/color from 1.10.0 to 1.15.0 (#563, #670)
  • Bump github.com/gorilla/csrf from 1.7.0 to 1.7.1 (#560)
  • Bump docker/build-push-action from 3.0.0 to 5.0.0 (#586, #717, #759)
  • Bump docker/login-action from 2.0.0 to 3.0.0 (#587, #711, #760)
  • Bump docker/metadata-action from 4.0.1 to 4.6.0 (#589, #716)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.8.4 (#591, #709)
  • Bump github.com/mattn/go-sqlite3 from 1.14.6 to 1.14.17 (#594, #708)
  • Bump github.com/urfave/cli/v2 from 2.5.1 to 2.25.7 (#596, #723)
  • Bump github.com/go-ini/ini from 1.66.4 to 1.67.0 (#605)
  • Bump github.com/writeas/web-core from 1.4.1-0.20220118212728-0da0bcaf018e to 1.5.0 (#657, #737)
  • Bump golang.org/x/crypto from 0.0.0-20200622213623-75b288015ac9 to 0.13.0 (#672, #749, #754)
  • Bump github.com/microcosm-cc/bluemonday from 1.0.21 to 1.0.25 (#666, #705, #736)
  • Bump github.com/dustin/go-humanize from 1.0.0 to 1.0.1 (#644)
  • Bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.1 (#617, #692)
  • Bump golang.org/x/net from 0.9.0 to 0.15.0 (#721, #738, #753)
  • Bump github.com/guregu/null from 3.5.0+incompatible to 4.0.0+incompatible (#556)
  • Bump actions/checkout from 3 to 4 (#750)

Upgrading from v0.13.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.

Now make sure your database is backed up, and then update it with:

writefreely db migrate

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

New Contributors

Thanks to everyone who contributed to this WriteFreely release!

v0.13.2

1 year ago

writefreely

v0.13.2

User-Facing Changes

  • Fix Gopher collections query (#501)
  • Fix date format in anonymous posts (#503)
  • Use relative URLs for static assets (#505)
  • Fix external user ID recording for Gitea OAuth (#514)
  • Fix blog monetization updates when using SQLite (#495)
  • Ensure link URLs and image alt text don't get included in the slug (T329, #520)
  • Improve keyboard navigation

Admin-Facing Changes

  • Fix crash on empty post title

Developer-Facing Changes

  • Upgrade bluemonday from 1.0.5 to 1.0.21
  • Upgrade ini pkg to v1.66.4
  • Ignore post created date when empty on publish

Release updates

NOTE: There is a blocking bug with our upstream tool, xgo, that helps us cross-compile WriteFreely: techknowlogick/xgo#155. Because of this, we'll only release linux-amd64 builds for the foreseeable future.

Upgrading from v0.13.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.

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

Contributors

Thanks to everyone who contributed bug reports, code, and code review to this release!

@thebaer @StJudeWasHere @egon0 @gytisrepecka @lt3Dev @viasux @clausecker

v0.13.1

2 years ago

User-Facing Changes

  • Fix title rendering as list item (#470)
  • Remove additional slash in /feed/ redirect
  • Don't include image alt text in post description metadata (#306)
  • Fix SQLite-backed instances locking up (#467)
  • Fix backslashes added to list items in Classic editor (#480)

Admin-Facing Changes

  • Return error when generic OAuth provider doesn't return a user ID, and prompt admin to add map_user_id (#469)
  • Fix "Collection.hostName is empty!" log on Stats page (#468)

Upgrading from v0.13.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.

No additional steps are needed to upgrade from v0.13.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 UI components that need to be compiled. Run this to compile everything:

make ui

Contributors

Thanks to everyone who contributed bug reports, code, and code review to this release!

@stayinside @bandicootdancing @PeterCxy @DaarkMoon @poVoq @Tealk @thebaer @mkyos

v0.13.0

2 years ago

write freely

v0.13

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 to writefreely (#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!

Development

@gytisrepecka @thebaer @RJ722 @ketudb @pascoual @Dar13 @shleeable @joicemjoseph @dariusk @Obayanju @qwazix @Antolius @colin-axner @conor-f @VV-EE @mostfunkyduck @Dak425 @cjeller1592 @x4e @robjloranger

v0.13.0rc1

2 years ago

write freely

v0.13 Release Candidate 1

This is a WriteFreely v0.13.0 release candidate. It is intended to be stable, but may not be. Please open bug reports for any issues you find, and otherwise contact us via IRC (#writefreely on freenode) if you have any questions.

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. 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)

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)

Performance / Backend

  • Move WriteFreely repo from writeas org to writefreely (#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!

Development

@gytisrepecka @thebaer @RJ722 @ketudb @pascoual @Dar13 @shleeable @joicemjoseph @dariusk @Obayanju @qwazix @Antolius @colin-axner @conor-f @VV-EE @mostfunkyduck @Dak425 @cjeller1592 @x4e @robjloranger

v0.12.0

4 years ago

write freely

v0.12

Major Features

ActivityPub Mentions (T627)

Enable more interaction with your posts by mentioning users on Mastodon, Pleroma, and other ActivityPub platforms! Users on instances with federation enabled can now insert @[email protected] to mention someone. You might use this to write a long response to someone in the fediverse, or even mention your own microblogging account, so that replies to your blog post also notify you there, where you can continue the conversation.

New Admin Dashboard (T694)

We've redesigned the admin dashboard to be a little easier to navigate, and generally more user friendly. It now includes an overview of stats for your instance, dedicated pages for app settings and monitoring, and more details on what each configuration option does. We've also made it easier for admins to get to the "Invite people" page.

OAuth 2.0 Support (#225)

Now you can authenticate with your WriteFreely instance via OAuth! This is perfect for WriteFreely communities that are set up to accompany other platforms. We support three providers so far: GitLab, Slack, and Write.as.

Reader Filter Updates (#269)

Now the Reader will show the most recent 250 public posts, instead of only the last three months of public posts. This should be much more fitting for most WriteFreely instances.

Plain Text Import

Now you can import plain text files to publish them as posts on WriteFreely.

User-Facing Changes / Fixes

  • Show dates on blog posts (T669, #276)
  • Show post publish dates in local time (T670)
  • Fix HTML entities in Draft descriptions (#248)
  • Add Drafts explanation (#248)
  • Fix post deletion on Pleroma (#233)
  • Make user management + Reader pages consistent in their design (#262)
  • Fix image metadata extraction (#266)
  • Add syntax highlighting aliases: js, jsx, html (#270)
  • Lightly style tables in posts (#194)
  • Send users to Login page by default on private instances (#274)
  • Fix pagination on last page of blogs using "Novel" display format (#272)
  • Show 503 Service Unavailable page when server under high load (#284)
  • Remove extraneous @context fields to fix Friendica federation (#299)

Minor Changes

  • Require authentication for accessing editor (#245, #255)
  • Fix 500 on invite links with invalid characters (#250)
  • Tell search engines not to index invite URLs (#268)
  • Hide Reader footer link when unauthenticated on private instances (#274)

Admin-Facing Changes

  • Support Varnish use on ActivityPub endpoints (#180)
  • Fix automatic certificates (#228)
  • Automatically check for WriteFreely updates (T572) -- enable with update_checks = true in config
  • Support account deletion via command-line for non-federated instances (T319 / #202)
  • Support sign in via Write.as
  • Support sign in via Slack (T710)
  • Support sign in via GitLab (#277)
  • Refactor command-line commands (#261)

Developer-Facing Changes

  • Add /api/markdown endpoint for generating HTML from Markdown
  • Add ARM64 build (#213)
  • Support OAuth 2.0 as client application (#225)
  • Add stylesheet cache busting script and use it on official WF release (#288)

Performance / Backend

  • Improve resource use for federation (#249)
  • Fix memory leak from gorilla/session library (#133)

Upgrading from v0.3.0 or later

Download the latest release for your operating system, from the files below. Then follow these steps:

  1. Stop running your writefreely service
  2. Replace all files in your installation except the keys directory with the files from the archive
  3. Start your writefreely service again.

Now make sure your database is backed up, and migrate it with the steps below.

  1. If you're running MariaDB, run this query on your WriteFreely database (fixes #302):
ALTER DATABASE writefreely CHARACTER SET latin1 COLLATE latin1_swedish_ci;
  1. Finally, run this command to update your database schema:
writefreely db migrate

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

Developers

If you are running a custom build, note that there were style changes in this release. Run the following command to generate the latest stylesheets:

make ui

Contributors

Thanks to everyone who contributed to this release!

Development

@thebaer @robjloranger @qwazix @yalh76 @ngerakines @techknowlogick @shleeable @nkoehring @paddatrapper @cjeller1592

Documentation

@cjeller1592

Bug reports

@barbrastreisand @wakest @judges119 @laBecasse @misaka00251 @OliverViking @mrvdb @darddan @wiwie @annando

v0.12.0rc1

4 years ago

write freely

v0.12 Release Candidate 1

This is a WriteFreely v0.12.0 release candidate. It is intended to be stable, but may not be. Please open bug reports for any issues you find, and otherwise contact us via IRC (#writefreely on freenode) if you have any questions.

Major Features

ActivityPub Mentions (T627)

Enable more interaction with your posts by mentioning users on Mastodon, Pleroma, and other ActivityPub platforms! Users on instances with federation enabled can now insert @[email protected] to mention someone. You might use this to write a long response to someone in the fediverse, or even mention your own microblogging account, so that replies to your blog post also notify you there, where you can continue the conversation.

New Admin Dashboard (T694)

We've redesigned the admin dashboard to be a little easier to navigate, and generally more user friendly. It now includes an overview of stats for your instance, dedicated pages for app settings and monitoring, and more details on what each configuration option does. We've also made it easier for admins to get to the "Invite people" page.

OAuth 2.0 Support (#225)

Now you can authenticate with your WriteFreely instance via OAuth! This is perfect for WriteFreely communities that are set up to accompany other platforms. We support three providers so far: GitLab, Slack, and Write.as.

Reader Filter Updates (#269)

Now the Reader will show the most recent 250 public posts, instead of only the last three months of public posts. This should be much more fitting for most WriteFreely instances.

Plain Text Import

Now you can import plain text files to publish them as posts on WriteFreely.

User-Facing Changes / Fixes

  • Show dates on blog posts (T669, #276)
  • Show post publish dates in local time (T670)
  • Fix HTML entities in Draft descriptions (#248)
  • Add Drafts explanation (#248)
  • Fix post deletion on Pleroma (#233)
  • Make user management + Reader pages consistent in their design (#262)
  • Fix image metadata extraction (#266)
  • Add syntax highlighting aliases: js, jsx, html (#270)
  • Lightly style tables in posts (#194)
  • Send users to Login page by default on private instances (#274)
  • Fix pagination on last page of blogs using "Novel" display format (#272)
  • Show 503 Service Unavailable page when server under high load (#284)

Minor Changes

  • Require authentication for accessing editor (#245, #255)
  • Fix 500 on invite links with invalid characters (#250)
  • Tell search engines not to index invite URLs (#268)
  • Hide Reader footer link when unauthenticated on private instances (#274)

Admin-Facing Changes

  • Support Varnish use on ActivityPub endpoints (#180)
  • Fix automatic certificates (#228)
  • Automatically check for WriteFreely updates (T572) -- enable with update_checks = true in config
  • Support account deletion via command-line for non-federated instances (T319 / #202)
  • Support sign in via Write.as
  • Support sign in via Slack (T710)
  • Support sign in via GitLab (#277)
  • Refactor command-line commands (#261)

Developer-Facing Changes

  • Add /api/markdown endpoint for generating HTML from Markdown
  • Add ARM64 build (#213)
  • Support OAuth 2.0 as client application (#225)
  • Add stylesheet cache busting script and use it on official WF release (#288)

Performance / Backend

  • Improve resource use for federation (#249)
  • Fix memory leak from gorilla/session library (#133)

Upgrading from v0.11.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.

Now make sure your database is backed up, and update it with:

writefreely db migrate

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

Developers

If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

Contributors

Thanks to everyone who contributed to this release!

Development

@thebaer @robjloranger @qwazix @yalh76 @ngerakines @techknowlogick @shleeable @nkoehring @paddatrapper @cjeller1592

Documentation

@cjeller1592

Bug reports

@barbrastreisand @wakest @judges119 @laBecasse @misaka00251 @OliverViking @mrvdb @darddan

v0.11.2

4 years ago

write freely

User-Facing Changes / Fixes

  • Fix Announceing posts via ActivityPub (#212)
  • Fix id property in collection posts ActivityStreams data (#214)
  • Remove false "programmer error" log (#216)
  • Fix password-protected blog rendering (#221)
  • Fix silenced password-protected blog quirks
  • Fix wrong errors returned when looking up non-existent paths (#215)

Upgrading from v0.11.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.11.x. Follow the instructions in each previous release if you're upgrading from v0.10.0 or earlier.

Contributors

Thanks for contributing to this release!

@robjloranger @cjeller1592

v0.11.1

4 years ago

write freely

Major Features

Automatic SSL certificates from Let's Encrypt (T542)

It's now even easier to start up a WriteFreely instance with free, automatic certificates from Let's Encrypt. With the application facing the public internet (i.e. not behind a reverse proxy), you can set a few configuration values to have WriteFreely generate the certificate for you.

For new instances, choose Production, standalone > Secure (port 443), auto certificate during the interactive setup process.

For existing instances, set autocert = true and tls_cert_path = certs (see config documentation for more information).

WriteFreely Command-Line Interface

We've released our first official WriteFreely client along with this version: wf-cli! This is a simple command-line-based tool for publishing to one or many WriteFreely instances. It's perfect for tech-savvy users who don't want to leave their terminal window or anyone looking to build WriteFreely publishing into their desktop writing workflow -- and it's available for Windows, Mac, and Linux.

User-Facing Changes / Fixes

  • Prevent transliterated slugs from exceeding character limit (#137)
  • Don't consider posts unpublished when they have a title (#138)
  • Blog 404 pages are now styled like the rest of the blog (T493)
  • Fix missing hostname when publishing via API and support WriteFreely CLI (#144)
  • Fix various minor issues with single-user instances (#145)
  • Support <audio> HTML element (#147)
  • Fix future pinned posts showing in navigation (#158)
  • Fix false logged-in state on failed login
  • Fix title attribute getting stripped on <abbr> elements (#184)
  • Add helpful instructions on invite links when logged in (T690)
  • Publish to user's blog by default, instead of Drafts (T697)
  • Fix blog URLs in CSV export (#205)
  • Include Reader link in site-wide navigation while logged in
  • Make header navigation on user and non-authenticated pages consistent

Minor Changes

  • Fix go-sitemap-generator overriding GOMAXPROCs (#86)
  • Log server software and version on startup (#168)
  • Fix crash on some duplicate ActivityPub follows (#159)

Admin-Facing Changes

  • Support setting a default visibility for all blogs (T675, #148)
  • Support toning down WriteFreely promotion (T676, #149)
  • Support using an alternative editor template (T677)
  • Support customizing Reader page (T684)
  • Support resetting user password from web-based UI (T695)
  • Fix tar bomb on install (#160)

Developer-Facing Changes

  • Add make build-arm7
  • Remove dependency on github.com/gogs/gogs/pkg/tool (#182)
  • API endpoints will now honor Accept: application/json headers (not only Content-Type) (#178)

Experimental / In-Progress Work

User Silencing (T661)

Now instance admins can silence problematic users to make their writing inaccessible to the world and prevent further publishing. This strikes a balance between preventing further abuse and making reversible moderation decisions, as users will still be able to log in to their account and access their data.

This is still experimental, as it needs more extensive testing. Please report any bugs you find and give us any feedback you have on this feature!

Reader-centric instances (T681, #157)

As part of our new Write.as for Teams service, we're experimenting with an alternative configuration for admins that want their site to be more focused on the collective work of its writers, rather than on individuals. It's meant for businesses, organizations, and institutions that want to create more of a shared blog than provide individual blog hosting. It sets the Reader view as the home page, uses blog templates with global navigation, and has hashtags search across all public blogs.

This functionality is not at all finalized, and subject to change drastically without notice. We don't recommend enabling this in your configuration unless you're merely curious or want to provide feedback (which we highly encourage!).

Upgrading from v0.10.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 --migrate.

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

Developers

If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

About v0.11.0...

Our v0.11.0 release featured a new regression that broke single-user instances, and taught us about the value release candidates -- something we'll start doing, going forward. There's no extra work needed to upgrade from v0.11.0 if you've already upgraded from v0.10 -- only your enduring support as we learn how to build good software goodly.

Contributors

Thanks for contributing to this release!

@robjloranger @OddBloke