Reintroducing Smolblog
I recently made a ~20 min. video essay about Smolblog. The video is embedded here; the transcript follows.
Hi, neighbors; I’m Evan. For over five years now, I’ve been working on a project called Smolblog. It’s not ready to use, but it is far enough along that I need to start talking about it. So, if you’re interested, I’m going to talk about why Smolblog exists, what I’m hoping to accomplish with it, and, finally, how I’m building it. Let’s get started!
So, I want to start off with one of the most important questions any project can ask. Really, a question every project should be asking not just at the beginning, but at every point along the way: why. Why are we doing this? Why are we doing this now? Why are we doing this and not something else? What is the problem we’re trying to solve? Is it a problem worth solving?
I won’t name specific names, but I’m sure we can all think of some widget or tech where there never seems to be a good answer for “why?”. At best, they’re solutions in search of a problem. I don’t have money to waste on that; I certainly don’t have time to waste on that. So why Smolblog?
In a word: Enshittification; or, in more polite terms, “platform decay.” It’s a term coined by Cory Doctorow to describe the arc of internet platforms and venture-backed startups. To explain it is a whole essay in and of itself, but to sum it up, it goes a little something like this:
In a capitalistic system, you have producers who make products and consumers who use them. For example, a musician’s product is music, and the consumers are the fans that listen to them. And in the middle of this relationship is a platform, something to enable the relationship. It could be a coffee shop that hosts an open mic night, the social media site that lets the two interact, or the example that we’ll use: a music app. This app comes out and tells musicians they can upload their music and get paid for it, and it tells fans they can listen to their favorite artists for free. Everyone wins, right?
Well, almost. See, the platform is operating at a loss; they’re losing money every time someone listens to a song because they have to pay the operational costs to get the song to the fan, and they have to pay the musicians for the rights to the song. The only reason the company is still running is because they have investors willing to pay this massive upfront cost in order to get everyone using the platform. Once everyone’s locked in, the decay starts as the platform now controls both supply and demand.
It might start by the platform paying less to the musicians. Then maybe they introduce a “premium tier” to fans–it’s no longer free. They might make a “premium” service that gets musicians' music in front of more people, which means advertisements for fans. As the cycle goes on, at every step, the platform pays less to producers, gets worse for consumers, and pockets more money for itself. That’s enshittification in a nutshell.
And this is happening to social media. This has been happening to social media. Think of how many more advertisements are in your feeds. How hard it can be to actually see the things you want to see versus what the site wants you to see. How we hear so often that they’re making things better and then they… don’t.
Imaginary Anon on Tumblr put it well when they said:
will people please stop walking into my house (websites that i use often) and moving all my furniture (giving them new layouts that i hate).
And while they were talking about a reference website, I’ve seen—and felt myself—this same sentiment used to describe changes to social media websites and apps. But here’s the thing…
We can mess with our social media profiles. We can change with the titles, paint the walls, draw on them, even put up some posters. We can make the space our own, feel a sense of ownership, but at the end of the day, this is not our beautiful house. In reality, it never was. That sense of ownership only lasts until the platform decides to start making the money they promised their investors.
By now you might be thinking, “Okay, that sucks, but it’s just social media. Why does this matter? It’s just the internet. It’s not real life.” Here’s the thing, though: the internet is real life. What we do online matters. Who we are online matters. The things we do on the internet are real actions with real consequences because we are all real people. It’s always been easy to forget that, but it’s always been true.
So let’s talk about who we are online, our identities. For the sake of brevity, I’ll boil this down to our names, our presentations, and our actions. In physical space, we usually have a given name and a family name. We choose our presentation with haircuts, makeup, the clothes we wear, buttons, stickers–all of that. And our actions are how we respond to whatever is around us, usually driven by whatever circumstances we happen to be in.
In online space, our names are our platform handles, our presentation is basically our profile pic, and our actions are limited to what the platform allows, and that’s typically tied into its algorithm.
So why Smolblog? Because online life is part of real life. Which means our online identities are an increasingly important part of our real identities. And every aspect of these identities passes through the platforms we use. Our names are subordinate to theirs, our presentation is limited to their parameters, and their algorithms reward actions that benefit them even if it’s harmful to us, because these platforms exist solely to make their owners money at our expense. That’s why.
So now let’s talk “what”. What is Smolblog specifically going to do to help solve the problem of online identity? The short answer is: blogs. Making places on the internet that people can set up their own identities with as little influence from platforms as possible.
But that’s kinda old news, isn’t it? We’ve had blogs since the early 2000s and they’ve never taken off like people want. When modern social media came along, everyone flocked to that because it was so much easier and more fun.
Here’s the thing, though: blogs never went away. If I were writing a dictionary entry for blogs, I would start by calling it a system for displaying content on the internet. What makes it a blog specifically is that it displays your most recent content in reverse chronological order at a dedicated address.
For example: WordPress, the most popular blogging engine out there. Here’s a site I haven’t updated in forever, but you can still see recent posts in reverse chronological order at a dedicated URL. Tumblr actually calls them “blogs”, and it fits: my most recent posts in reverse chronological order at a dedicated URL.
But what about my Facebook profile? I don’t have as much here, but it does have my most recent posts in reverse chronological order at a dedicated URL. YouTube: Most recent posts in reverse chronological order at a dedicated URL. Instagram: Most recent posts in reverse chronological order at a dedicated URL. Mastodon! Bluesky! LinkedIn! Ex! Medium! Soundcloud! DeviantArt! Twitch! TikTok! SOCIAL! MEDIA! IS! JUST! BLOGGING!
(Deep breath)
Social media and blogging are–at the heart–just about putting content onto the internet for others to enjoy. But if that’s the case, why did social media take off when blogging… didn’t? There’s a few major factors at play, not the least of which is the rise of the smartphone. But I think social media did well at addressing two things: barriers to entry, and barriers to participation.
Now, of the two, barriers to entry is the easier to address. What are the barriers to entry? I’m going to pick on WordPress here because it is by far the most popular way to set up a blog. And by running the open source version, you have complete control over the platform–you decide what to install and run.
Except the process for actually installing and running WordPress is… not easy. Here’s their download page with two options: “Download and install it yourself” and “Set up with a hosting provider.” If you’re not familiar with installing and running software on a web server, if you have no idea what web hosting even is… you’re stuck. This is the single biggest barrier to entry for blogging. The good news, though, is we’ve “solved” it for a couple of decades: let people sign up for an account. This makes it easy to get started, but it also means that we cede a lot of control to the platform. We’re trying to avoid that.
Two examples of a better approach are Laughing Squid and Micro-dot-blog. Laughing Squid is one of many web hosts that handles installing and running the open source version of WordPress but still lets you customize it. Manton Reece’s Micro-dot-blog–what I use for my blog–offers inexpensive blog hosting with built-in apps and services. Both of these are ways to set up blogs that take care of all the little technical details but still give us control. Both of these cost money, but by paying for them, we get platforms that aren’t as at risk for enshittification. So that’s barriers to entry pretty much handled.
But what about the barriers to participation? What happens after people sign up? Take a look at the post editors for WordPress and Medium. They take up most of the screen, WordPress has some extra menus to the top and side, and they’re mostly just a blank canvas. That’s great for some instances, but let’s compare that with social media: Here’s Instagram, X, and Tumblr. These don’t take up the whole screen; they’re small and focused. Instagram I couldn’t even get to this part until I’d picked a photo! They prompt for content, and they don’t ask much. Just a picture. Just a link. Just one sentence about what’s happening. Social media understood something incredibly important: The hardest part of blogging is blogging. It’s coming up with the words to say, learning to be confident in your own voice, finding things to post about.
In short, with blogs we have platforms that we control, but it can be a little complicated. With social media, it’s easier and more fun, but we’re subject to enshittification. So let’s take the freedom of blogging and bring in the fun of social media. Let’s take the overwhelming parts of blogging and focus them in to what we really want and need.
But what about our communities? We’ve spent years, maybe even decades building up relationships on these platforms, whether through interactions or just following and being followed. And as a lot of us have seen over the past few years, a lot of these communities don’t survive changing platforms. So how do we keep these relationships alive?
First, we cross-post. Social media loves to do this to get people on board, and we can use it to our advantage. We connect our blogs to our social media accounts. Then, we post to our blogs. Our blogs know what the content looks like, what each field means. And they’re able to take that information, translate it into content for other social media sites, and post it automatically. We keep our content in a place we control and syndicate it out to other sites where our communities already are.
That takes care of the “now,” but what about the future? If everyone’s on their own blog, how do we interact with each other? For that, we have standards. The World Wide Web Consortium, or W3C, is the organization that sets standards for HTTP, HTML, and other technologies that the web needs to run. And there are new standards being developed to enable the social interactions we’re used to—such as likes, replies, or follows—but with independently-run blogs that don’t need to pass through a central platform.
Some of these standards are newer, like ActivityPub, and others are older, like RSS. But the easiest way to explain this is a standard older than the web itself: email. If Bob has an email account at gmail-dot-com, he can still email Alice with an account at hotmail-dot-com. Or I can set up my own email server at oddevan-dot-com. Even though we’re using different servers—and probably different software on those servers—they can all speak to each other using this same standard.
Let’s start with this foundation of open standards that gave us email and the web and podcasts, build the social interactions and tools and connections we’ve formed through social media, cross-post to our old accounts to keep our communities, and present it in an experience that lets us use our tools, not fight against them. That’s what I want to do with Smolblog.
So let’s talk “how.” How is Smolblog going to be a better blog? How is it not going to end up like every other enshittified platform that came before it? How am I actually going to do this?
The first part is admitting that, well… I can’t. There’s no special algorithm, no hack, that will absolutely stop enshittification. Any code in the software, any bylaws in whatever company this ends up being, all those can be changed, and there’s no way to guarantee that they won’t. And even if there was, the biggest risk here is that Smolblog just… fizzles out. We could easily get to a place where I can’t maintain Smolblog on my own, and no one else is around to pick it up.
We can’t stop entropy… but we can certainly try. We can set things up so that when it happens, we’re ready. So here’s my plan, and it looks an awful lot like WordPress:
The source code to Smolblog is and will be Free Software. Free as in price, but also free to run, study, modify, and distribute. Anyone that wants to can download and run the software on a web server. The only requirement is that any modifications also have to be available to anyone using it.
For those that don’t want to download it themselves, I’ll be running a paid service at smolblog-dot-com. As much as I want it to be free, I’m not going to do that unless I can do it sustainably. It’ll be running the exact same software that’s available for download, so anyone is free to set up their own service and charge for it.
But no matter what, any user will be able to download their data. I want to make this as simple as possible for everyone, so I’m planning on using the Blog Archive format. It’s a proposed standard that packages all of a blog’s pages, posts, images, everything in one tidy archive that can be imported to another server or uploaded as its own static website.
All this gives protection against enshittification, but it also makes it easier to do content moderation, particularly when it comes to the hosted service. As everyone from bored teenagers to eccentric billionaires know, there are limits to free speech. It’s not just the big ones like hate speech and harassment but stupid stuff like… spam. We can set up things like word filters, flood control, account verification, but at the end of the day, sometimes we just need to wield the ban hammer.
Now, there’s been a lot of hand wringing lately about freedom of speech and banning people. I agree that a ban is not something to be taken lightly. If we have these open platforms and encourage people to put their life’s work on them and build these audiences, it can feel like a breach of trust to then take that away. But before we get too dramatic, data portability means there’s a backup of all the content in a standard format. Free code means there’s a way to keep using the exact same Smolblog. And using open standards for interactions means that the audience doesn’t disappear, despite what people may say.
Having this freedom in place neutralizes the debate. Instead of questioning whether certain speech should be “allowed to exist”, we have the ability to say that it’s not speech we want here. It’s freedom for users and for administrators, because they both have the chance to say “this isn’t working, it’s time to leave.”
So we’ve talked enshittification prevention, and we’ve even talked business model a bit. But this is a software project, so let’s talk code, just for a second. I’m starting with the core domain logic, the things that are intrinsic to the app, what makes Smolblog Smolblog. Things like the content workflow, or what accounts are allowed to make changes. What’s not part of that are things like how the data is stored, handling image uploads, interfacing with other services, making sure people are who they say they are. By building a modular, adaptable system, I can swap these parts out without having to change the core. I can even build registries that can store different parts of the same type and swap them out on-the-fly.
That flexibility extends to the Content model. It’ll have a few intrinsic details like publish date and primary author, but most of it is going to be this box we’re calling the content Type. This is the structured information that really determines what the content is: a picture and caption, an embedded video, or just 140 characters of text… that word we don’t say anymore. Each piece of content can only have one type, but there can be many extensions. These are things like tags, syndication links; things that apply to multiple–if not all–types of content.
Once we have our complete Content object, we can push it to a channel, which is just a place to put content. It can be your website, but it can also be an account on another social media site like Tumblr or LinkedIn. It could even be a feed using an open protocol like ActivityPub. We push the content and send it on its way.
A flexible content model with diverse channels, powered by adaptable code, protected by Free Software and Data Portability, and sustained with a business model used by multiple Open Source projects. That’s how I’m building Smolblog.
Now, here’s the part where I really should show it to you in action… but I can’t. Not reliably. I got 95% of the way to a working product and… burnt out. This video is what I’ve been doing to get back into the project and refocus my efforts. Because I really want this to happen.
Smolblog represents everything I want for blogs and the web. I’ve been working on this for over five years now, and I’ve been chewing on the ideas my whole career. And as more and more of our lives are lived online, it’s more and more important that we build environments that are good for us, or at least don’t actively harm us.
Steve Jobs once called the computer a “bicycle for the mind,” a force multiplier that lets us do more than we could previously. Personally, I want to build things that let us create more, express ourselves better, put more art out into the world and let it connect us. Lofty and pretentious? Definitely. Sharp rocks at the bottom? Most likely. But I gotta try.
Take care of each other; I’ll see you next time.