Gitignore.io: Building An Open Source Project
One thing I like to do when I start a software project is git init. Even if I never publish the project anywhere, managing it though version control makes it much easier for me to try new features during development. One of the challenges with setting up a repository is that you have to ignore certain files created by the Operating System, IDE and programming language itself. While on a snowboarding trip at Mammoth Lakes in California, I had the idea to create a simple command line tool that would let me programmatically generate my .gitignore files.
Day 1 - Research
Sat. Feb 9, 2013
I sent an email to this amazing designer named Jason Long, who is the man behind the design of the git-scm logo. It was a shot in the dark asking Jason if had time to design a logo for the project since he designed the git-scm logo.
While waiting for a response, I spent the day trying to figure out how to curl a URL with a variable. I wanted something like this:
$ alias gi=”curl http://localhost:3000/api/$1”
But that code doesn’t work so I asked my hardcore Linux friends for alternatives.
Another thing I had to look into was web hosting. I chose Node.js for the platform so for hosting options, I looked at Heroku, Nodejitsu, and Azure.
Day 2 - Development And Design Begin
Sun. Feb 10, 2013
I figured out how to pass a variable into the curl command using a function. I also started working on the website user interface and the first version wasn’t pretty.
Jason also sent me an email letting me know that He’s in.
Day 3 & 4 - Coding
Mon. Feb 11, 2013 - Tue. Feb 12, 2013
I spent two days working with the Select2 library as well as adding code to render .gitignore templates. I cloned the initial batch of templates from GitHub’s official repository. I also started writing some documentation for the command line version of the site.
Day 5 - Here It Is
Wed. Feb 13, 2013
Here is what I created and sent to Jason for a design review. I’ll run though the features I added.
- Background photo that my friend Samir took Tuesday night. I wanted to give the site a bit of a computer programmer theme similar to the New Relic site
- Instructions on how to setup a gi command so you can generate .gitignore files in the Terminal
- Footer with links to the source code, my contact info, and an about section explaining the purpose of the site
- Font used by the git-scm website called Adelle
All in all, I think it looks pretty good. I’m still waiting on the final logo design from Jason.
Day 6 - Working With A Designer
Thu. Feb 14, 2013
Just got two amazing emails from Jason with comments on the design outlined in some bullet points
In the first email:
- I’d definitely kill the background photo. It doesn’t have anything to do with the tool.
- I’d make the content area much narrower so that the lines of text aren’t crazy long.
- The input field for the form could taller w/ a bigger font, but maybe 1/3 the current width. This is the most important part of the page.
And the logo
In the second email:
This might be too far the other direction, but I think something as minimal as this would be awesome. Keep all that command line stuff hidden by default and then either reveal it when the link is clicked or (probably better yet) link to a separate page with the instructions.
And a redesigned mockup of the site
Day 7 - It’s Ready
Fri. Feb 15, 2013
I got an inverted version of the logo and I made modifications to the design of the site then sent it back to Jason. I definitely think this looks a lot better! gitignore.io was almost ready for primetime. For hosting, I went with Nodejitsu because they have an awesome plan which gives you one free drone for open source projects. For monitoring I went with New Relic and then used ApacheBench to load test Nodejitsu and make sure it was ready to handle high network traffic.
Saturday morning, I released http://gitignore.io to Hacker News.
Website: http://gitignore.io
Source Code: https://github.com/joeblau/gitignore.io