What developers actually struggle with

Last year, Paul Kinlan laid out the top developer pain points in 2021. I've been tracking the same signals over the following two quarters: the numbers have shifted a little, but the ranking is unchanged. In response, my colleague Kadir Topal and I sat down with more than 18 developers to understand what's behind those results and what it might take to fix them.

This is a small, qualitative sample. When I say "all" or "some" below, that refers to the people we spoke with, not the whole community. The picture they painted is diverse—some have been building for 25 years, some started in 2020. Some came through computer science degrees, others are self-taught. Many read browser release notes to stay current; others hear about new capabilities from coworkers. Some enjoy the challenge of complexity, others want to ship. Any fix has to fit that range of workflows.

Nobody builds on the bare platform

A consistent finding: every developer we interviewed uses a CMS or framework in production. WordPress, React, Bootstrap, Angular, and Tailwind all came up. None of them were shipping on the vanilla platform. That means frameworks and CMSs have to be part of the solution if we want to improve the underlying pain points.

Framework choice is also rarely a purely technical decision. Developers think about hiring—will we find people who know this stack?—and the weight of non-technical constraints shapes their options from the start.

The word "platform" itself turned out to mean something broader in practice than the classic definition. Developers treat the platform as the entire layer they build on: browsers, but also the CMS, frameworks, tooling, and polyfills underneath their code. Keeping that whole stack up to date is often the hardest part. We're going to have to revise the survey to split this into clearer, less ambiguous questions.

Similar ambiguity applies to "web standards." When we asked about keeping up with standards, many answers actually pointed at keeping up with best practices. That's a separate problem in disguise, and it needs its own survey questions.

Best practices are the hard part

Developers look for best practices mainly when they need to implement a specific use-case or pattern. They get answers from blog posts and StackOverflow, but they can't always tell whether what they find is current or actually the recommended approach. They would prefer an authoritative source they can trust to be up to date.

Keeping track of new features and APIs that unlock new use-cases is comparatively easy. What trips people up is when the platform changes behavior or adds a feature that invalidates established practice—suddenly the thing they'd been doing for years isn't the right way anymore.

Compatibility still ranks as one of the biggest challenges in most conversations. The community sees progress from Compat 2021 and Interop 2022, but no one treats browser compatibility as solved.

Polyfills are in use nearly everywhere, though often invisibly—Babel or the framework injects them automatically. For developers who manage polyfills directly, judging quality means checking NPM install counts and trusting the author's name. A few people mentioned actively dropping polyfills that became unnecessary after IE 11 support was retired.

Frameworks also create fragmentation. Several developers described being stuck on an old framework major version, unable to take advantage of newer features because an upgrade would be expensive to sell to their team or client.

Where that leaves us

Modern web development involves standards, browsers, libraries, polyfills, CMSs, frameworks, best practices, and tooling all at once. The variety is part of what makes the platform valuable, but today each developer has to figure out on their own how every piece fits together and what's compatible with what.

The question is whether we can create more clarity around how it all connects and get the pieces better aligned—without sacrificing that variety. It's a big problem and there's no obvious single starting point, but it's worth tackling one piece at a time.