Amit Dhamu

Writes Code

2014 Style

So I've finally got round to rebuilding my entire website. It's taken a while to figure out the stack I wanted to use but I finally made some decisions.

The problem I faced is that I didn't want to just "reskin" my site - I wanted to learn some cool stuff while I was doing it. I'll refer to a tweet I made earlier in the year:

Using the technologies I mentioned in this tweet seemed like a great idea at the time. My mind changed though and here's why.

### Static or Dynamic

At first I thought the idea of static site generators were cool. No server side stuff to handle - just create your blog with flat markdown files and be done with it. I soon started coming into problems though. I like having quite granular control of my site and the things you can do with it. Now my site isn't some Nasa command center but Jekyll seemed a bit too much boxed in for my liking. I had a prototype Jekyll site setup but I just couldn't see myself maintaining my website that way.

I'm a PHP developer. I want to make things in PHP. I wanted to use a framework. The leaders in the pack are Zend (which I have absolutely no knowledge of and no incline to) and Symfony2. Symfony is a fantastic framework once you get your head around it. It is proper MVC and it teaches you best practices. Symfony is massive though and is used for full-scale commercial applications. I didn't need that. I wanted something lighter or at least appeared lighter from a programmer's perspective. This is why I decided to pick Laravel.

Admittedly, Laravel borrows a lot from the Symfony framework and uses a number of it's components. I like that. Why reinvent the wheel? Symfony does and has been doing some stuff for a lot longer and a lot of their components are now refined to a point that they can be bolted on as required. Similar I guess to how you use Silex. Get the barebones of the framework and bolt-on the components you need.

I like how easy Laravel is to learn and how you can put stuff together quickly. It is very well documented and has amazing resources like it's podcast and of course, Laracasts. I read somewhere that Jeffrey Way is PHP's killer feature. I tend to agree with that. Jeffrey is a great evangelist for the Laravel community and PHP in general. So these things tipped the scales for me and I am very happy to be using Laravel to power this website.

###GruntJS or GulpJS

I started using Grunt a while ago and got to a point where I almost hacked around it's inadequacies by keeping all my config DRY and neat, loading plugins from external JS files etc. I was happy with it. It did what I needed it to and I didn't really need to change it. It was then where I started reading about Gulp and it's more code-like approach. More importantly, it's ability to pipe tasks to a glob of files instead similar to how you would do on the command line which keeps the files in memory rather than writing them to disk leading to a superior speed performance over Grunt. I have to say that at first I wasn't feeling it. It seemed over complicated (or I wasn't "getting it").

It took me a while to believe Gulp could take over from Grunt. I needed a project and the redesign of this site was a perfect opportunity to test the waters. After rewriting my config (sorry code) to Gulp, I am very happy that I did and couldn't think of going back to Grunt any time soon. My Gulp file is a fraction of what my Grunt file was so I'm happy.

###Nginx or Apache

On my development machine (Macbook Pro), I have to Nginx installed and I remember it being a very easy setup. The only caveat was that I had to use PHP-FPM to get PHP working on there. That wasn't a biggie. The thing is, I have previous with Apache. Although it is beast, I have become comfortable with it. Yeah, the speed of Nginx is appealing my not a deal breaker for a site like mine. I'm not giving up on this one though. I do believe Nginx is the better choice but I'm going to give it a while before I take the plunge fully.

Check out my Colophon for a list of all the technologies I have used on this site


site news / colophon

← A Few New IronReader Features Use Gulp →