=Why=
* Minimize size of front-end assets sent to the client
* Reduce manual configuration of dependencies of modules to avoid misconfiguration and non-deterministic JS failures
* Being able to run front-end unit tests fast and quickly in a node environment, and enable the possibility of doing TDD
* Enable the possibility of consuming JS libraries from npm
* Precompile templates instead of sending a compiler and text templates and compiling them in client browsers
=What=
Use a node based asset bundler to realize the frontend dependency graph and bundle it, instead of relying on manual configuration in a JSON file.
Main choices because of usage and support are `browserify` and `webpack`. Both being good choices, `webpack` has been chosen because of it's batteries-included approach.
=How=
* [] Introduce webpack bundler
* [] JS file loading with common.js
* [] Minification using latest npm's uglify
* [] Introduce CI check to check that built assets have been commited properly
* [] Move JS assets to the webpack pipeline
* [] Move mustache templates to the webpack pipeline
* [] Precompile templates at build time instead of at runtime
* [] Introduce node based unit test runner and configure npm scripts
* [] Migrate cards unit tests to run on `npm test`
=Post-implementation work=
* [] Enumerate bundle sizes pre-post migration, configuration simplification, test workflow improvements
* [] Create epic for folding cards work and workflow into related-articles extension.