Micro Matt

WriteFreely

Yesterday I made some progress on general #WriteFreely maintenance. Reviewed some pull requests, added some quick fixes, and moved the repo on GitHub, as announced. I also figured out what was causing the “availability issue” — just some too-tight restrictions we recently placed on the API.

Just updated our demo WriteFreely instance to the latest on develop (thanks @liaizon@wake.st for the reminder!). If you want to try things out, you can create an account with this invite link, valid for the next three days: https://pencil.writefree.ly/invite/VTDTcP #WriteFreely

Doing some #WriteFreely maintenance today, merging long-standing pull requests and fixing some bugs. I'd like to wrap up a v0.13 release this month, ideally. Yesterday I put things in place to support “allowed” apps on the API, and today I need to look into some apparently availability-related publishing issues.

Soon we’ll start including images in the ActivityStreams data that #WriteFreely sends out to the #fediverse, making it so they show up nicely in your favorite decentralized social media stream. This should make WF more useful particularly for photo bloggers.

Here’s what it looks like on the receiving end, in my Mastodon feed:

This should be deployed on Write.as soon, and will be in the next version of WriteFreely (your code review, testing, and feedback is welcome!).

Finished the manual moderation tools I mentioned yesterday, and I'm pretty happy with the result.

I tested it out on a queue of about 160 posts from the last 24 hours, and it went smoothly, once I switched from my original design (quick form submissions and a JOIN with the main posts table — bad idea, it's too big) to async requests and denormalized data.

I'm thinking about what this would look like in #WriteFreely, and I'm not yet sure if exposing all of our spam detection logic will make it easier for spammers to work around our roadblocks. I don't know if they put that much effort into it. But I know instance admins would be very welcoming to a feature like this. So I'm thinking of bringing it over soon.

I just fixed a long-standing bug that prevented people from following blogs from a Mastodon instance with Authorized Fetch enabled. The fix is deployed on Write.as, and will be merged into #WriteFreely soon. Write.as also sends out Notes instead of Articles in some cases. You should see that for this post, if you're following @micromatt@micro.baer.works in the fediverse!

Playing around with a tool for generating nice-looking images from text this morning. Started off using an HTML5 Canvas, and quickly hit resistance. Got a complete Go-based prototype working in about 2.5 hours, thanks to this tutorial.

This would replace my Bash / ImageMagick-based script I previously used to generate images like those on our Instagram page. I'd like to convert this into a web-based tool and make it available for anyone to create this kind of content — perhaps even automatically from a Write.as / #WriteFreely post.

For now, I'm off to the woods to go camping. Will get back to work tomorrow afternoon.

This blog is now set up on micro.baer.works, and includes a custom theme copied directly from my baer works site.

Custom domain setup was really, really smooth — set a CNAME record pointing to me.writeas.com and then changed the settings in Write.as; first site load (generating the SSL certificate) took about 10 seconds. New system powered by Caddy is really nice.

Custom theme took about 10 minutes translating everything, adjusting via trial and error. One time, the Customize page showed me an old (cached) version of my Custom CSS, requiring a refresh. Otherwise the process made a strong case for a “V2” default style on Write.as / #WriteFreely. Among other painful CSS rules and !importants, I repeated this CSS fix from matt.writefreely.dev to make the home page font size consistent:

body#collection #wrapper {
    font-size: 1.2em;
}

Also enabled fediverse support, but a critical bug still exists. I hope to investigate and fix once other high-priority issues are off my list.