How To Create Your Own Currency Conversion App

By | April 15th, 2017|gist|

For a recent Shopify job, I had to update a variety of prices by converting them to a different currency. I found this great API from It's super fast to use (response times in less than 7ms), and responses themselves are simple JSON objects. The exchange rates are updated almost every day from the [...]

How to add encryption (https) to your JavaScript application

By | December 15th, 2016|blog|

I hadn't given too much thought to encrypting the traffic to my applications, until developing for 3rd party services like Facebook Messenger or using service workers require your server to use https. For a full stack JavaScript application we need to setup encrypt on both the front-end and the back-end. Front-End Encryption I'm serving my files (fonts, [...]

How to setup Google Analytics with React.js apps

By | November 30th, 2016|gist|

If you have a single page app that has no routes, getting visitors tracked with Google Analytics is pretty straight forward using the React Google Analytics Module. First create your tracking ID from Google Analytics by going to A howto guide is available here. Then in the parent component of your React.js app Install the [...]

How to listen to Shopify webhook event data with Node.js

By | November 23rd, 2016|gist|

Shopify provides webhooks for stores. What is a webhook? Webhooks are a useful tool for apps that want to execute code after a specific event happens on a shop, for example, after a customer creates a cart on the storefront, or a merchant creates a new product in their admin. --   So let's say [...]

How to create a sticky fusion mega menu dropdown for Avada

By | November 9th, 2016|gist|

Some of you might notice that once you have created a fusion mega menu dropdown in Avada, once it appears, if you move your mouse just slightly out of its bounds, the dropdown will disappear. This can be pretty frustrating when trying to navigate around the menu when it's so easy for it to disappear. So [...]

How to collect an unknown number of async calls

By | March 16th, 2016|Uncategorized|

I had a challenge the other day where I would request some data from a server. But the data was not all returned at once. But rather paginated. And I wouldn't know beforehand how many pages I would need to process. So I couldn't just pre-nest my callbacks. That's when I re-discovered promises. Basically I [...]

How to reduce bank fees as a traveller

By | September 3rd, 2015|blog|

As a traveller, using banks can become a headache with all the fees they add to withdraw money from an overseas ATM or when buying things online in another country with our debit or credit cards. After being charged AU$30 for doing a cash withdrawal and buying something online, I started researching exactly how much I [...]

How to use a fallback image for a slider

By | September 1st, 2015|gist|

I created a slideshow that grabbed images from an external server. But doing work on my localhost, if the Internet went down, the slideshow broke. So I wanted to figure out how to use a local fallback image so I could keep developing even if the Internet failed. Turns out it's quite simple. (my solution inspired by [...]

How to alphabetically sort articles in Shopify

By | August 21st, 2015|gist|

There doesn't seem to be an easy way to sort articles in Shopify by title. Inspired by this article, I developed a workaround for a single page of articles (i.e. with no pagination). The procedure is as follows: Get Liquid to output all the HTML for the articles Give the root node of the list [...]