Open Sourcing

I'm excited to announce the open sourcing of today. The original, the now defunct Classic, is a project that I open sourced and abandoned. The site is still live and running and I gave all users of Classic plenty of warning that it is going to be shut down and I will start redirecting that domain to the new starting today. What was cool about Classic was that you could run it on your own server. It's not the greatest piece of software (to put it nicely) from a developer's perspective but it does work as advertised. Classic will be deprecated and the new project will be on GitHub starting today.

I built because it's the online notebook/publishing platform that I always wanted. New users sign up every day too. That tells me others want the same. In thinking of all this I got the idea that maybe I should just open source this site and allow anyone to run a copy of on their own server.

The only things that have stopped me from doing that at this point is the fact that I do plan to charge users for accounts in the near future and there is a lot of code that needs to be rewritten if I'm going to release it to the public.

At this point I don't think an open source version would ever impact sales. First of all, I've been saying I was going to charge for a long time now and I still haven't. I've become infected with the "just gotta fix this one last bug and add this one last feature" disease which has stopped me from opening up the payment form. People who want to host their own will most likely never sign up for to begin with anyway but if a self-hosted version were available I may be able to get some more interest in the paid version. I'm looking at Wordpress as an example of what can be done with that sort of model. Just to be clear though, I'm not trying to make a million dollars. I just want to be able to run a product people enjoy and make enough money to keep the servers online and eat.

Open sourcing means rewriting a lot of code. The amount of work involved in getting ready for public beta (or alpha for that matter) is close to the amount of work that went into creating the site you're viewing right now! Most of the codebase can be transferred to the new project but the problem is that I'll have to first remove any sensitive information from the source (database credentials), rewrite parts of the code to be run in common environments, remove functionality that the general user population just won't be able to set up easily.

Removing sensitive information is easy and obvious so I'll skip that. A common concern is making Open (I still haven't decided on a name for the open source version) a system that can be easily deployed in any hosting environment. It's a pretty simple application as-is but it does require PHP5 and some extensions that not everyone has access to (I'm looking at shared hosting providers). There's also functionality like text-to-post and email-to-post that require more than just a simple install script to set up. In fact, I pay for those services (thanks Twilio and Mandrill)! On top of that I have to remove things like transactional email, my home-grown monitoring and analytics tool to track users and more. I don't have a problem with any of that but it is the first challenge I'll face in this.

Right now, the goal of (Open version) will be to reproduce the core functionality of this site and make it available in such a way that it's as easy to install and manage as Wordpress. Contributors are welcome. Once the first code is pushed to the public repo I'll be happy to get anyone's help in developing this project. This is a chance to get in on the ground floor of a new open source project possibly as one of its maintainers if you're interested. So keep an eye on the repo and check back here soon to see how things progress.

More notes