Remember when the internet felt magical? When you could find what you needed without wading through a swamp of cookie banners, newsletter popups, and autoplaying videos?
That internet is dead. And we killed it.
As developers, we've turned the web into a hostile wasteland where users are the product, performance is an afterthought, and finding actual information feels like archaeology.
The same platform that democratized knowledge now feels like walking through a mall where every store has a pushy salesperson blocking the entrance.
Here's the uncomfortable truth: we're not just witnessing the death of the useful internet — we're the ones holding the shovel.
The modern web didn't break overnight. It's death by a thousand JavaScript frameworks.
In the early 2000s, websites were documents. They loaded fast because they were simple.
A blog post was HTML and CSS, maybe a sprinkle of JavaScript for comments. Google's homepage was 14KB.
Sites respected your bandwidth because many users still had dial-up.
Then Web 2.0 arrived with a promise: make the web interactive. AJAX let us update pages without reloading.
jQuery made JavaScript bearable. We could build real applications in the browser.
But somewhere between "enhance user experience" and "maximize engagement metrics," we lost the plot.
The average webpage weight ballooned from 500KB in 2010 to over 2.2MB today. That's a 340% increase for fundamentally the same content — text and images.
The New York Times homepage now loads 15MB of data and makes over 900 requests. For a newspaper.
We didn't just add features. We added tracking scripts, third-party widgets, video ads, consent managers, chat bubbles, notification prompts, and newsletter popups.
Each "improvement" made sense in isolation. Together, they created a monster.
The business model shifted too. When advertising became the primary revenue stream, user experience became secondary to engagement metrics.
Dark patterns evolved from edge cases to standard practice. Cookie banners aren't about privacy — they're about legal compliance while making rejection so difficult that users just click "accept all."
Visit any recipe website today. You want ingredients and instructions.
What you get:
Three paragraphs about the author's childhood. A newsletter popup at 10% scroll.
A video ad that follows you down the page. Cookie consent that requires seventeen clicks to reject.
Social sharing buttons that load 400KB of JavaScript. Comments powered by Facebook (another 500KB).
Related articles that shift the layout just as you're about to click something.
The actual recipe? Buried somewhere in the middle, interrupted by more ads.
This isn't limited to recipe blogs. News sites autoplay videos that have nothing to do with the article.
E-commerce sites hide the price until you've added items to cart. Search results are 80% ads disguised as organic results.
Google, once the librarian of the internet, now feels more like a shopping mall directory.
The first page of results for any commercial query is ads, Google's own properties, and SEO-optimized content farms.
Actual human-written expertise is buried on page three.
Reddit added value by being the last place for authentic human discussions. So naturally, they locked their API, killed third-party apps, and are now selling our conversations to train AI models.
Twitter — sorry, X — requires login to read threads. Instagram hides posts behind login walls.
LinkedIn turned professional networking into engagement farming. Every platform is a walled garden optimizing for time-on-site rather than user value.
The modern web stack is insane. Here's what happens when you load a typical news article:
First, the HTML loads. But it's not really HTML — it's a skeleton that loads JavaScript.
That JavaScript pulls in React, which renders a virtual DOM. The virtual DOM loads components.
Components fetch data from APIs. APIs return JSON that gets parsed into state management.
State management triggers re-renders.
Meanwhile, analytics scripts are firing: Google Analytics, Segment, Mixpanel, Hotjar, FullStory. Each one loads its own library.
Each library makes its own requests.
Ad networks join the party: Google Ads, Facebook Pixel, Amazon Associates.
They need to check your cookies, match your identity, run auctions for ad space, load creative assets, track viewability, and report impressions.
Then come the third-party widgets: Disqus for comments, AddThis for sharing, Intercom for support, OptinMonster for email capture. Each widget is an iframe with its own JavaScript context.
Don't forget about fonts. We can't use system fonts anymore — we need custom web fonts.
That's four more HTTP requests and 200KB of data before text is readable.
The result? A 500-word article requires 5MB of data transfer, 70 JavaScript files, and 2,000 DOM nodes.
The Time to Interactive is 15 seconds on a good connection. On mobile?
Forget it.
We've built a Rube Goldberg machine to display text and images.
We're not evil. We're responding to incentives.
Product managers want engagement metrics. Adding infinite scroll increases time-on-site by 40%.
Ship it.
Marketing wants email captures. Adding an exit-intent popup increases newsletter signups by 300%.
Ship it.
Legal wants compliance. Adding a cookie banner avoids GDPR fines.
Ship it.
Executives want revenue. Adding another ad slot increases RPM by 15%.
Ship it.
Each decision makes sense in isolation. Nobody asks: "What's the cumulative effect on user experience?"
There's also resume-driven development. Nobody gets promoted for removing JavaScript.
You get promoted for implementing the new React framework, adding real-time features, or building a personalization engine. Complexity equals career advancement.
The tools encourage bloat too. npm makes it trivial to add dependencies.
Why write a date formatter when you can import moment.js? Why handle forms manually when you can use Formik?
Each dependency has dependencies. Before you know it, your blog needs 200 packages to render markdown.
Framework churn doesn't help.
Teams rewrite perfectly functional sites in the latest framework because the old one is "outdated." The rewrite adds features nobody asked for while breaking things that worked fine.
This dysfunction isn't free. We're all paying for it.
Users pay with their time. The average American spends 7 hours daily online.
How much of that is waiting for pages to load, closing popups, or hunting for the actual content?
We pay with our privacy. Those tracking scripts aren't just counting page views.
They're building behavioral profiles, tracking us across sites, and selling our data to whoever's buying.
We pay with our attention. The web trained us to expect interruption.
We can't read an article without checking notifications, dismissing banners, or getting distracted by "related content."
We pay with accessibility. Screen readers can't parse JavaScript-rendered content.
Keyboard navigation breaks with custom dropdowns. Users with slow connections are simply locked out.
The environmental cost is staggering too. Data centers consume 1% of global electricity.
Every unnecessary JavaScript bundle, every autoplay video, every tracking pixel burns actual carbon. We're literally heating the planet to show ads nobody wants.
Small businesses pay perhaps the highest price. They can't compete with enterprise SEO budgets or sophisticated ad targeting.
The open web that once let anyone publish and be found is now pay-to-play.
Not everyone accepts this dystopia.
Ad blockers are now running on 42% of devices. That's not tech-savvy users — that's mainstream adoption.
When nearly half your audience actively blocks your revenue model, maybe the model is broken.
Alternative browsers are gaining ground. Brave blocks tracking by default.
Firefox is adding privacy features. Even Chrome, conflicted as Google is, is killing third-party cookies.
The IndieWeb movement is growing. Developers are returning to personal blogs, RSS feeds, and webmentions.
They're building the web they want to use.
Static site generators are having a moment. Eleventy, Hugo, and Astro let you build fast, simple sites.
No client-side JavaScript required. It's a return to documents that just work.
Some companies are succeeding by doing less. Notion's website is clean and fast.
Linear's homepage loads instantly. Basecamp famously serves HTML with minimal JavaScript.
These aren't struggling startups — they're successful companies proving you don't need bloat to build a business.
The EU's Digital Markets Act and Digital Services Act are forcing changes. Apple's App Tracking Transparency decimated Facebook's ad revenue.
California's CPRA adds real penalties for privacy violations.
Users are voting with their feet too. Paid newsletters are thriving because people will pay to avoid the ad-supported web.
The success of Substack, Ghost, and ConvertKit shows there's hunger for a better model.
The current web is unsustainable. Something has to give.
We'll likely see a split: a corporate web and a human web.
The corporate web will get worse. More ads, more tracking, more dark patterns.
It'll be dominated by AI-generated content optimized for robots, not readers. Big Tech will create increasingly elaborate mousetraps to capture and monetize attention.
But the human web will grow in response. More developers will build simple, fast, respectful sites.
More users will pay for quality content. More communities will form around shared interests rather than engagement algorithms.
Regulation will accelerate this split. Privacy laws will make surveillance capitalism more expensive.
Antitrust enforcement will limit Big Tech's ability to force their model on everyone.
AI will paradoxically help both sides. It'll flood the corporate web with generated garbage.
But it'll also help small creators produce quality content without venture funding.
The tools will improve too. We're already seeing a backlash against complexity.
The next generation of frameworks will prioritize performance and simplicity. The pendulum is swinging back toward the document web.
As developers, we have more power than we realize. Every technical decision is also an ethical decision.
Choose boring technology. Your blog doesn't need React.
Your marketing site doesn't need a GraphQL API. Most sites can be static HTML with a sprinkle of vanilla JavaScript.
Question every dependency. Do you really need that date library?
That CSS framework? That analytics suite?
Each dependency is future technical debt.
Measure what matters. Not engagement metrics — actual user success.
How fast does the page load? How easy is it to find information?
Can users accomplish their goals without fighting your interface?
Respect users by default. Don't interrupt them with popups.
Don't autoplay videos. Don't make them create accounts.
Don't sell their data. These aren't radical ideas — they used to be common courtesy.
Build for the long term. The web is littered with dead platforms and broken links.
When you build, ask: "Will this still work in 10 years?"
The internet doesn't have to be unusable. We broke it, which means we can fix it.
It starts with remembering why we became developers in the first place: to build things that help people.
The web we want still exists. It's just buried under the web we built.
---
Hey friends, thanks heaps for reading this one! 🙏
If it resonated, sparked an idea, or just made you nod along — I'd be genuinely stoked if you'd show some love. A clap on Medium or a like on Substack helps these pieces reach more people (and keeps this little writing habit going).
→ Pythonpom on Medium ← follow, clap, or just browse more!
→ Pominaus on Substack ← like, restack, or subscribe!
Zero pressure, but if you're in a generous mood and fancy buying me a virtual coffee to fuel the next late-night draft ☕, you can do that here: Buy Me a Coffee — your support (big or tiny) means the world.
Appreciate you taking the time. Let's keep chatting about tech, life hacks, and whatever comes next! ❤️