Rewriting software from scratch is usually a terrible idea. But I’m thinking about it.
The Known open source codebase is now 9 years old; a PHP kludge that I wrote while my mother was recovering from a double lung transplant still powers my site and many others. It became the foundation of my second startup, and is still an open source project today. But there were a number of years when I didn’t pay attention to the codebase, and there’s a lot to unpick.
Meanwhile, the hosting landscape has completely changed. It used to be that you’d buy some space with a shared host and upload files via (S)FTP; these days virtual hosts are commonplace and getting easier to use. There are one-click installation buttons for Heroku and other hosts.
I’d like to clean PHP Known up, and I’m trying my best in between all the other things that are going on in my life. Probably that should mostly be about getting to another stable release: a lot of the architecture has been changed (by other developers) and a lot of users are having trouble installing it. So bringing that back to accessibility would be nice.
I also want to fix import / export, so that people can take their Known content and use it elsewhere. A lot of folks, rightly, would like to migrate to WordPress or Ghost in particular. They should be able to do that with ease.
But I also like the idea of going back to basics with Idno, the underlying platform, and thinking about it again. The original core idea was that you could create a stream of arbitrary content, set fine-grained permissions on it, and both post to it and consume from it in a bunch of different ways. If you wanted to post via the web, great; via a webhook, API endpoint or common standard like Micropub, also great. Likewise, reading via the web, JSON, RSS, MRSS, ActivityStreams, and so on would all be easily possible. Permissions would limit both reading and writing to a customizable set of people, from everyone on the internet down to one person.
That’s not really where Known ended up going, but I still find that potentially interesting as a project. Instead of PHP, I’d be more inclined to write it as a Node service these days (or use it to learn something I’m less familiar with, like Go).
I wish I had more time to work on these sorts of projects. But it’s something I’d love to figure out how to fit in: I want to clean Known up, and return to Idno as a way to write scalable streams of arbitrary content. In the meantime, it’s fun to think about.