Skip to content

Making applications is surprisingly easy (if you build on atproto)

Or: How I learned to not care and do it myself

Amelia
Jun 15, 2026 · 4 min read

've stated multiple times that I absolutely loathe modern social media, and how I am sickened by how easy it is to accidentally call a hivemind and eat you alive.

But I wondered: "how hard it would be to just create my own little 'social media' application where only I can talk, and people can just watch and share what I say"?

Basically, think Tumblr... remove all of Tumblr... and just leave the "blogging" part.

...

I reinvented the blog, didn't I....

Microblogging sucks

The 300-something character limit of most microblogging sites is very limiting, which could be considered as a good design decision... but you also have to take into account that another thing about microblogging is that other people can directly interact with your notes.

So it's less of a space for one to throw out thoughts into the atmosphere and more like having a conversation but it's a competition of who can communicate what they are thinking about in 300 words or less. And that decision can hinder other people's self-expression, because some thoughts might exceed 300 characters, and some responses also might exceed 300 characters, and not everyone is good at summarising or compacting their thoughts, it ends up becoming one big hodgepodge of half-written ideas, incomplete responses, and the rare "good post".

It also turns out that this format is really good at spreading misinformation? Oh, the joys of spreading misinformation!

Another thing that doesn't really help the argument of microblogging are the (limited) interactions that you can make in a post.

You have the like, and the repost (or reblog, or boost). One signals that they like the note, and the other signals that they want others in their follower circle to see your content.

Again, in a vacuum, this seems like a good idea. But we don't live in a vaccum, and not pressing like in a post might mean that you don't like my content, or that you didn't really read what I had to say, or that you just forgot to press like... which one is it??

Reposting something works because its meaningful, it's something that has no other meaning than "i like this and i want other people to see it as well".

...can someone explain me the like again?

So what did I do about it?

Bought a domain, made an app, put it on my domain and began rawdogging records on my PDS.

You can see it over on log.bunniesin.space!

The way it works is very simple to both use and explain:

You log in to your Bluesky account (sorry, ✨atmosphere account✨), you click post, you write your post and press the button with the funny text.

It's as simple as that.

And it all fits inside three sloppily written, half baked, vanilla JavaScript and a shoddy HTML file. Just like god intended.

(for the record I do not actually believe god exists, nor I care, because I have more urgent things to be thinking about)

I am rewriting it to be a SvelteKit SPA, but that will take a good while as I am struggling to find a good enough time slot on my calendar to properly work on it. But for now, you all get to weep and sob for the coding crimes I incantated over the course of a day.

Was it easy?

Surprisingly so!

Even more so because I did not have to buy a server, or have to deal with databases. Because there isn't as good as a database than the one you use to post your Bluesky bangers— Your PDS!

ATProto is very well documented and really approachable if you are willing to just... read a little bit.

I originally estimated that it would take about a week to make an app like this, which is why I didn't really do it right away. But having read a few of the documentation on OAuth, lexicons, and shamelessly copy-pasting the Vanilla JS OAuth example from the cookbook, I could just do it! And I didn't have to think about much at all!

Another really good thing about ATProto is that I get features for free. How so?

I can crosspost to Bluesky by just writing a app.bsky.feed.post record, and I could also integrate it with standard.site if I really wanted to. And all that just from using one protocol and a set of standardised building blocks.

The folks that keep complaining about Bluesky's decisions literally have a really fucking good escape hatch, if anything goes to shit. The only thing is that they must build the escape hatch themselves, for their own needs. Or someone else can build it for them, and depend on them for as long as they are willing to.

And I just built one.

For myself.

With the equivalent of a box of scraps.


Cover art by Robert Tudor on Unsplash

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions