How I built GifFight.club from an idea to semi-complete in 6-ish hours

What is GifFight.club?

Take a quick look - it has a new subject/headline each day, and you post the best matching gif.

Winner takes all! (a celebratory tweet..)

Caveats

This was only possible because of all the brilliant people working on all the brilliant open source projects I stood on the shoulders of.

If you have some time, please contribute to open source.

Idea - 10 minutes

My first thought of starting a gif site was the night before coding. Contacting my colleague Jamie was my first port of call, but he was a bit busy melting his brain so I firmed up the idea some and went to bed.

Start - 10 minutes

To start you need a name right?

When I woke up I used the Namecheap app on my phone to do a quick search.

My initial thoughts were along getting the top news headline of the day and letting people battle with gifs on that, but after reading the most recent headlines I figured that would be too negative.

After looking for positive/upbeat news, and finding they didn't bring any gifs to mind, I chose to start the site with a personally curated gif battle starter.

Registration, DNS, Email - 10 minutes

Registering the domain on Namecheap and changing the DNS to Linode (ns[1-5].linode.com) was easy - I cloned a previous domain (GoRemote.io) to speed it up, then added it as a 'domain alias' on Google Apps.

Setup coding - 1 hour

composer create-project theahindle/smelly-skeleton giffight.club set up a Silex skeleton, which I modified to use Materialize and Redis instead of Foundation and MySQL.

Adding a GitHub repo, and doing git init; git remote add origin; git add *; git commit -am "OH YEA"; git push origin master only took 5 minutes and a quick google to find git update-index --assume-unchanged config/secrets.php to make sure my Twitter keys aren't in the wild.

Twitter - 20 minutes

Registering on Twitter, adding a new Twitter Application and setting up the profile with a picture and text.

Real life coding - 4.5-ish hours

Most of this time was spent on the design and layout with Materialize as I hadn't used it before. Ctrl + Tab, edit code, Ctrl + Tab, Ctrl + R, repeat.

The PHP was pretty straight forward, but the CSS gave me some headaches!

The Bad

Not writing unit tests, or decent commit messages, or nice code saved me a bit of time - it's not advised, but if you do do it make sure you refactor it later on to be awesome!

Things I used

  • GitHub
  • Sublime Text 3
  • Namecheap
  • Twitter
  • MacBook Pro 13"
  • Vagrant/Virtualbox/Ansible
  • Google Chrome
  • Materialize CSS
  • Silex
  • Redis
  • Ubuntu Server on Linode.com