Introducing Smolblog

Around the end of last year, I wrote an essay about what made Tumblr unique in the blogging world, followed by another essay about different technologies that can be used by a blog platform. And then I did nothing.

Well, not nothing. I went and got a new job. I also started sketching out some more concrete ideas. And while I want to be farther along in the actual development of things, I also want to start getting feedback on the ideas themselves.

Full disclosure: I'm great at talking about ideas, but I'm still learning to actually execute on them. Which is kinda disappointing, since the execution is where so many ideas go from "good" to "awesome." So, bear in mind, this is an idea. It may not get very far, it may not get very good, it may crash and burn spectacularly. But these are problems I have wanted to solve for myself, and if I can help solve them for others, then I feel that I must try. So with that, let me announce...

Smolblog

The name was carefully considered and chosen for the following reasons:

  • “Smol” is one of my favorite “internet words.” It’s small, but more adorable. More comfortable. “Small” isn’t big enough, but “Smol” is just right.
  • It’s a blogging platform.
  • It’s for the space in between a micro-sized blog and a medium-sized blog.
  • Most importantly, smolblog.com was available.

Side note: it’s honestly ridiculous how hard it is to get a good dot-com these days.

“Smol” blogging is something I want to emphasize with this platform. Blogging on platforms like WordPress and Medium can feel intimidating. You have a blank page and a site that encourages posting about “big” ideas. What Tumblr excelled at was encouraging small posts of just a picture. Just a sentence. Just a link.

It’s no coincidence that I’ve probably posted more on my Tumblr blog in a year than I did on my WordPress blog in five. While Medium has become a home for presenting big ideas, Tumblr was a home for just... being yourself. That’s the kind of atmosphere I want to build on Smolblog.

The Mission

A project needs to have guiding principles, a central problem to solve. Focus on these can help determine what features need to be built and which ones can wait for later. They can also help set the tone for interactions between people within and around the project.

Keep the gates open

  • Anyone should be able to set up a technically identical server. While some design elements and trademarks may be reserved for the ”canonical” site, there should be almost no difference using sites hosted on different servers.
  • Individual blogs should be easily moved (import/export) between servers or saved offline
  • Use open protocols for interactions

The end result is something like Mastodon: you don’t need to be on the same server as someone in order to interact with them.

Play well with others

  • Allow synchronization from and syndication to other social networks
  • Use oEmbed instead of copying others’ posts

I'm going to be much more willing to try something new if it means I don't lose the social connections I've made on existing services. I'm shooting for Twitter and Tumblr crossposting for phase one as these are the services I use most.

Enable self-expression

  • Allow multiple blogs on multiple domains
  • Allow user-installed themes
  • Make it easy to post small posts and reblogs

There is a time and a place for standardized, beautiful web design. Your personal site should only be that if you want it to be.

Phase One

Spoiler alert: it's WordPress. It's always been WordPress. Why?

  • It's easily deployable on inexpensive web servers.
  • It's well-supported and actively maintained.
  • It comes with several key features for Smolblog out of the box, including but not limited to
    • Multi-user support
    • Multi-site support
    • Image management and manipulation
    • REST API
    • oEmbed provider and consumer support
    • Standard format for import/export
  • Lots of people are invested in extending WordPress for custom purposes. I work with some of them.

So while I talk about Smolblog as its own thing, the first phase (at least) will be delivered as a WordPress plugin. If the project ever outgrows WordPress, then it will need to be at least as easy-to-deploy as vanilla WordPress is currently.

Building on top of WordPress, I plan on adding Tumblr and Twitter crossposting. I've already worked on a large part of the logic through a previous project of mine. By the end of phase one, I'm hoping to have the following features in addition to a standard WordPress Multisite install:

  • Import a full Twitter archive
  • Authorize against Twitter as a single account
  • Pull tweets from that account on a regular basis if they do not already exist on the site
  • Pull Retweets and Retweet-with-comments as embedded tweets to clearly deliniate original and reposted content
  • Push new posts to Twitter, either in full or as links back to site
  • Authorize against Tumblr as an account and indicate a blog
  • Pull posts from that blog, both historical and on a regular basis if they do not already exist on the site
  • Pull reblogs as embedded posts to clearly deliniate original and reposted content
  • Push new posts to Tumblr in as native a format as possible

This should lay the groundwork for adding more services as time and available methods allow.

Phase Later

Some other ideas that will have to come later, after the basic version is working:

  • Posting natively with ActivityPub
  • Cross-posting to Facebook Pages (depends on API support from Facebook)
  • Cross-posting to Instagram (currently being privately tested by Facebook, will depend on Facebook being kind and benevolent and honestly I don't expect this to ever be possible)
  • Cross-posting to YouTube/Vimeo
  • Cross-posting to DeviantArt
  • Dashboard for following other sites/people (use RSS/ActivityPub to "follow anyone")
  • Easy reblogging-as-oembed
  • Supporting Micropub APIs well
  • Native post editor for when Gutenberg is too much
  • Allow end-user editable custom theme
  • Easy podcasting
  • Asks

There's a lot here. I'm not going to be able to do this myself. But I'm going to try. If you want to follow along, the best place to do that is here on this blog (see email widget at the bottom of the page). If you want to see or contribute code, check out the GitHub repo for the plugin.

I have lots of hope and plans. I hope to have more. Thanks for reading, everyone.

Evan Hildreth @oddevan