Pains

204 pains collected

Severity:

Task planning and work coordination

5

26% of developers struggle with task planning and resource allocation. Container users specifically need better tools for task planning (18%), yet existing solutions don't adequately address this need.

dxDocker

Mandatory file-based routing causing accidental code bundling

5

The requirement that each page must have a page.tsx file can be confusing and may inadvertently lead to server-only code being bundled into client bundles, creating security and performance issues.

architectureNext.js

App Router transition introduces unnecessary complexity compared to Pages Router

5

The transition from the Pages Router to the App Router has been controversial. Many developers found the Pages Router intuitive and straightforward, but the newer App Router introduces additional complexity that some argue is unnecessary for most applications.

migrationNext.js

Middleware limitations with single file requirement and complex chaining

5

Next.js middleware has significant limitations, including a single middleware file requirement and complex chaining patterns that make routing and request handling difficult compared to traditional frameworks.

architectureNext.js

Free GitHub Actions hosted runners are significantly slower than local infrastructure

5

Free GitHub-hosted runners perform 4-5x slower than comparable local hardware (e.g., i7-13700H mini-PC). This forces teams running Jenkins locally to accept longer build times (30 min to 40 min) even after parallelization, impacting developer velocity.

performanceGitHub Actions

Complex and Steep Learning Curve for Type System

5

TypeScript's typing system, including concepts like generics, utility types, and complex type inference, is difficult for developers to learn and use properly. The complexity of understanding advanced typing patterns creates a significant barrier to entry.

dxTypeScript

Monitoring and logging visibility gaps

5

Container users need better monitoring/logging tools (16% request improvement), but existing solutions don't provide adequate observability for non-local distributed environments.

monitoringDocker

Internationalization challenges and lack of built-in i18n support

5

Next.js lacks comprehensive built-in internationalization support, making multi-language applications challenging to implement. Developers must rely on third-party solutions or complex workarounds.

ecosystemNext.js

Missing Type Support for Third-Party Libraries

5

Many third-party JavaScript libraries lack proper TypeScript type definitions, forcing developers to either use `any` types or write their own type definitions. This creates friction when integrating external dependencies.

ecosystemTypeScript

Outdated and Lagging Documentation

5

Docker's documentation library doesn't keep pace with rapid releases and platform updates. Developers frequently struggle to find answers about changes in Docker until relevant documentation is finally available, creating frustration and delays.

docsDocker

Confusing and Intimidating tsconfig.json Configuration

5

The TypeScript configuration file has numerous options that are overwhelming and intimidating for developers to configure properly. This creates a barrier to correctly setting up TypeScript projects.

configTypeScript

Multiple ingress controller management and networking complexity

5

60% of respondents employ multiple ingress controllers, adding operational complexity and potential inconsistency in application networking configuration and management across clusters.

configKubernetes

Framework perceived as overengineered for complexity added

5

Many developers perceive Next.js as overengineered, adding unnecessary complexity without proportional benefits. The framework's architectural decisions and accumulated features create bloat that doesn't serve most use cases.

architectureNext.js

TypeScript type system complexity leads to overuse and poor patterns

5

TypeScript's extensive type features encourage developers to overuse strict mode, union types, type assertions, and complex type definitions, which actually increase code complexity without reducing bugs or improving readability. This represents a fundamental DX problem where the language design incentivizes anti-patterns.

dxTypeScript

Lack of Tooling Suggestions for Type Definitions

4

TypeScript tooling never suggests how to type something properly, unlike other typed languages such as ReasonML and Flow. Developers must manually hunt down and write correct type definitions, which is time-consuming and error-prone.

docsTypeScript

Missing built-in linear algebra functionality

4

Python lacks built-in linear algebra functionality, requiring developers to rely on external libraries like NumPy for mathematical operations.

ecosystemPythonNumPy

Poor Docker documentation with unrealistic tutorials

4

Docker tutorials and documentation either assume users are power users with deep knowledge or are so trivial that they don't represent real-world solutions, making them essentially useless for practical development scenarios.

docsDocker

Unclear distinction between Docker bind mounts and volumes

4

Docker documentation and syntax make it difficult to distinguish between bind mounts and volumes. Declaring a volumes entry in docker-compose.yml provides no clear indication whether a volume or bind mount is being created, leading to configuration confusion.

docsDockerdocker-compose

TypeScript's future in JavaScript depends on unfinished type-annotations proposal

4

TypeScript's long-term viability depends on TC39's type-annotations proposal, which faces significant consensus issues within the committee itself. The proposal would only treat annotations as comments with no enforcement, leaving TypeScript's theoretical future as a superset uncertain.

architectureTypeScriptECMAScript

Docker Vendor Lock-In and Proprietary Dockerfile Syntax

4

Developers fear vendor lock-in with Docker's proprietary toolchain. While Dockerfile syntax is not governed by open standards, the OCI image and runtime specifications provide alternatives. Developers increasingly prefer solutions aligned with open standards to avoid single-vendor dependency and ensure long-term portability.

compatibilityDocker

Runtime type checking overhead without compile-time guarantees

4

Libraries that provide runtime type checking in Python add approximately 50% performance overhead while only catching errors at runtime. This creates a false trade-off where developers get stricter type checking but lose performance without gaining the compile-time safety of statically-typed languages.

performancePython

Python unsuitable for desktop application development

4

While Python can create desktop applications, it is inappropriate for this use case compared to languages designed specifically for desktop development.

ecosystemPython

Compilation overhead and build time impact in large TypeScript projects

4

TypeScript adds a compilation step to the development workflow that can take seconds or minutes in large projects, slowing down the development cycle. While modern tools like esbuild, swc, and Vite help reduce build times, this overhead remains a consideration for project setup.

buildTypeScriptesbuildswc+1

Gap between tooling needs and actual bottlenecks

4

Developers report needing better testing solutions and CI/CD tools, but these aren't always flagged as primary blockers. Unclear signal about where tool investment matters most.

dx