An idea occurred to me last month. All along, I’ve been pursuing this idea of “separate but connected apps.” But as I’ve started implementing them, and later with the release of WriteFreely, I’ve had to change my view on what that “connected” part meant. It turns out that they need to be not just connected, but highly integrated in some important ways, if I want to give people the best experience.
An easy example is the photo upload feature in our Classic editor. Previously you had to switch apps to upload a photo, then switch back to insert it into your blog post. Now it’s a part of the Write.as interface, and seamlessly powered by Snap.as behind the scenes. You don’t even have to know Snap.as exists to use it — but if you do, you can do things like manage your photos through this separate tool. Maybe that’s where the separation actually makes sense.
So this idea I had was: some sort of unifying interface. Open it and decide whether you’re writing (Write.as) or uploading photos (Snap.as) or reading (Read Write.as) or checking your inbox (Remark.as). Each action points you to the correct product, and each product contains elements of the others, where it makes sense. For anyone fully utilizing our ecosystem, this could fit them best, while not disturbing those who just need one tool or the other. Importantly, the model could also fit WriteFreely, so it’s no longer just a blogging platform, but actually a multi-application tool (kind of like Phabricator).
#suite #studio #WriteFreely #snapas #remarkas
This morning I chatted with Matthew Guay on Racket (a cool short-form audio service) about WriteFreely and what kinds of things I’m hoping to solve with it. You can listen to the 9-minute talk here:
“The WriteFreely story.”
#WriteFreely #audio #origins
Just pushed some final changes for #WriteFreely v0.13, specifically the exclusive content feature powered by Web Monetization. I wasn’t going to include this in WF yet, since it previously required setting up an additional receipt verifier server. But now that there’s a publicly available receipt verifier, WF admins and users can enable this feature without any extra setup. Once I do a little more testing, I’ll merge that and then release v0.13!
As I wrote in a recent fediverse thread, I’m working more and more toward splitting WriteFreely (the open source project) from Write.as (the hosted service), so the software project can live more independently.
Among other aspects, WriteFreely funding has been closely intertwined with Write.as — our company provides the funds for all project infrastructure, events, developers we hire, etc. Indeed, we’ve actually recommended that people support the project by paying for a Write.as Pro subscription. This funds the work of course, but it also comes with an entire hosted service attached, at whatever price we set. So I wanted to improve that.
Now, we’ve set up separate funding infrastructure that will be solely dedicated to #WriteFreely, so people can support our work more flexibly, without worrying about getting more than they need (in our case, a hosted service). Donations go to a dedicated place, where they’ll only be used for funding the costs of developing, maintaining, and growing WriteFreely.
If you’d like to support the project, now you can donate on Open Collective or GitHub Sponsors. You’ll also notice a Sponsor button at the top of our GitHub repo, in case you want to donate in the future!
Spending time designing an entirely new UI for Write.as / #WriteFreely today, tailored toward power users. After breaking down jobs-to-be-done and building up an interface from scratch, I’ve arrived at… essentially, WordPress or Ghost or any other CMS. So, how do I plan to make this different?
First: two distinct interfaces, “basic” and “advanced.” This CMS-ish UI would be the “advanced” one, activated only when you indicate you need it, such as when starting a publication rather than a personal blog. By default, users would continue getting a minimalist interface that is centered around writing and distribution, rather than advanced content creation and management. My idea here is that we hopefully don’t lose the plot, and Write.as remains useful as a personal writing / blogging platform. But if I’m rethinking things, I’ll probably want to revamp the “basic” UI users will see by default…
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 @firstname.lastname@example.org 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.