Pains
2403 pains collected
Mutation Complexity with Multiple Entities
6Handling mutations that involve multiple entities and relationships is complex and difficult. Managing data consistency across mutations poses significant challenges for developers.
JSONB data type updates require fetch-spread-repost pattern
6Prisma lacks native support for updating JSONB fields in PostgreSQL/MySQL, requiring developers to fetch the entire object, spread it, modify it, and re-post it instead of using direct partial updates.
Missing or incomplete model metadata prevents inference UI functionality
6Models lacking required metadata fields like `chat_template`, `eos_token`, `pipeline_tag`, and `library_name` may fail to work with Hugging Face's inference interface, missing the 'Use this model' button and auto-detection filters, or produce malformed outputs like infinite generation.
High and Unpredictable Transaction Fees
6Stripe's transaction fees (2.9% + £0.30) are competitive but not the lowest in the industry. Additional charges for chargebacks, international transactions, and premium support accumulate unexpectedly, making it difficult to forecast expenses and maintain sustainable profit margins.
High number of unbundled network requests causing slow page loads
6Exceptionally large codebases experience slow page loads due to the high number of unbundled network requests in ESM-based development, requiring network overhead optimization.
Testing GraphQL Queries and Mutations
6Writing tests for GraphQL queries and mutations is challenging and time-consuming, requiring mocking of multiple data scenarios. Testing complexity increases significantly with complex query structures.
AWS does not provide 'fix this' automation for IAM permission errors
6When IAM permission errors occur, developers must manually add permissions rather than having AWS automatically generate the required policy. A simple 'Fix this' button that generates required IAM records would dramatically reduce friction, but this feature doesn't exist.
Limited Cross-Platform Support
6Although .NET Core improved cross-platform capabilities, C# was originally Windows-centric, and achieving true cross-platform compatibility (macOS, Linux) without code rewrites remains a significant challenge.
BackgroundTasks Lack Reliability for Critical Work
6FastAPI's BackgroundTasks cannot guarantee delivery or retries, and if the FastAPI process crashes before a task completes, that task will be lost. This is unsuitable for work requiring guaranteed execution.
Error Handling in Resolvers
6Developers often forget to properly handle errors in GraphQL resolvers, returning null values instead of throwing errors. This prevents clients from knowing when something goes wrong.
Large application size limiting adoption in emerging markets
6Flutter apps have significantly larger minimum APK/IPA file sizes compared to native apps, even with optimization efforts. This is a critical blocker for emerging markets and devices with limited storage where download speed and app size are important factors.
API versioning breaks integrations frequently
6Stripe frequently updates its API and deprecates features, causing 25% of developers to face integration disruptions due to outdated API practices. Staying informed on changes is labor-intensive.
Beginner Unfriendliness and Steep Learning Curve
6Supabase's complexity creates barriers for novice developers, compounded by limited community support and insufficient documentation tailored to beginners. The platform requires significant SQL and database knowledge to use effectively.
Limited database access for junior team members
6Junior developers have restricted access to databases, limiting their ability to work independently and requiring senior developer involvement for routine tasks.
Lack of built-in health check infrastructure for production deployments
6FastAPI does not provide built-in health check endpoints, requiring manual implementation. Missing health checks in production deployments cause cascading failures during infrastructure issues or deployments.
Missing Production-Ready Features Without Maintenance Attention
6Several important features needed for production usage (e.g., hiding attributes from Swagger, hiding internal documentation from Pydantic docstrings) have had PRs submitted but remain unmerged without maintainer feedback or response.
Limited email preview and cross-client testing capabilities
6Resend lacks native support for email preview testing across different email clients, A/B testing, and has no built-in inbox placement testing or blocklist monitoring. Teams must handle these critical deliverability checks outside the platform.
Memoization Complexity and Mental Overhead
6Knowing when to use useMemo, useCallback, and React.memo adds significant mental overhead for developers. This complexity stems from React's component-based reactivity model requiring the entire component function to re-run on every update, forcing developers to manually optimize with memoization.
Asynchronous API Call Handling
6Developers struggle with managing asynchronous actions when making multiple Stripe API calls. Dealing with callbacks and promises becomes tricky when coordinating responses from different endpoints, particularly around error handling and retry logic.
Subpar debugging experience
6Rust's debugging story represents a significant non-trivial problem for developers, with 19.90% reporting it as a big problem. This issue slipped from 2nd to 4th place in priority ranking from 2024 to 2025.
Insufficient documentation for application handoffs and legacy code recovery
6When inheriting applications (whether from contractors or former team members), there is often no documentation about dependencies, installation requirements, database contents, or what components exist. This makes it impossible to know if legacy code can even run without significant reverse engineering.
Framework-Centric Architecture
6When FastAPI constructs become the center of the codebase, business logic becomes tightly coupled to the framework, making it hard to reuse, test independently, and maintain long-term flexibility.
Fat Routers with Mixed Concerns
6FastAPI routers accumulate validation logic, business rules, database queries, and external API calls, becoming mini-applications that are difficult to test, refactor, and maintain.
Aspirational support for background job processing in serverless architectures
6Resend does not adequately serve serverless and background job-based email workflows that are common in modern technology stacks. Documentation and tooling for these patterns are unclear or insufficient.