graffle-js

graffle-js/graffle

TypeScript MIT Web Dev

Simple GraphQL Client for JavaScript. Minimal. Extensible. Type Safe. Runs everywhere.

6.1k stars
310 forks
slow
GitHub +1 / week

6.1k

Stars

310

Forks

59

Open issues

30

Contributors

next 29 May 2020

AI Analysis

Graffle is a minimal, type-safe GraphQL client for JavaScript that emphasizes extensibility and multi-transport support (HTTP and in-memory). It serves developers building GraphQL-powered applications who value lightweight, composable tooling with strong TypeScript inference. It is not a general-purpose HTTP client or a backend framework—it is purpose-built for GraphQL query consumption in JavaScript/TypeScript environments.

Web Dev Library Discovery value: 6/10
Documentation 8/10
Activity 7/10
Community 8/10
Code quality 7/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

graphql-client typescript type-safe extensible lightweight
Actively maintained Well documented MIT licensed Popular Niche/specialized use case Beginner friendly
Deep Analysis · Based on README and public signals
2w ago

graphql-request reborn as Graffle: a typed, extensible GraphQL client still finding its production footing

Graffle is a TypeScript GraphQL client for JavaScript environments, evolved from the widely-used graphql-request library. It targets developers who want a lightweight but type-safe alternative to Apollo Client — offering a document builder with full type inference, a plugin/extension system, multi-transport support (HTTP and in-memory), and custom scalar codecs. It appears aimed at TypeScript-first teams building applications that consume GraphQL APIs without needing a full client framework. The rename from graphql-request introduces significant rebranding overhead and the project is still in pre-release as of the README.

Origin

Originally created in 2017 as graphql-request, a minimal GraphQL HTTP client that became one of the most downloaded GraphQL clients on npm. Around 2023-2024 it was architecturally reimagined and rebranded as Graffle, shifting from a simple request utility to a more ambitious typed client framework.

Growth

Star growth is largely inherited from graphql-request's prior reputation. The 6,111 stars reflect the old package's community recognition. The rebranding to Graffle appears to have reset momentum — 0 stars in the last 7 days as of late June 2026 and pre-release status suggest the new identity has not yet achieved organic traction separate from the legacy name. The graphql-request npm package historically had millions of weekly downloads, but it is unclear how much of that traffic has migrated to the graffle package.

In production

Adoption not verified for the Graffle brand specifically. The predecessor graphql-request had extensive documented production use (millions of npm downloads/week), but the graffle npm package adoption is not confirmed from available metadata. The transition period may mean some users remain on the legacy package.

Code analysis
Architecture

Appears to be a layered client architecture with a core request engine, an extension/plugin middleware system, a document builder layer for type-safe query construction, and transport adapters (HTTP and in-memory). Likely uses TypeScript generics heavily for schema-aware type inference. The multi-transport design suggests a testability-first philosophy where the same client can run against a live HTTP endpoint or an in-process GraphQL schema.

Tests

Not documented in README, but CI badge is present pointing to a trunk workflow, suggesting automated testing exists. Extent and quality of coverage cannot be confirmed from available metadata.

Maintenance

Last push was May 11, 2026 — approximately 6 weeks before the evaluation date. This indicates active maintenance. The project has 309 forks and a dedicated documentation site (graffle.js.org), suggesting sustained investment. However, pre-release status after what appears to be a multi-year rewrite raises questions about release velocity.

Honest verdict

ADOPT IF: you are building a TypeScript-first application that consumes a GraphQL API, want strong type inference without a heavy client framework, and are comfortable with pre-release software. AVOID IF: you need a production-stable, battle-tested client today or rely on normalized caching and reactive UI bindings — Apollo Client or urql are safer bets. MONITOR IF: you were a graphql-request user evaluating migration, or you want a lightweight typed client and are willing to wait for a stable 1.0 release.

Independent dimensions

Mainstream potential

4/10

Technical importance

7/10

Adoption evidence

3/10

Risks
  • Still in pre-release as of the README — API surface may change before stable release, creating migration risk for early adopters.
  • The graphql-request to Graffle rename fragments the existing community and npm download metrics, making it harder to gauge true adoption of the new package.
  • Zero star growth in the last 7 days suggests the rebranding has not yet generated new organic interest beyond the legacy audience.
  • The ambitious feature expansion (type-safe document builder, extension system, codecs) increases complexity compared to the original minimal library, potentially alienating users who valued graphql-request's simplicity.
  • Single primary maintainer dependency appears likely based on sponsor page referencing an individual (jasonkuhrt), which introduces bus-factor risk for a project in active architectural transition.
Prediction

Graffle will likely stabilize into a respected niche TypeScript GraphQL client once it reaches a stable release. It is unlikely to displace Apollo Client in mainstream adoption but may recapture the graphql-request audience that wants more type safety.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

TypeScript
81.6%
HTML
17.9%
JavaScript
0.4%
CSS
0.1%
Shell
0%
Vue
0%

Information

Language
TypeScript
License
MIT
Last updated
2mo ago
Created
112mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

graphql

graphql/graphql-js

GraphQL.js is the official JavaScript reference implementation of GraphQL, a...

20.4k TypeScript Web Dev
apollographql

apollographql/apollo-client

Apollo Client is a production-grade GraphQL client library for TypeScript and...

19.8k TypeScript Web Dev
nestjs

nestjs/graphql

GraphQL module for NestJS that enables efficient, type-safe GraphQL server...

1.6k TypeScript Web Dev
MichalLytek

MichalLytek/type-graphql

TypeGraphQL is a TypeScript library for building GraphQL APIs using TypeScript...

8.1k TypeScript Web Dev
altair-graphql

altair-graphql/altair

Altair is a feature-rich GraphQL IDE client available across desktop, web, and...

5.4k TypeScript Dev Tools
vs. alternatives
Apollo Client

Apollo Client is a full-featured client with caching, reactive state, and React integration. Graffle targets users who find Apollo too heavy — it offers no built-in normalized cache, trading power for simplicity and bundle size. Different audiences.

graphql-request (legacy)

Graffle is the direct evolution of graphql-request. The old version remains available on a branch. Users of the original minimal, zero-dependency request helper must accept a larger API surface and pre-release stability to migrate.

urql

urql is also positioned as a lighter, extensible alternative to Apollo. Both urql and Graffle offer extensibility via exchanges/extensions, but urql has a longer stable-release history and more documented production adoption in the React ecosystem.

graphql-yoga

graphql-yoga is a server, not a client — not a direct competitor. However, its in-memory transport support in Graffle (testing against a yoga server in-process) creates an interesting complementary pairing.

URQL / TanStack Query + fetch

Some developers combine TanStack Query with raw fetch or graphql-request for a lighter stack. Graffle must compete with this DIY approach by demonstrating that its type-safety and extension system justify the added dependency.