I (Evan) am very good at coming up with ideas. And… getting better at implementing them. As such, this document should be considered very much a work-in-progress. It is a plan, not a promise. But if you’re on board, stay tuned.
Last updated: April 24, 2021
Phase One: The Individual
We increasingly live our lives online now; the Covid-19 Pandemic has only made this more obvious. Just as individuals choose their clothes, their haircuts, and other aspects of their presentations, they also choose their avatars, names, and content for their social media profiles. These profiles and pages become an identity, a way an individual presents themselves to the broader culture.
Currently, the vast majority of these profiles are maintained and presented by monolithic corporate entities that have shown to have their own interests–and not their users’–at heart. Content is frequently shown and buried by opaque algorithms whose only objective is to increase use of the platform. Platforms themselves add and remove features not by their usefulness but by their profitability. The users themselves have little to no control over their identity.
To solve this problem, Smolblog needs to be the easiest way to build an online presence. In other words, a personal website. Most modern social media functions as posts in a feed, essentially a blog by another name. Tumblr is the most overt as this, while Facebook and Twitter are less obvious but still conforming to the same idea. As such, Smolblog needs to excel at personal blogs.
The plan is to meet three key requirements:
- Follow anyone
- Reblog anything
- Be everywhere
Utilize whatever technology is prudent to allow users to have content from other websites presented in a feed for reading. Users should have control over how content is presented as much as possible. Any filtering or rearranging of the feed should be done using explicit signals by the user.
This is important since current social media sites are built as much for reading as creating. By enabling users to see what content they can outside of the social media site, Smolblog will reduce the dependency on the site for finding things to read or watch.
Links are the currency of the web. The quickest way for a user to get content for their blog is to link content outside of it. This should be done in such a way as to preserve attribution: content should be linked to, not copied, whenever possible. Utilize technological signals to determine what is safe to copy in order to make the link visually appealing (thumbnail images, additional content, etc).
This is important since the hardest part of creating a blog is not setting up the software, it is finding content for it. In order to make Smolblog “easy to use,” it should make finding and posting content to a user’s blog easy.
Personal websites provide many opportunities for self-expression but are difficult for others to discover. Where modern social media sites excel–both for good or for ill–is in allowing relatively unknown content creators to be discovered by others. Content creators have also built audiences on these social media sites that are unlikely to follow them to other platforms. Smolblog should, whenever possible, allow users to cross-post to other platforms.
This is important as it further reduces dependencies on other social media sites. Smolblog users will be able to continue to engage their audiences while maintaining a canonical copy of their content on their personal website.
As phase one is built around a blog metaphor, the quickest path to shipping a product is to build on WordPress. It already contains support for oEmbed and can be extended to support the other requirements. It also has an existing community of developers dedicated to extending and building on it.
Importantly, while WordPress does need to be extended to support some of the Smolblog-specific features needed, it already contains everything needed to run a blog: user accounts, publishing flow, post storage with custom meta data, multi-user options, and an extensible block-based post editor.
In numeric form, here’s The Plan:
Connect a WordPress blog to a Twitter account
- Import Twitter posts into the WordPress blog
- Pull original posts as text posts
- Pull retweets and replies as reblogs
- Enable posting to Twitter from the WordPress blog
- Abstract the connect/import/export into a library
- Add connection to Tumblr
- Create reader dashboard
This will be expanded as I learn more.
Phase Two: The Community
This phase is much more abstract, but no less important in the long run. I would like for Smolblog to support interconnection, both on a personal website level and on a server level. There should be the ability for a person with average knowledge of web hosting to be able to run their own Smolblog server for themselves and their friends. Membership on one Smolblog server should potentially enable features on other servers.
This is a similar model employed by the Mastodon project, where interactions between servers are enabled and encouraged. The Mastodon project has also shown the intense need for strong moderation capabilities to prevent abuse, both through messages and through the moderation tools themselves.
The end goal here is to provide a place for communities to form outside of the modern social media monoliths. Features like group message boards and private messaging can further the goal of reducing a community’s dependency on existing social media sites.
This phase will also be the decision point whether to continue with WordPress or to go with a different platform or framework. Regardless, I would like the project to continue to be written for PHP servers to provide maximum compatibility with low-cost web servers.
Regarding licensing, WordPress is currently distributed under the GNU General Public License version 2. This requires changes and plugins to be made public only if the software is “distributed.” Plugins and changes that never leave the writer’s server are not considered distributed and do not have to be disclosed. This is how Automattic is able to make proprietary changes to WordPress for their own products.
It may be more advantageous for Smolblog to use the Affero GPL, which requires modifications and plugins to be made public to all users of a system, even if those users only interact over the internet. This license is untested currently, and some technology companies have a blanket ban on the license due to its virility. This could be an opportunity to offer corporate licenses for a fee that absolve a company of AGPL requirements but still require interoperability with the Smolblog project.
But that’s later. I’ve got to get back to work on the Twitter side for now.