As we get ever closer to ReadFeeder going live, two very important milestones have recently been met. First and foremost, I have registered the domain name readfeeder.net, which will be the eventual home of the live service. Secondly, I’ve just finished the major refactoring that was necessary to ensure that ReadFeeder can support a large number of users on the least possible server resources.
Creating a web presence has come a long way since I first got started making websites. It took me only a few minutes to spin up a new instance of Ubuntu Server 11.04 on an Amazon EC2 instance with an elastic IP address. Buy a domain name and point it to the address, and I’ve got a web server. SSH into the server and apt-get install apache2 and I’ve got a website! Register for a free Google Apps account and I have email!
Of course, web presence isn’t enough these days. Marketing your website, getting the word out, getting traffic, that’s quite a bit harder. I haven’t seen any simple solutions to accomplishing that. So for now I have put up a placeholder page on the website to provide enough teaser information to hopefully keep people checking back, and a contact email for those interested in learning more. As soon as I have it written, I will put up a feature tour of ReadFeeder and a way to subscribe to email updates as the service becomes available. I’ve also registered @ReadFeederNet with Twitter, and will be posting updates there as well. If anybody else has any brilliant ideas for getting the word out between now and when I have the service up and generally available, I’d love to hear it.
As I mentioned above, I just finished a major refactor on the code and database structure on ReadFeeder. Previously if you and I both subscribed to the same feed, it would store two copies of the feed, and all it’s articles. Combining those made sense, but you and I both had separate tags and queues that were associated with those feeds and articles, so it wasn’t quite so straight forward. It took a lot of work, and touched almost every part of the codebase, but it can now support multiple subscriptions to the same feeds without duplication. This will not only make the regular update process faster, but it’ll allow me to collect metrics in order to prioritize feeds for even better updating in the future.
While I was changing the data models anyway, I added some extra goodies that will start to show themselves in future revisions. Primarily among them is tracking when an article has been shown in your list, or opened for viewing, and giving you a visual indication of this, so you can easily skip to new items, or go back to ones you’ve recently viewed.
Since this was such a big refactor, and since it touched on every aspect of the site, my focus right now is on writing automated test coverage to make sure that no corner-cases were missed or broken during the process. This will also give a good base for quickly adding features in the future while still guaranteeing stability.
There are still some things to be done before the new code is on the new site and ready for testing. In addition to the aforementioned writing of test cases, I need to integrate user account registration even if it’s only open to beta testers at first, and I hope to include some form of Google-style invite system during the beta testing phase as well. I also need to include some formal user documentation to help people get started and learn how to take advantage of ReadFeeder’s features and how they differ from traditional feed readers, and a way for the beta testers to provide feedback on their difficulties, opinions and ideas.
It’s been just shy of 4 months since I first introduced ReadFeeder, and it’s come along much faster than I had envisioned, especially considering that hasn’t even had my full-time attention. But I’m proud of how it’s progressed, Michelle has been using it constantly for her job, and it’s given her an effective way to manager her almost 300 feed subscriptions and extract and manage useful information out of them. On that alone, I consider the project a success. Now to see if I can take it to the next level.