Thinking again about Public Bio, a Linktree-ish site builder I started working on in mid-2018. When I left it, it supported a single user and could generate a static site. I had started making progress toward multi-user support, but didn’t quite finish.
Since then, we released WriteFreely (a much larger open source project) and worked out the details of shared / standalone add-on apps for Write.as, like Submit.as. So as I’ve played around with Public Bio again, I’ve started incorporating everything I learned there. Now I’m building it with a common interface that will enable you to run it either as a standalone multi-user app, or as an add-on to a WriteFreely instance, where your users might already live.
This is exactly how Submit.as, Snap.as, and our other apps are built — as standalone Go libraries whose data can live alongside our core WriteFreely data. This way, we can turn each one on or off independently from the others, and serve them wherever we want. You can start up a single application server on its own, or incorporate it into a larger application.
This furthers my long-standing idea of “independent, but connect apps,” but will also mean that anyone else can launch their own suite of blogging, and linking, and other services, depending on what they want to offer their community.
Came across searchmysite.net (made by @firstname.lastname@example.org) the other day, and I’ve been thinking about launching an instance for Write.as. Basically, it would be your standard “search engine,” but only include results from “Public” blogs hosted on Write.as. Then as a user, you’d know you’re always getting some kind of personal writing / non-clickbaity results when you search there. It wouldn’t replace Google, but it might be the first place you go when you want to read something new and interesting.
It could even become the official search engine for Read Write.as — you’d search for topics you want to read about, essentially. And if it had an API, we could leverage it for a Write.as search feature (since it’s already indexing everything), to let people search their own blogs.
As I recently mentioned on the forum, we’re currently dealing with a pretty big influx of SEO spammers. That is, we’re dealing with a ton of automated activity from a small number of human actors.
Of course, countless web services have been through this. You might want to build a signup-free app so people can use and try it quickly — but if it can be used to create content on the internet, it will be abused. You might want to offer user accounts without email registration so people can preserve their privacy — but if that account grants more abilities to create content on the web, it’ll be abused eventually.
I find it amusing that we’ve slowly ended up just doing what many other services do, over our six years. But that doesn’t mean I think we should always pre-optimize for abuse, and avoid building software as if we were in an ideal world, devoid of spammers.
Our platform has attracted its own kind of spam, and I’ve gotten to know it well. So over time, we’ve been able to carve out and mitigate it, while still maintaining those user-friendly and privacy-preserving features I always wanted. Sometimes we get a little heavy-handed (such as with IP bans), just because it’s expedient at the time. But no matter what, moderation actions are easy to undo, and we keep a human around to quickly fix any mistakes — overall, I think, a decent balance.
I wrote my last post on @email@example.com entirely in the new Classic editor, and I’m very much a fan. The writing wasn’t inhibited any more than it is with the plain text editor, but I did find myself casually emphasizing things much more, since it’s just a Ctrl+I away. I was also consistently happy to not have to type out syntax for a Markdown link.
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!).
I’m really liking that WriteFreely now sends out
Notes to the fediverse for posts with no double-linebreaks in them. It works great for more “microbloggy” posts, like the ones you find here and on the @firstname.lastname@example.org blog. And it shows up nicely in Mastodon:
Yesterday I was thinking a bit about Web Monetization, and how it’s a little less ideal for written content than, say, video content. Whereas someone might skim or skip through an article, cutting their time on the page short and thus WM revenue, it’s much easier to passively watch a video.
Later in the afternoon, the thought occurred to me again, and of course it’d make sense to support WM on our own visual platform, Snap.as. So now (well, launching soon), for any blogs with a monetization pointer on them, their equivalent Snap.as profile will also include that monetization pointer.
Just sent out some updates to the new Classic editor (which I’m using to compose this post). It includes:
- Image width fix
- Support for horizontal rules and blockquotes
- Parsing fixes for Markdown images
- Layout fix when editing posts
I’ll bring those updates over to WriteFreely next.
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.
Working on some moderation tools today. As I've written about before, we see a ton of spammy SEO / link-building content published every day, and have had to put some automated filters in place to keep it at bay.
Besides these loose rules that take automated action on users and posts, we also have a manual side, where a second tier of suspicious-looking posts are emailed to us to review and optionally take action on. But these reports come in through individual emails and make moderation very, very tedious.
So to speed things up, I'd like to add a post moderation queue on the admin dashboard, to make it easier to watch for widespread spammy behavior and quickly stop it. Then, as I know WriteFreely instances see plenty of spammers too, I'll port it over there once it works well.