“We build tools to automate tasks.
We automate tasks to avoid manual work.
We avoid manual work… so we can build more tools.”
In the world of software development, this loop feels all too familiar.
Every developer has felt it:
So I ask:
Are we coding to avoid coding?
It’s a tongue-in-cheek question, but it captures a very real dynamic in the evolution of the web.
Let’s take a quick tour of how we’ve “simplified” front-end development over time:
Simple, semantic, static. The web in its rawest form.
Suddenly, we could manipulate the DOM, validate forms, and respond to events.
jQuery made JS tolerable and concise. $() was freedom.
Component-based, declarative, and dynamic. We stopped “hacking the DOM” and started thinking in state.
Routing, SSR, API routes, SEO — all baked in. Developer experience took center stage.
Now, we type:
“Create a pricing section with a testimonial slider and a CTA.”
And boom — production-ready UI components.
Are we even coding anymore?
There’s nothing wrong with abstraction — quite the opposite. Abstractions allow us to move faster, reduce bugs, and focus on outcomes. But each new layer also comes with:
And while we remove old pain points, we invent new ones.
So, again:
Are we really coding to avoid coding?
Or are we just changing the shape of the code?
“We’re not trying to avoid coding.
We’re trying to get closer to what matters — solving problems.”
So if a tool helps you get there faster, great.
But never forget why you started coding in the first place.
Let’s not just code to avoid coding.
Let’s code to create with intention.
Are you excited by how fast things are moving?
Or do you sometimes miss the simplicity of the “View Source” era?
I’d love to hear your take.