{"slug": "graphql", "name": "GraphQL", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 6, "commenters": 14, "warners": 6, "score": -0.218, "rising": -1.96, "first": "2025-11-05", "latest": "2026-04-22", "why": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 6, "neutral": 2, "compare": 1, "warn": 6}, "spark": [1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article.", "kind": "", "icon": true, "domain": "graphql.org", "github_repo": null, "official_url": "https://graphql.org", "pricing": "", "aliases": ["GraphQL"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 748001873, "item_id": 46750117, "url": "https://news.ycombinator.com/item?id=46750117", "by": "ktpsns", "date": "2026-01-24", "version": null, "stance": "recommend", "quote": "I am new to GraphQL and was amazed how it reduced the boilerplate", "excerpt": "Documentation and APIs can be both machine and human readable at the same time. For my impression, MCP is compating symptoms. In a well constructed system, there would be no need to write dedicated documentation or APIs for LLMs. By the way, I am new to GraphQL and was amazed how it reduced the boilerplate I had to write for REST in my (classical ORM) project. In a single-person team, this allows me to rapidly write ", "context": "", "use_case": "reducing API boilerplate", "switched_from": "", "story": "MCP is the New GraphQL"}, {"id": 743211633, "item_id": 46450727, "url": "https://news.ycombinator.com/item?id=46450727", "by": "teleforce", "date": "2025-12-31", "version": null, "stance": "recommend", "quote": "Definitely they should include D4M and GraphQL", "excerpt": "Definitely they should include D4M and GraphQL [1],[2]. Not only D4M can cater for structured relational data, it's also suitable for non-structured and sparse data in spreadsheet, matrices and graph. It's essentially a generalization of SQL but for all things data. There's also integration of D4M with SciDB [3]. [1] D4M: Dynamic Distributed Dimensional Data Model: https://d4m.mit.edu/ [2] GraphQL: https://graphql.or", "context": "", "use_case": "", "switched_from": "", "story": "Readings in Database Systems (5th Edition)"}, {"id": 740270128, "item_id": 46266883, "url": "https://news.ycombinator.com/item?id=46266883", "by": "andrewingram", "date": "2025-12-14", "version": null, "stance": "recommend", "quote": "I use GraphQL because I really want to use Relay.", "excerpt": "As someone who\u2019s used GraphQL since mid-2015, if you haven\u2019t used GraphQL with Relay you probably haven\u2019t experienced GraphQL in a way that truly exploits its strengths. I say probably because in the last ~year Apollo shipped functionality (fragment masking) that brings it closer. I stand by my oft-repeated statement that I don\u2019t use Relay because I need a React GraphQL client, I use GraphQL because I really want to ", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740258592, "item_id": 46266162, "url": "https://news.ycombinator.com/item?id=46266162", "by": "hn_throwaway_99", "date": "2025-12-14", "version": null, "stance": "recommend", "quote": "people tend to underestimate the value of having such clear contracts and guarantees that GraphQL enforces", "excerpt": "> Pruning the request and even the response is pretty trivial with zod. I agree with that, and when I'm in a \"typescript only\" ecosystem, I've switched to primarily using tRPC vs. GraphQL. Still, I think people tend to underestimate the value of having such clear contracts and guarantees that GraphQL enforces (not to mention it's whole ecosystem of tools), completely outside of any code you have to write. Yes, you ca", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 737899872, "item_id": 46118742, "url": "https://news.ycombinator.com/item?id=46118742", "by": "cheema33", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article.", "excerpt": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article. It offers type safety, efficiency and modern tooling. And it is also human readable. If you use good tooling, you can have a mutation change a variable type in the database and that type change is automatically reflected in the middleware/backend and the typescript UI code. Not only that libraries l", "context": "", "use_case": "APIs with type safety", "switched_from": "", "story": "Why I stopped using JSON for my APIs"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 765772785, "item_id": 47860799, "url": "https://news.ycombinator.com/item?id=47860799", "by": "teleforce", "date": "2026-04-22", "version": null, "stance": "warn", "quote": "It's beyond me why they didn't push forward for D4M but instead propose a limited GraphQL.", "excerpt": ">I'm personally of the opinion that \"graph databases\" should be relational databases; the relational model can subsume \"graph\" queries The MIT team which is also part of the team that proposed GraphQL already kind of solved this problem using D4M [1]. Essentially D4M is able to universally represent relational, graph, spreadsheet and matrices using the mathematic technique of associative algebra, they even wrote an e", "context": "", "use_case": "", "switched_from": "", "story": "A type-safe, realtime collaborative Graph Database in a CRDT"}, {"id": 740378912, "item_id": 46273682, "url": "https://news.ycombinator.com/item?id=46273682", "by": "0x696C6961", "date": "2025-12-15", "version": null, "stance": "warn", "quote": "Yeah I love it when a request turns into an N+1 query because the FE guys needed 1 more field.", "excerpt": "Yeah I love it when a request turns into an N+1 query because the FE guys needed 1 more field.", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740328256, "item_id": 46270516, "url": "https://news.ycombinator.com/item?id=46270516", "by": "rbalicki", "date": "2025-12-14", "version": null, "stance": "warn", "quote": "the absolutely silly distinction between unions and interfaces", "excerpt": "I would encourage you to write an educated person's critique of GraphQL, because OP's article + https://bessey.dev/blog/2024/05/24/why-im-over-graphql/ etc. suck up all of the oxygen, and no one hears about the genuine issues like that. (And don't forget lack of generics, no support for interfaces with no fields, lack of closed unions/interfaces, the absolutely silly distinction between unions and interfaces, the fac", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740286704, "item_id": 46267919, "url": "https://news.ycombinator.com/item?id=46267919", "by": "erkok", "date": "2025-12-14", "version": null, "stance": "warn", "quote": "it is often times overused", "excerpt": "I tend to agree with the author. GraphQL has its use cases, but it is often times overused and simplicity is sacrificed for perceived elegance or efficiency that is often times not needed. \"Pre-mature optimisation of root of all evil\" comes to mind when GraphQL is picked for efficiency gains that may never become a problem in the first place. Facebook invented GraphQL to solve a very specific problem back in 2012 for", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}]}], "who": [{"by": "iamsaitam", "context": "full-stack web developer, 10+ years experience", "url": "https://news.ycombinator.com/item?id=45821824", "date": "2025-11-05"}], "tags": [], "use_cases": ["reducing api boilerplate", "apis with type safety", "web development"], "compared": [{"slug": "trpc", "name": "tRPC", "co": 2, "switched_from": 0, "switched_to": 1}, {"slug": "next-js", "name": "Next.js", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "react", "name": "React", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46264704", "title": "GraphQL: The enterprise honeymoon is over", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=47846946", "title": "A type-safe, realtime collaborative Graph Database in a CRDT", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46748404", "title": "MCP is the New GraphQL", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46466074", "title": "Ask HN: Who is hiring? (January 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46440510", "title": "Readings in Database Systems (5th Edition)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46264491", "title": "Ask HN: What Are You Working On? (December 2025)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1, "warn": 1}, "2025-12": {"recommend": 4, "warn": 4, "compare": 1}, "2026-01": {"neutral": 1, "recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"warn": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 765772785, "item_id": 47860799, "url": "https://news.ycombinator.com/item?id=47860799", "by": "teleforce", "date": "2026-04-22", "version": null, "stance": "warn", "quote": "It's beyond me why they didn't push forward for D4M but instead propose a limited GraphQL.", "excerpt": ">I'm personally of the opinion that \"graph databases\" should be relational databases; the relational model can subsume \"graph\" queries The MIT team which is also part of the team that proposed GraphQL already kind of solved this problem using D4M [1]. Essentially D4M is able to universally represent relational, graph, spreadsheet and matrices using the mathematic technique of associative algebra, they even wrote an e", "context": "", "use_case": "", "switched_from": "", "story": "A type-safe, realtime collaborative Graph Database in a CRDT"}, {"id": 748001873, "item_id": 46750117, "url": "https://news.ycombinator.com/item?id=46750117", "by": "ktpsns", "date": "2026-01-24", "version": null, "stance": "recommend", "quote": "I am new to GraphQL and was amazed how it reduced the boilerplate", "excerpt": "Documentation and APIs can be both machine and human readable at the same time. For my impression, MCP is compating symptoms. In a well constructed system, there would be no need to write dedicated documentation or APIs for LLMs. By the way, I am new to GraphQL and was amazed how it reduced the boilerplate I had to write for REST in my (classical ORM) project. In a single-person team, this allows me to rapidly write ", "context": "", "use_case": "reducing API boilerplate", "switched_from": "", "story": "MCP is the New GraphQL"}, {"id": 743947154, "item_id": 46496697, "url": "https://news.ycombinator.com/item?id=46496697", "by": "michaelm244", "date": "2026-01-05", "version": null, "stance": "neutral", "quote": "Stack: TS, Postgres, React, GraphQL, and Next.js", "excerpt": "Comulate | Senior Engineer (3+ YoE) | ONSITE in San Francisco, CA We're building automation software for the $7T insurance industry, accelerated by AI. Seed stage in terms of headcount (~ 20 people) but Series B in terms of business traction (+ cash-flow positive). We've intentionally stayed under the radar. - Product has caused customers to literally cry tears of joy - Experienced eng team from Airbnb / Brex / LiveR", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (January 2026)"}, {"id": 743211633, "item_id": 46450727, "url": "https://news.ycombinator.com/item?id=46450727", "by": "teleforce", "date": "2025-12-31", "version": null, "stance": "recommend", "quote": "Definitely they should include D4M and GraphQL", "excerpt": "Definitely they should include D4M and GraphQL [1],[2]. Not only D4M can cater for structured relational data, it's also suitable for non-structured and sparse data in spreadsheet, matrices and graph. It's essentially a generalization of SQL but for all things data. There's also integration of D4M with SciDB [3]. [1] D4M: Dynamic Distributed Dimensional Data Model: https://d4m.mit.edu/ [2] GraphQL: https://graphql.or", "context": "", "use_case": "", "switched_from": "", "story": "Readings in Database Systems (5th Edition)"}, {"id": 740378912, "item_id": 46273682, "url": "https://news.ycombinator.com/item?id=46273682", "by": "0x696C6961", "date": "2025-12-15", "version": null, "stance": "warn", "quote": "Yeah I love it when a request turns into an N+1 query because the FE guys needed 1 more field.", "excerpt": "Yeah I love it when a request turns into an N+1 query because the FE guys needed 1 more field.", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740328256, "item_id": 46270516, "url": "https://news.ycombinator.com/item?id=46270516", "by": "rbalicki", "date": "2025-12-14", "version": null, "stance": "warn", "quote": "the absolutely silly distinction between unions and interfaces", "excerpt": "I would encourage you to write an educated person's critique of GraphQL, because OP's article + https://bessey.dev/blog/2024/05/24/why-im-over-graphql/ etc. suck up all of the oxygen, and no one hears about the genuine issues like that. (And don't forget lack of generics, no support for interfaces with no fields, lack of closed unions/interfaces, the absolutely silly distinction between unions and interfaces, the fac", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740295520, "item_id": 46268470, "url": "https://news.ycombinator.com/item?id=46268470", "by": "WickyNilliams", "date": "2025-12-14", "version": null, "stance": "compare", "quote": "The equivalent in graphql (or typespec which I always wanted to try as an authoring format for openapi", "excerpt": "I imagine you are very much in the minority. A simple hello world is like a screen full of yaml. The equivalent in graphql (or typespec which I always wanted to try as an authoring format for openapi https://typespec.io/) would be a few lines", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740286704, "item_id": 46267919, "url": "https://news.ycombinator.com/item?id=46267919", "by": "erkok", "date": "2025-12-14", "version": null, "stance": "warn", "quote": "it is often times overused", "excerpt": "I tend to agree with the author. GraphQL has its use cases, but it is often times overused and simplicity is sacrificed for perceived elegance or efficiency that is often times not needed. \"Pre-mature optimisation of root of all evil\" comes to mind when GraphQL is picked for efficiency gains that may never become a problem in the first place. Facebook invented GraphQL to solve a very specific problem back in 2012 for", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740270128, "item_id": 46266883, "url": "https://news.ycombinator.com/item?id=46266883", "by": "andrewingram", "date": "2025-12-14", "version": null, "stance": "recommend", "quote": "I use GraphQL because I really want to use Relay.", "excerpt": "As someone who\u2019s used GraphQL since mid-2015, if you haven\u2019t used GraphQL with Relay you probably haven\u2019t experienced GraphQL in a way that truly exploits its strengths. I say probably because in the last ~year Apollo shipped functionality (fragment masking) that brings it closer. I stand by my oft-repeated statement that I don\u2019t use Relay because I need a React GraphQL client, I use GraphQL because I really want to ", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 740259890, "item_id": 46266243, "url": "https://news.ycombinator.com/item?id=46266243", "by": "rozenmd", "date": "2025-12-14", "version": null, "stance": "warn", "quote": "clearing up tech debt that helped me ship fast, but was ultimately a bad fit for the business (Next.js and GraphQL)", "excerpt": "OnlineOrNot (https://onlineornot.com) Planning on wrapping up the year with a year in review post (thankfully I've been writing monthly updates as I go, should save some time). Apart from that, clearing up tech debt that helped me ship fast, but was ultimately a bad fit for the business (Next.js and GraphQL).", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (December 2025)"}, {"id": 740258592, "item_id": 46266162, "url": "https://news.ycombinator.com/item?id=46266162", "by": "hn_throwaway_99", "date": "2025-12-14", "version": null, "stance": "recommend", "quote": "people tend to underestimate the value of having such clear contracts and guarantees that GraphQL enforces", "excerpt": "> Pruning the request and even the response is pretty trivial with zod. I agree with that, and when I'm in a \"typescript only\" ecosystem, I've switched to primarily using tRPC vs. GraphQL. Still, I think people tend to underestimate the value of having such clear contracts and guarantees that GraphQL enforces (not to mention it's whole ecosystem of tools), completely outside of any code you have to write. Yes, you ca", "context": "", "use_case": "", "switched_from": "", "story": "GraphQL: The enterprise honeymoon is over"}, {"id": 737899872, "item_id": 46118742, "url": "https://news.ycombinator.com/item?id=46118742", "by": "cheema33", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article.", "excerpt": "I use GraphQL. It has a higher learning curve. But it addresses the shortcomings listed by the referenced blog article. It offers type safety, efficiency and modern tooling. And it is also human readable. If you use good tooling, you can have a mutation change a variable type in the database and that type change is automatically reflected in the middleware/backend and the typescript UI code. Not only that libraries l", "context": "", "use_case": "APIs with type safety", "switched_from": "", "story": "Why I stopped using JSON for my APIs"}, {"id": 736626864, "item_id": 46039179, "url": "https://news.ycombinator.com/item?id=46039179", "by": "_pdp_", "date": "2025-11-24", "version": null, "stance": "recommend", "quote": "I strongly believe it is one of the best technologies for AI agents.", "excerpt": "Our agentic builder has a single tool. It is called graphql. The agent writes a query and executes it. If the agent does not know how to do particular type of query then it can use graphql introspection. The agent only receives the minimal amount of data as per the graphql query saving valuable tokens. It works better! Not only we don't need to load 50+ tools (our entire SDK) but it also solves the N+1 problem when u", "context": "", "use_case": "", "switched_from": "", "story": "Claude Advanced Tool Use"}, {"id": 735585792, "item_id": 45974112, "url": "https://news.ycombinator.com/item?id=45974112", "by": "ashishb", "date": "2025-11-18", "version": null, "stance": "warn", "quote": "GraphQL is terrible if you are a backend engineer", "excerpt": "GraphQL is awesome if you are a frontend engineer. GraphQL is terrible if you are a backend engineer - https://bessey.dev/blog/2024/05/24/why-im-over-graphql", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Guts \u2013 convert Golang types to TypeScript"}, {"id": 735202449, "item_id": 45950153, "url": "https://news.ycombinator.com/item?id=45950153", "by": "_pdp_", "date": "2025-11-16", "version": null, "stance": "recommend", "quote": "GraphQL works better https://chatbotkit.com/reflections/why-graphql-beats-mcp-for-agentic-ai", "excerpt": "GraphQL works better https://chatbotkit.com/reflections/why-graphql-beats-mcp-for-agentic-ai", "context": "", "use_case": "", "switched_from": "", "story": "What if you don't need MCP at all?"}, {"id": 733149191, "item_id": 45821824, "url": "https://news.ycombinator.com/item?id=45821824", "by": "iamsaitam", "date": "2025-11-05", "version": null, "stance": "neutral", "quote": "GraphQL", "excerpt": "SEEKING WORK | Berlin, Germany | Remote or on-site | Full-stack Web Developer Hey, I'm Ricardo, a full-stack web developer specialised in interactive experiences, with more than 10 years of experience in building creative and business applications. Web Frameworks: ReactJS, NextJS, Svelte (JS), Axum (Rust) Programming Languages: Javascript/Typescript, Rust, C++, Kotlin Technologies: PostgreSQL, D3, Directus (CMS), Gra", "context": "full-stack web developer, 10+ years experience", "use_case": "web development", "switched_from": "", "story": "Ask HN: Freelancer? Seeking freelancer?"}]}