
The GraphQL vs REST Debate is Over
Why the industry is abandoning generalized APIs in favor of highly specific Backend-for-Frontend (BFF) architectures.
The Illusion of Choice
For the past decade, backend engineering discourse has been dominated by a single, exhausting debate: REST vs. GraphQL.
REST purists argued that GraphQL was an over-engineered abomination that destroyed HTTP caching and created massive security vulnerabilities. GraphQL evangelists argued that REST was an archaic, inflexible relic that forced frontend developers to make thirty sequential round-trips just to render a user profile.
Both sides were technically correct. But strategically, the debate is over.
The winner is not REST, and the winner is not GraphQL. The winner is the Server-Driven UI paradigm, facilitated by highly specialized, purpose-built BFFs (Backend-for-Frontend).
"Stop treating your API as a generalized database proxy. Treat your API as the rendering engine for your frontend."
The Backend-for-Frontend (BFF)
The fundamental flaw in the REST vs. GraphQL debate is the assumption that a single, unified API layer can efficiently serve every possible client (web, iOS, Android, third-party integrations) while also maintaining strict decoupling from the database.
It cannot. A generalized API is a compromised API.
The modern architectural standard is the BFF pattern. Instead of exposing a massive GraphQL graph to the entire internet, or maintaining 500 bespoke REST endpoints, you build a specific, tightly coupled micro-backend for exactly one client.
The Web BFF only serves the Web application. The iOS BFF only serves the iOS application.
The Convergence
Inside these BFFs, the technology choice (REST or GraphQL) becomes an implementation detail rather than an architectural religion.
Many teams use GraphQL internally to aggregate data from various microservices, but then expose a highly optimized, strictly typed REST-like endpoint to the specific client. Other teams use tRPC to achieve end-to-end type safety without the overhead of a GraphQL parsing engine.
The debate is over because we stopped trying to solve frontend data-fetching problems with backend architectural silver bullets. The future of data fetching is highly coupled, perfectly typed, and entirely specific to the client consuming it.

Kai Cyrus
Founder, Builder, Investor