Pains

2403 pains collected

Category:
Tech:
Severity:

Email authentication limits and user lockout risks

6

Supabase's email authentication has undocumented limits that can leave users unable to authenticate, creating support headaches and potential user experience issues.

authSupabase

High disk space usage

6

High disk space consumption is a significant non-trivial problem affecting Rust developers' productivity. 22.24% of developers report it as a big problem limiting their work.

storageRust

Lack of observability and monitoring dashboards in NGINX

6

NGINX lacks a holistic view of traffic flows and comprehensive KPI metrics. There is no interactive dashboard to help understand transaction endpoints or application-level troubleshooting, making performance analysis and debugging difficult.

monitoringNGINX

Testing Complexity and Brittleness

6

React developers face challenges with complex component testing, time-consuming integration tests, brittle test maintenance, mock complexity, and gaps in test coverage. Testing infrastructure is difficult to set up and maintain effectively.

testingReact

Azure DevOps Server scalability and infrastructure overhead

6

Azure DevOps Server requires significant infrastructure setup and operational overhead, particularly for smaller teams. It has limited scalability for large projects compared to Azure DevOps Services (cloud version).

deployAzure DevOpsAzure DevOps Server

Complex NGINX configuration with steep learning curve

6

NGINX requires deep knowledge of Linux-based terminology and involves complex configuration steps that are difficult to simplify. This high barrier to entry reduces usability and requires significant human involvement for proper setup.

configNGINX

TypeScript type system cannot model intermediate state mutations in imperative loops

6

TypeScript's type system assumes variables have exactly one type and cannot change types. When building objects iteratively through mutations in for loops, TypeScript cannot model these intermediate state transitions, making it impossible to properly type such functions without workarounds like 'as' assertions.

compatibilityTypeScript

Data storage and transfer cost management

6

Data storage and transit costs consume a significant portion of cloud expenditures. Understanding and optimizing these costs is complex due to variable pricing based on location, capacity, and transfer patterns.

configAzure

Unpredictable and difficult cost management

6

DynamoDB's on-demand pricing model can lead to unexpected expenses with variable workloads. Provisioned mode requires careful capacity planning to avoid throttling or waste, and cost monitoring is complex without proper tooling configuration.

configDynamoDBAWS

Edge functions performance bottlenecks

6

Supabase edge functions introduce performance degradation that can become a bottleneck in production applications, limiting their practical utility for performance-critical operations.

performanceSupabaseEdge Functions

Query and index optimization challenges at scale

6

As MongoDB databases grow in size and complexity, queries become slow and inefficient. Developers must fine-tune queries, indexes, and database architecture to ensure optimal performance, but this is time-consuming and error-prone.

performanceMongoDB

High CPU usage during SSL-heavy traffic and complex rewrites

6

Nginx experiences CPU saturation during SSL-heavy traffic, complex rewrite rules, or inefficient buffering, causing throughput drops and slowed request processing. Requires optimization of TLS sessions, cipher suites, and regex patterns.

performanceNginxSSL/TLS

No structured development guidelines for database version control

6

Supabase lacks guides for structured database development. Developers must create workarounds like master GitHub repos of SQL commands and custom documentation, making collaboration and migration difficult.

dxSupabasePostgreSQL

Nginx worker configuration tuning is not automatic and impacts performance

6

Default nginx worker settings (1 worker process, 768 connections) are often suboptimal for production multi-core systems. Developers must manually configure worker_processes, worker_rlimit_nofile, worker_connections, and event handling mechanisms, with incorrect settings leading to poor performance under load.

confignginx

High latency and slow response times from performance bottlenecks

6

Nginx latency issues cause slow page loads and delayed API calls, often stemming from slow upstream servers, blocked workers, heavy file operations, or misconfigured timeout parameters. Diagnosing root cause requires comparing Nginx request time with backend response time.

performanceNginx

Row-Level Security policies difficult to debug and manage

6

Debugging RLS policies requires diving into the Supabase dashboard, making them disconnected from the main codebase. Complex policies are time-consuming to debug and misconfiguration can expose data.

configSupabasePostgreSQL RLS

API documentation and collaboration fragmentation

6

93% of teams report challenges with inconsistent documentation, duplicated work, and difficulty discovering existing APIs. Specs, conversations, tests, and examples scattered across multiple tools create tribal knowledge dependencies, with 69% spending 10+ hours weekly on API-related tasks.

docsAPI documentationcollaboration tools

Difficult integration with CI/CD workflows and automation tools

6

Integrating Nginx into CI/CD pipelines requires manual scripting or specialized tools like Jenkins and GitLab CI/CD. The project lacks built-in automation for service reloading and configuration updates, necessitating third-party tools like Ansible or Terraform.

deployNginxCI/CDJenkins+3

Unnecessary complexity overhead for small projects and simple use cases

6

GraphQL adds significant complexity to projects through schema management, type system duplication, tooling, and infrastructure costs. This overhead is not justified for small projects, simple APIs, or cases where use cases are well-known and static. 90% of typical API use cases can be handled by simpler alternatives.

architectureGraphQL

Query fragmentation and lack of consistency across components

6

Different components define their own ad hoc query shapes, resulting in fragmented chaos where the same resource is requested in dozens of slightly different structures. This defeats GraphQL's promise of reusability and creates brittle client logic with no unified contract.

dxGraphQL

Limited framework support and difficult integration outside Next.js

6

Clerk is tightly coupled to Next.js with pre-built UI components optimized for that framework. Integration with other frameworks or backend authentication scenarios is difficult and less well-supported.

compatibilityClerkNext.js

Lack of support for associative arrays and dynamic key structures

6

GraphQL does not support map/table/dictionary return types or associative arrays keyed by dynamic values. Developers must use workarounds like custom scalars, key-value object arrays, or pre-transformed responses, adding unnecessary complexity to both schema and client logic.

architectureGraphQL

Complex and repetitive filtering input type design

6

Implementing flexible filtering in GraphQL requires awkward nested input types and bespoke filter designs for AND/OR logic, range filters, and custom operators. Filter inputs balloon in complexity with duplicate logic across different entity types and no cross-schema reuse.

architectureGraphQL

TypeScript does not provide the type safety it claims to offer

6

TypeScript's type system provides a false sense of security. The transpiler cannot truly know type information due to JavaScript's dynamic nature, and empirical research shows TypeScript code contains equal or more bugs than JavaScript code, with longer bug fix times.

dxTypeScriptJavaScript