Pains

2403 pains collected

Category:
Tech:
Severity:

Embedded logic in view templates creating untestable code

5

Developers often embed significant amounts of business logic directly into Rails view templates, resulting in code that is difficult to read and impossible to test.

dxRuby on Rails

Gap Between Marketing Claims and Development Reality

5

Flutter's rapid adoption has created overinflated expectations and marketing claims that don't align with day-to-day development reality. React Native maintains stronger position in enterprise due to JavaScript foundation and closer web development alignment.

dxFlutterReact Native

Separate projects required for each environment increases costs

5

Each staging or development environment counts as a separate project, doubling base costs for teams needing isolated environments. This creates cost multiplication for multi-environment setups.

configSupabase

Text style management lacks batch editing for repetitive updates

5

Figma requires designers to edit text style properties (like line height) individually across all styles, even when organized in groups. Updating a property across 60 text styles requires 60 separate edits instead of group-level batch operations, creating tedious, time-consuming, repetitive work.

dxFigma

Steeper Learning Curve for Web Developers

5

Flutter's approach to component architecture and state management differs significantly from React patterns, creating a substantially steeper learning curve for web developers transitioning to mobile. React Native's familiarity with established patterns makes it more accessible for JavaScript developers.

dxFlutterReact Native

Memory bloat and server resource consumption

5

Rails applications can suffer from memory bloat that negatively impacts server resources. Memory consumption issues can be difficult to diagnose without proper profiling tools.

performanceRuby on Railsmemory_profiler

Overwhelming number of gems and tools in Rails ecosystem

5

The abundance of gem choices and tools available for Rails makes it difficult for inexperienced developers to determine which ones to use, creating decision paralysis and potential for poor architectural choices.

ecosystemRuby on Railsdry-rbTrailblazer

WebAssembly support is incomplete

5

Go's WebAssembly (WASM) support remains half-baked compared to Rust and TypeScript, which dominate in the WASM development arena.

compatibilityGoWebAssembly

Bundling Prisma with Next.js Standalone mode is difficult

5

Integrating Prisma into Next.js applications using Standalone output mode requires non-obvious configuration and troubleshooting, adding complexity to builds and deployments.

buildPrismaNext.js

Missing foreign key support affects data integrity

5

Prisma allows defining relational databases without enforcing or requiring foreign keys, enabling poor database design patterns that don't leverage relational database strengths, particularly problematic for developers unfamiliar with relational concepts.

architecturePrisma

Incomplete documentation for advanced and enterprise-level use cases

5

Supabase documentation has significant gaps for advanced, enterprise-level use cases, limiting developers' ability to fully leverage the platform for complex requirements and scaling scenarios.

docsSupabase

postinstall script pnpm integration issue

5

The `pnpm install` command does not run the Prisma generate postinstall script, preventing automatic client generation when using pnpm as the package manager.

compatibilityPrismapnpm

Limited Ruby developer talent pool makes recruitment difficult

5

Finding experienced Ruby developers is significantly harder than recruiting JavaScript or Python talent, especially outside startup-concentrated cities. This makes team scaling and hiring more challenging for Ruby projects.

ecosystemRuby

Expensive hosting costs for Rails applications

5

Rails hosting is notably more expensive compared to PHP hosting alternatives, creating higher operational costs for Rails-based projects.

deployRuby on Rails

Automatic .env file removal breaks backward compatibility

5

Prisma 7 will remove automatic .env file loading, requiring migration of environment configuration management. While justified to separate concerns, this is a breaking change requiring careful migration planning.

migrationPrisma

No nested create-many or programmatic delete API

5

Prisma lacks support for nested create-many operations and programmatic nested deletes, limiting the ability to perform complex nested mutations without multiple separate queries.

architecturePrisma

Raw SQL lacks type safety for result sets

5

Raw SQL queries require manual casting of result sets and hoping developers remember correct column types. Type information is lost, increasing risk of runtime errors.

compatibilitySQL

MCP describe_table_schema fails with CamelCase table names

5

The Neon Model Context Protocol (MCP) describe_table_schema function does not work correctly with tables using CamelCase naming conventions, limiting schema introspection capabilities.

compatibilityNeonMCP

Knex lack of relationship handling requires manual queries

5

Knex is a query builder without built-in relationship handling. Fetching related records requires multiple manual queries or custom code, creating friction compared to ORMs with built-in relationship support.

dxKnex

Networked storage introduces latency and performance challenges

5

Neon's re-architected PostgreSQL separates compute and storage into a networked system. This architectural change introduces new performance and latency challenges that developers must understand and mitigate compared to traditional monolithic PostgreSQL.

architectureNeonPostgreSQLdistributed systems

Single-region deployment limits latency

5

Neon projects are limited to a single region, which may not meet global application latency requirements and forces developers to choose between regional proximity and using Neon.

architectureNeon

Long-lived branches in Terraform repos violate infrastructure best practices

5

Unlike application code, infrastructure can only have one version deployed at a time. Keeping multiple long-lived branches in a Terraform repository is not common practice, limiting collaboration models and creating merge complexity.

dxTerraform

No built-in drag-and-drop email template editor

5

Resend lacks a visual email builder or drag-and-drop template editor, requiring all emails to be created in code using raw HTML or markdown. This is a significant limitation for non-technical users, marketers, or teams that need rapid template iteration without developer involvement.

dxResend

Account approval friction and slow onboarding for enterprise features

5

Resend enforces a 2-day account approval process before developers can send their first email. Additionally, advanced features and white-glove support require contacting sales, creating friction for teams wanting to evaluate the platform independently.

onboardingResend