Switching Ghost From Ruby Sass to Libsass

In the early days of Ghost, any CSS was written in Sass, which meant Ghost had a Ruby dependency. In March of this year, the Sass was moved to its own repository, which meant Ghost no longer had a Ruby dependency, but had 2 repositories instead. A couple weeks ago, we decided to take the plunge and adjust our Sass so Libsass could compile it. This is why. There were…

Get Angry

Not a day goes by without someone - or something - wreaking havoc on the internet. It's usually spread on Twitter, where the character limit imposes a lack of context. Nobody can fit a good, solid argument into 140 characters. And spreading that argument over several tweets doesn't work either, because people selectively retweet the parts that interest them, meaning others who read it have even less context, and it…

matchMedia

For the longest time, I used window.innerWidth() to check the width of the browser, so I could show or hide something, and enable or disable something. That was until earlier this year when I realised JavaScript had a proper way to do this. Enter matchMedia. Can I Use says support is in all modern browsers, except IE9 and below, which you should have already stopped supporting. This chunk of…

Equal Height Boxes with Flexbox

For the uninitiated, flexbox can be used pretty much everywhere these days. That is assuming you've stopped supporting IE9 and below. (#protip You should stop). Can I Use shows just how well supported it is. When I was freelancing, one thing I'd need to do quite often is make equal height boxes, that fit into and conform to a grid nicely. I used to use JavaScript for this, but using…

Git Tips #1

Earlier today I tweeted how to preview a Git pull request. It got a few retweets and favourites quite quickly, so I thought I'd share a few other tricks, as well as the one I tweeted. Some are basic tips, but ones that I spent a while finding and learning, and some are tips I have learnt from the awesome team I work with . If your Git-fu is amazing, you…