I do a lot of side projects. “But how do you find the time?” you ask? My trick is not one of skill, but laziness. Whenever I start moving on a side project idea I try to find any way I can to make version one easy.
Take Paste Forward (please!) - a very simple service and I wanted the software to be written in no time. Given the amount of time I have for these things, writing and supporting my own email slurper was out of the question. I noticed Heroku was running a beta with CloudMailin - a perfect fit. Then I searched around and found a well-written Pastie gem to tie things up. I was in business.
Admittedly those steps were obvious. Finding a service that does work for you for free and finding an open source library that connects to an API-less service is definitely step one. For my next obvious trick? Sinatra! I’ve used Sinatra for seven side projects, including this blog here. The cute thing is some of those side projects are hardly more than static sites. Sinatra works great for getting a static site out there on Heroku for free. Building something with a mite of complexity, but a very minimal set of page types? Look at Sinatra as a quick way to get your site running.
Sometimes I’ll build a site (or page, really) that includes a small bit of data which could change from time to time. I like to use YAML to serialize that data, making it easier to update as needed. An obvious examples is the YAML file in my simple Magic Lunch Ball open source project. Perhaps less obvious, the project data on my homepage is also stored in a YAML file. Editing my project list is easier in the YAML file than in HTML. Plus the HTML is more concise with that little bit of Ruby looping thrown in.
The truth is, while lazy leads the way in these side project decisions, there is a fair bit of curiosity that goes into the tech choices as well. I first used Sinatra on Follow Cost. Sinatra was definitely something I wanted to give a spin. What a great side benefit it is to learn a new technology while building something fast. Most importantly, completing a minimum viable product rather than avoiding it for dread of “loading up the stack” is a gigantic benefit. Don’t let the size of your typical working environment be your reason not to get things done. Use laziness to your advantage.