Talking Trash on Dependencies

Let's take this moment to reevaluate our relationship with frameworks and dependencies. The old version of this site was built with React purely to demonstrate that I can use React. Sure, these types of modern frameworks and tools are incredibly powerful if you're writing, say, a social media app, or something to manage a bank account. Components are great. CSS pre-processors are great. Extendable UI styles are great. There is an exponentially growing world of packages out there that you can import to quickly get whatever idea you have in your head out into the world, or to cut a team's workload in half on a large project.


First, this site doesn't need that type of power. I'm not dynamically loading components based on a horde of API calls to 18 different services. Using a modern front-end framework, I get all of the power, which I then do nothing with since I don't need it, and we all finally get to suffer the slower loading and rendering that these frameworks bring with them.

Second, relying on many dependencies makes you kind of lazy and dumb. There, I said it. I know, we aren't supposed to say this stuff in polite society, but it's true. You forget the minutiae involved in building a product or site from the actual ground up. You don't even know where the ground is anymore because it's built on a mountain of dependencies! You forget the intricate details and idiosyncrasies of working with vanilla JS, boring old CSS, and actually crafting your own html requests and state management. And, when you forget these things, you inevitably introduce bloat into everything you ever work on, because now you've introduced these dependencies into your brain. Every project becomes less of you programming and more of you remembering which dependency you need to import to do the thing you forgot how to program yourself.

Not cool.

Third, it's much easier to do weird, stylish, or experimental stuff when you aren't anchored down in a sea of dependencies. I had to drop some fun things I wanted to do because of the restrictive nature of React's rendering process, for instance. Cutting it out was an easy decision if you're like me and want to work on fun little experiences for your visitors. Maybe it's the game dev hobby stuff that's infected my brain, but the web has become predictable, blasé, boring. We've modularized our creativity and imagination in an effort to produce ever more templated content.

And there are countless other reasons, too. Potential security issues. Compatibility problems if you don't jump through some hoops. Dev console warnings and general spam because you forgot to set or unset a flag somewhere. Future changes to a package causing issues that can't be corrected without a significant amount of work on your part. Lack of control and ownership of the code your product is built with. And on and on and on.

Anyway, I've typed enough. There are no dependencies and no tracking here, an ode to Cory Doctorow's Pluralistic, perhaps. A return to a simpler time, when sites loaded many orders of magnitude faster, and when people weren't trying to divine metrics from the internet's version of chicken entrails that we call cookies.

(Don't tell the marketing department I said that. They'd probably like to keep their jobs, after all.)

Send me an email if you'd like to chat about something.

Posted on .