With the web today, there are so many things you must consider when building a website, let alone a web application! Is the site responsive or mobile friendly? Is the JavaScript minified for a smaller download to the client’s device? Do you need to implement cache busting?

Does the site still perform well across a slow connection or does it have graceful fall backs? Or even still, will the site perform in an offline mode?

These are just a small fraction of the topics to consider when developing a web application, and—for better or worse—the things that you have control over. One thing you will not have control over, however, is the client’s choice of web browser.

Not all browsers were created equal

Every modern browser is composed of roughly six components:

  • The user interface – this is where the client interacts with the browser. Think using the address bar, clicking on links, back and forward navigation.
  • The browser engine – a kind of middle man between the user’s actions and what the browser should do next.
  • The rendering engine – responsible for parsing and displaying HTML pages and any styles correctly on screen.
  • A networking component – this is what makes the calls to get those HTML pages.
  • A JavaScript interpreter – this runs our JavaScript code on the client’s machine – this is important for a web application.
  • And finally, some type of data storage – is essential for storing information on the client’s machine – like cookies, for example (not the kind you eat, though, sadly).

Every browser on the market today can have its own version of each one of the above components. Phew—that’s a lot of different functionality combinations! You can see why every browser is slightly different. Or why some browsers can support certain features and others do not. Or why some are faster at certain things and slower at others. It all depends on what’s under the hood.

A bad apple can spoil the bunch

With all these choices and combinations, it can be difficult for developers to come up with solutions that will perform 100% consistently across all browsers. This can be disappointing when developers want to use the latest and greatest technology or feature that is not supported across all browsers.

What’s a developer to do: sacrifice designing the best solution just to always be tied to the lowest common denominator of browsers?

Know your client base

The best solution to the browser conundrum is to know what browser your clients are using. With tools like Google Analytics or Microsoft App Insights it’s easy to collect enough information to determine what percentage of your clients are using browser ‘X’.

If 98% of your client base is using Chrome, for example, it may not be worth spending the man hours (or sacrificing great design) to optimize your site for the other 2% of browsers being used.

Information like this also gives you the option to target your clients and suggest a browser for the best user experience on your site. This is not a cure-all. You will still run into cases when a client will need a fix or a solution for a certain browser. Still, with more knowledge and a targeted approach, these cases can definitely be minimized.