Renaming and Rejuvenating

Over the last few years the name of the software powering the 10Centuries service was, for lack of a better name, 10Centuries. While this works fine for services that operate in isolation, it can make for a bit of confusion when talking about something. The next version of the software will be doing something I've wanted to offer for years with 10C and allowing people to host their own instance of the service. In order to keep things simple, I've decided to rename the software starting with the next version simply to v5.

For people who have been using or watching the development of the current site, the first question will undoubtedly be something like "what about all the half-written features in the existing software?" A valid question, too. I plan on completing a few more items for the current platform before putting more attention into v5. Photos and ToDos have some more updates coming, as does the long overdue Comments API, which is functional but has not yet been implemented across the various site themes. With these three key areas complete, it will then become possible to focus on the next version of the software while also seeing whether the newer updates are remotely popular.

One difference with how v5 will be developed compared to other projects I've worked on involves documentation. This is an area that I've been historically weak at, often writing a few pages only after being rightfully pestered by people who are showing an interest in the system. With v5 I plan on writing and updating the documentation with each and every commit. This will hopefully keep everything better aligned and up to date. More than this, the documentation will be part of the software package. This will make it possible for people to read about the tool while offline. A small thing, perhaps, but completely doable given the files will all be plaintext with standard Markdown formatting.

What's Going In v5?

v5 will have a number of features that I've not seen anywhere else. People will naturally be able to publish blog posts, podcasts, social streams, and other basic things that many publishing tools can already do, but it will also allow for automatic backups across servers. This can be to other servers that a person operates, servers operated by people they trust, or to the main 10Centuries service itself. By doing this, a person can safeguard their data from being lost forever if a server goes offline. The feature will be an opt-in service, of course, and encryption will be used at every level to ensure only authorized access to the data.

This distribution mechanism is also how the social feeds will be managed. Rather than have a social client that subscribes to different feeds like an RSS mechanism, the posts will be read into the same server pools, and distributed this way. People will still have the option to selectively subscribe to accounts on different services, of course. The pool would simply allow for a global timeline to exist.

Some other nice features that will go into v5 include:

  • IndieWeb support out of the box
  • JSONFeed support out of the box
  • Archive.org support out of the box
  • Podcast download stats
  • Simpler website templates
  • Bi-directional sync with other social networks
  • and quite a bit more

Why?

Why not? I've looked around at a number of the open options for a lot of the core and bonus features I'd like to see in a package like v5 and found some great work hidden behind incredibly complex configurations. v5 is going to me my attempt to simplify this stuff as much as possible. Software is still too complicated in 2017. I think we can do better.

Development of v5 will happen in the open via GitHub, and people are encouraged to participate if they choose. While it will be impossible to appease everybody, it shouldn't be improbably to satisfy many.

What (Real) Problem Am I Trying to Solve?

Over the last year or so, I've invested a good amount of time into learning about blockchain, JSON, encryption, and a myriad of other tools that could be used in the next big version of 10C. After a great deal of research, I've come to the conclusion that blockchain is not what I'm looking for as a means of message validation and will instead fall back on other methods that employ technologies that are much easier to explain and verify. In addition to this, I've been looking at a number of other projects that are quite active across the web such as IndieWeb and JSON Feed1 to make the next version of the platform something people might actually want to use themselves. Yet, despite the effort going into the research and pre-development, a lingering question remains: what real problem am I trying to solve here?

There are already a number of open-source blogging tools that are admittedly much better in terms of UI and web standards than 10C. Why am I not simply using one of these as part of the larger goal? The same is said for social networking, photo sharing, notes, todos, and just about everything else I've been slowly building into the 10Centuries platform. What could possibly make anything I make better than setting up a NextCloud instance with a bunch of plugins to fill in the gaps?

It's a problem I struggle with because, while I am very much interested in helping people keep the words and images they want to share with the world online for a millennia, do I need to do it with a software platform that I build rather than one assembled from various open projects around the web? What could possibly make 10C better than WordPress with a myriad of plugins? Despite what people might want from the 10C platform, it is a silo. Even in v5, which involves a globally distributed system of servers operated by anybody who might want to participate, the system is a silo. A silo that anybody could operate, but a silo nonetheless.

Is this what people actually want? Would I be better off investing my time contributing to open projects that already have large, vibrant communities and encouraging adoption of ideas rather than of software?

One of the reasons these thoughts have been rolling around in my head is because I'm downright exhausted, and any amount of free time I might have enjoyed in the past is all but gone as a result of expectations elsewhere. This tiny blog post right here required 8 separate attempts across three devices and 30 hours to complete. This right here. Which is the length of something I used to bang out on an iPod Touch with Evernote while on the train to work. Despite all of my best efforts I just feel as though I'm letting people down as a result of diverted attention, and I really dislike letting people down.

So what is the real problem I am trying to solve with future versions of the 10C platform? Automatic distribution of encrypted content across servers to act as a backup for friends/family when systems go down? Self-hosted community creation on minimal hardware? An API-driven system that is open enough for people to easily create their own tools that interact with the system? Yes on all counts. But does it need to be something that I've written top to bottom? Is absolute control over the software stack really that important to me? Is it important to others? This is the question I need to answer ….


  1. this one will make its appearance in the existing version of 10C quite soon