If you're building for the web, you've likely heard the term "Progressive Web App" by now.

Its definition is a bit vague and somewhat contentious perhaps, but generally the idea is that it's a web page that has "taken all the right vitamins" so it can behave more like an app you installed from the app store. It starts as a normal tab in your browser and if it has all the right stuff the browser will prompt visitors if they'd like to "Add to Homescreen", which up to this point has largely equated to being a glorified bookmark.

Monday of last week I was all excited. I had just gotten the green light to start prototyping a new Progressive Web App for a client I've been working with.

I pulled out an older Android phone that I keep around for development. Then I also got my sleek, new, shiny iPhone 6s out of my pocket, with its smooth curves and speedy OS. But as I looked at my iPhone I was kind of bummed out.

Whether I like it or not, not everyone using my web apps will be running iOS 9 on an iPhone 6S or a Nexus 6P and connecting via super-speedy wifi.

The reality is often anything but that. 3G connections and older hardware is often the norm. Google reports that there are 1.4 billion active Android users. Many of them, will no doubt, be running less-than-top-of-the-line hardware.

The term “reactive programming” may sound a bit cryptic, but if you’ve ever used a spreadsheet, you’re already quite familiar with the concept.

When you’re simply viewing a spreadsheet, each cell isn’t necessarily showing you what was actually typed into the cell. Sure, some cells may contain simple values, but others actually contain formulas.