Matt's Dev Log

A recent idea I had: what if WF federated Notes instead of Articles in certain situations? I just tweaked this instance so that if there's no newline in a post, it'll come out as a Note. Otherwise it'll be an Article, like normal. Thoughts? Reply to

This should be fixed now:

And just testing Socialhome:

I created an account and searched for (this blog).

SocialHome successfully pulled up the account and I was able to follow it. I made a test post that went out to all followers successfully and seems to have been successfully received on (according to the 202 Accepted in the response, shown below).

Here are the logs on my end from the post going out to

2019/11/27 13:01:19 POST
2019/11/27 13:01:19 POST /receive/public/ HTTP/1.1
User-Agent: Go (WriteFreely/0.11.1-13-gbbb7b28; +
Content-Length: 1348
Content-Type: application/activity+json
Date: Wed, 27 Nov 2019 13:01:19 GMT
Digest: SHA-256=OdKi+5fNxiOZMV/xl8u3o+wQHPenx/VoL/4BQYMiu/Y=
Signature: keyId="",algorithm="rsa-sha256",headers="(request-target) date host digest",signature="yL+tw87IQF9FaPW05Smq1/4+rPg0qAcVD3N124PXZ7ubG1NOVdU1y2og0HbQp4LYEIutzE5vmMUCtNcg62ETFOrjAGW3fzwmpld+lspnhnq/YOXfXbMf7E9NXfLlgamsSx4Rtimt1tAwAMD8HzO5kiHW1O5MNOxRpsDhXCaoHkB/gnJW4T3SfMISgEfREN3/Ix1CtNkzxHQflV/9aKZKN0YvR33ruvvk9UKtJwDY2lDvfcQqPlKOAo+7gu8KwVz8lNjfIyXmjc/23A4QZVTFrey9Ru8vQC7UFuzdbIX+8mcgQ9ERrJ+EfEr3R0DiG6NGgUOtGsPUwYitdmRHOtvycg=="
Accept-Encoding: gzip
[1B blob data]
{"@context":["",{}],"type":"Create","id":"","actor":"","published":"2019-11-27T13:01:18Z","to":[""],"cc":[""],"object":{"type":"Article","id":"","published":"2019-11-27T13:01:18Z","inReplyTo":null,"url":"","attributedTo":"","to":[""],"cc":[""],"name":"Testing SocialHome","content":"\u003cp\u003eThis is just a \u003ca href=\"\" class=\"hashtag\" rel=\"nofollow\"\u003e\u003cspan\u003e#\u003c/span\u003e\u003cspan class=\"p-category\"\u003etest\u003c/span\u003e\u003c/a\u003e post.\u003c/p\u003e\n","contentMap":{"en":"\u003cp\u003eThis is just a \u003ca href=\"\" class=\"hashtag\" rel=\"nofollow\"\u003e\u003cspan\u003e#\u003c/span\u003e\u003cspan class=\"p-category\"\u003etest\u003c/span\u003e\u003c/a\u003e post.\u003c/p\u003e\n"},"tag":[{"type":"Hashtag","href":"","name":"#test"}]}}
2019/11/27 13:01:19 Resp status : 202 Accepted
2019/11/27 13:01:19 Resp body   :

This is just a #test post.

Okay real last one — this time, WF mentions:

edit: crash!

This broke before on AP implementations without a shared inbox; let's see if it works now:

edit: no crash!


Let's see if I ( get this.


This is a test post to verify federation fixes from WriteFreely pull request #214 and #212.

After several months of work, we released #WriteFreely v0.11 today / last night. This included one last bugfix I found while testing, #205 / Fix URLs in CSV exports.

The team caught some issues with templates with during our review process before merging, but then introduced new bugs with the attempted fix that weren't caught during further review. The new bug only affected instances configured for single users (not multiple users), but if a blog had any pinned posts, all blog rendering would fail and display our silly “500” error text instead of the author's writing. In other words, this wasn't an edge case, but the software catastrophically failing for a decent subset of users.

Admittedly, this is a configuration we don't currently test super-thoroughly — but nonetheless it got merged with the rest of the intended fix.

I quietly released v0.11 around 3am Japan Standard Time, and within two hours a user upgraded their instance and encountered our newly introduced bug, filing an issue for it (#207).

The bug was easily fixed when I woke up (#209), but this incident — a large release after several months, completely botched for a subset of users — made it clear we need to change how we do things in the future.

Going forward, we'll put out a Release Candidate or two before all major or minor releases. The goal will be to get more eyes on the code we're about to send out, so that we might catch silly errors like this before putting our stamp of approval on a new release.

In the meantime, skip v0.11 and enjoy WriteFreely v0.11.1! This time, you won't regret the upgrade!