We've been running a Mastodon instance for a while and keeping up with the fediverse, so over the summer as it got much easier to implement, we added support for ActivityPub (the protocol behind Mastodon, PixelFed, Funkwhale, etc.) The fediverse has a strong FOSS culture, so after releasing AP support, I got to work on opening up the source for Write.as, and this is that final result.
Write.as has existed for 4 years, so the application code is very stable. But right now I'm getting the code to a place that works great in any configuration, installs easily, etc.
All that’s needed next is feed aggregators as a subscription service, then content creators won’t have to worry about bandwidth costs.
And what are you missing on the current aggregator features? do you have in mind anything more then the normal action of following other users?
[1] https://www.w3.org/TR/activitypub/#shared-inbox-delivery
Will PRs for WriteFreely generally make it into Write.as?
Really glad you're liking it though :)
There are certain features that I've been looking for: mathjax/latex, data visualization (though, this could be using pre-generated images), jupyter notebook compatibility, image facilities...
I know that goes beyond the slick simplicity you've got here, but for the work I do, I want to be able to speak in more than one way.
Is there an opportunity for contributing these features?
Seriously impressive work by the way, and I'm really happy to see such a well-developed project use Go+ActivityPub.
It's kind of like a single-owner LLC. The structure limits the liability by detaching responsibility from the owner and attaching it to the corporation, even though the corporation is in reality just the one person. It's a very abstract concept that just implies a product can be separate from the individual who created it.
As for the code, yep I built everything myself (and wrote about it here [0]). But I've also had the help of people translating the app, giving feedback, and making suggestions along the way. Listening to people and filtering ideas through my own vision has really made the product what it is today.
Thanks, though! I'm just excited to keep pushing the AP ecosystem forward and making the platforms on it more usable.
It's a simple rating by the posting user (e.g. 7 out of 10, you could even just post it with the text like so: [7/10] But that's a little confusing.)
The one other question: If I had this rating, could I sort all posts from the last year by rating? Or is the efficient look-up of posts tied to time and it's hard to scan for ratings through a year worth of posts?
OT, but how did "Mastodon" turn out to be the best name anybody could come up with?
I mean, yes, in general, MySQL has a higher performance than let's say SQLite, but for most users, a properly handled SQLite file should deliver enough performance and the setup would be a lot easier and the overhead for small blogs would be much less.
But hey, it is still a young project and the general concept is looking great :-)
I just looked through the other repositories and found the vim script [1] which kinda fits my personal workflow :-D
I really like what you are building.
Thank you.
It's a shame it's MySQL (I'm in the Postgres camp these days) but MariaDB isn't awful and for such a tiny project it doesn't matter.
Instead, multiple servers run by different parties share data with each other. End users can use the system without running their own server.
(from a non-native English speaker)
A non-federated system would be a “walled garden” like Facebook or Twitter.
I have heard it used to mean there is no one central server but a lot of people put their servers together. I don't understand it in this blogging context because you can always put up your own blog on your server.
How is running your blog or blogging platform on your own server different from other blogs or platforms?
It directly speaks to Mastodon and other Fediverse software.
So I am supposed to either sign up for $10 per month or trust somebody from the internet and run their executable on my machine?
Is there anybody here on HN that sees this as viable ways to get into blogging?
We totally need more and better ways to communicate online. But I just cannot see how this has any chance to take off.
They are generous enough to say that if you don't want to pay them money or have a different idea of what a blog should be, then take their software and make it into whatever you want it to be after inspecting their code.
Don't like that either? You can always come to HN and impugn their motives. Never let a good deed go unpunished.
If you want to "start blogging", you probably don't want to get a full instance, but more a blog on theirs: https://write.as/pricing
https://writefreely.org/hosting
Now I see that the prices you mention are linked on the bottom of that page.
It’s open source. You can read the source code and compile it yourself.
Does anybody know if there's something similar written in node or python? I'd love to build a similar project, but I'm confused by ActivityPub, and having some source code I can understand as an example would be really helpful.
No seriously, spend an evening on doing the tour [1] and you won't regret it (all you need is a browser). Actually, the syntax is kinda clean and easy to read. Python might look cleaner at first glance, but it has a lot more tricks you need to learn to understand someone else's code.
Writing Go on the other side is more complicated as you have to learn how to design interfaces properly and there are a lot of common mistakes everybody does in the beginning.
Some suggestions for you:
- You might want to include a direct link to your sample editing experience from the page linked to above. I found it on your Github.
- I think it's really important to support "import image from clipboard" - much like what Twitter does, for example. This is huge for usability, especially for folks who don't want to / don't understand how to embed images into blog posts.
Otherwise let me know if I can help with anything as you get set up.

Here's a guide: https://guides.write.as/writing/#adding-images-to-postsEDIT: just tried, does not work without KaTex being loaded
- I don't want to host complicated platforms, all I need is a statically generated blog. ActivityPub could be the way to let people comment on my posts without forfeiting the staticness. Is there any static blog system that integrates with ActivityPub?
- Are there any native desktop clients supporting ActivityPub (micro)blogging? I've set up a Mastodon account, and the only way I interact with it is posting via a command-line tool. It's write-only for me because I can't be hassled to use the browser, and it would be nice to change that.
https://whalebird.org/en/desktop/contents
> - I don't want to host complicated platforms, all I need is a statically generated blog. ActivityPub could be the way to let people comment on my posts without forfeiting the staticness. Is there any static blog system that integrates with ActivityPub?
I'm 90% sure this doesn't exist right now in a usable form, closest is just something to ping Mastodon when you run your upload.
If you link a comment system in the way you suggest, someone would need to host it for you a la Disqus which is where you'd likely come full circle to "hosted blog platform".
https://fed.brid.gy/ and https://webmention.io/ can be duct taped together to provide roughly this. I use webmention.io and brid.gy on my blog with Twitter and (until Cambridge Analytica) Facebook comments, but haven't got around to using the federated aspects of bridgy yet.
This feels like it could do the job. I'll look at it a little closer and see if it has good answers to my remaining questions.
WordPress went away because I got tired of all the little fixes and tweaks I had to make to get it to be "just right." Even then, the way the code is structured leaves a bad taste in my mouth.
Ghost went away because I just don't like Node.js, and because some of the promised features still haven't materialized.
That page was a bit hard to find.
How (well) does this project solve it?
So for the WriteFreely project, I'm also building a federated reader app [1] that'll connect to your blog(s), interoperate with other ActivityPub platforms, and be a similar destination for people looking to read, rather than write. You could imagine people hosting the two platforms together to create mini-Mediums across the web, which also communicate with each other.
Otherwise, as things are today, enabling people to follow your blog from the fediverse means they can read your posts right in their social media streams and share them with their followers by clicking one button.
[1] https://read.as
I'm going to follow a similar path for Snap.as and the rest: getting the product right as a hosted platform (only worrying about a single configuration, not doing additional project management, moving faster, etc.), and then go open source when it's essentially "finished," like Write.as is.
Especially while the company is still working toward sustainability, I think this is the best way to keep our focus on building a great product, ensure we continue growing, and build for our primary users (non-techy folks).
If you want to try out everything on Pro, though, let me know your username [0] and I'll get you on a trial.
More generally, linking to a feature list might be useful. I can read the source, but not everyone can.
The indie web approach to blogging (h-feed, webmentions, etc.) seems so much better than ActivityPub because it’s static content, web friendly, control of user identity, etc.
You can also configure the server to not federate your posts if you prefer.
So in the future when Plume (a W3C sponsored ActivityPub blogging platform) eventually launches, there's no reason for WriteFreely and/or Plume readers to really worry about which platform a given author uses!
(AGPL still scares me, but for a anything that doesn't need API access it should be OK I guess?)
Definitely giving this a go.