Pains
204 pains collected
Task planning and work coordination
526% 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.
Mandatory file-based routing causing accidental code bundling
5The 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.
App Router transition introduces unnecessary complexity compared to Pages Router
5The 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.
Middleware limitations with single file requirement and complex chaining
5Next.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.
Free GitHub Actions hosted runners are significantly slower than local infrastructure
5Free 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.
Complex and Steep Learning Curve for Type System
5TypeScript'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.
Monitoring and logging visibility gaps
5Container users need better monitoring/logging tools (16% request improvement), but existing solutions don't provide adequate observability for non-local distributed environments.
Internationalization challenges and lack of built-in i18n support
5Next.js lacks comprehensive built-in internationalization support, making multi-language applications challenging to implement. Developers must rely on third-party solutions or complex workarounds.
Missing Type Support for Third-Party Libraries
5Many 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.
Outdated and Lagging Documentation
5Docker'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.
Confusing and Intimidating tsconfig.json Configuration
5The 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.
Multiple ingress controller management and networking complexity
560% of respondents employ multiple ingress controllers, adding operational complexity and potential inconsistency in application networking configuration and management across clusters.
Framework perceived as overengineered for complexity added
5Many 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.
TypeScript type system complexity leads to overuse and poor patterns
5TypeScript'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.
Lack of Tooling Suggestions for Type Definitions
4TypeScript 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.
Missing built-in linear algebra functionality
4Python lacks built-in linear algebra functionality, requiring developers to rely on external libraries like NumPy for mathematical operations.
Poor Docker documentation with unrealistic tutorials
4Docker 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.
Unclear distinction between Docker bind mounts and volumes
4Docker 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.
TypeScript's future in JavaScript depends on unfinished type-annotations proposal
4TypeScript'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.
Docker Vendor Lock-In and Proprietary Dockerfile Syntax
4Developers 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.
Runtime type checking overhead without compile-time guarantees
4Libraries 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.
Python unsuitable for desktop application development
4While Python can create desktop applications, it is inappropriate for this use case compared to languages designed specifically for desktop development.
Compilation overhead and build time impact in large TypeScript projects
4TypeScript 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.
Gap between tooling needs and actual bottlenecks
4Developers 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.