This strip first appeared in issue #226 of Linux (Pro) Magazine. It was heavily inspired by my day job as a web developer, when I moved to a new company that goes straight to “npm install” for almost everything – resulting in a list of dependencies as long as both your arms (and one belonging to a close friend) for even the simplest of websites.

I can’t help feeling that the beauty and simplicity of the web has got lost somewhere along the line. I can understand why people tend towards third party code, when the native HTML widgets of the web have barely evolved over the past 25 years. Why is it still so hard to apply a theme or style to form elements? Where are the native tabs and menus? Why can we still not create sortable tables without recourse to JavaScript?

Given the difficulty of producing a good looking UI across multiple browsers, it’s often easier to just include a module that claims to have solved the problem. But that quickly leads to one module for tabs, another for menus, a third for sortable tables – and each of those often includes multiple dependencies which, in turn, pull in dependencies of their own. Before you know it, that one little feature you’re adding to a site results in a stack of other people’s code: hopefully it’s all safe, secure and stable – otherwise dealing with the licensing implications could be the least of your worries!

Fork this comic (or just grab the source files) on GitHub

↓ Transcript
[Panel 1: Elvie's boss is talking to her]
Boss: How's the new web site coming on?

Elvie: There's one more thing to add, but I've found a single NodeJS package that will do all of the work.

Just a quick npm install…

[Panel 2: Same setting, but Elvie's desk is strewn with junk food and energy drinks]
Boss: It's been three days now. Where's my web site?

Elvie: Give me a break! I've still got to check the licenses for another 370 dependencies!