EVERYTHING XIAOMI
Get listed

urql

urql is a free, self-hosted GraphQL client for React, Preact, Vue, Solid, Svelte, or plain JavaScript applications.

Place
#22 of 32
Score
5.4
urql's website

What urql is

urql is a free, self-hosted GraphQL client for React, Preact, Vue, Solid, Svelte, or plain JavaScript applications. It sends declarative queries and mutations, manages caching and state, and provides an extensible connection point for APIs. Exchanges let developers control fetching, caching, retries, authentication, subscriptions, request policies, persisted queries, server-side rendering, and developer tools. urql uses document caching by default. Developers can opt into normalized caching with the @urql/exchange-graphcache package, which can also persist and restore cache state for offline use; that offline capability is described as experimental. Solid bindings include a createSubscription primitive, while subscriptions generally need WebSocket support and a subscription exchange. Browser extensions are available for debugging. The project describes urql as suitable for both first GraphQL projects and more complex applications. Its first-party packages do not officially support batched queries. Framework bindings and API integrations are documented for web and extension use, and the repository lists an MIT license.

Good

  • Free plan available
  • Bindings for several JavaScript frameworks
  • Configurable exchanges for request behavior
  • Optional normalized caching with Graphcache
  • Browser extensions for debugging

Watch out

  • First-party packages lack official batched-query support
  • Offline support is labeled experimental
  • Normalized caching requires an optional package

Who it suits

It suits developers building GraphQL applications with React, Preact, Vue, Solid, Svelte, or JavaScript. It can serve both initial GraphQL projects and more complex apps needing configurable request behavior.

Verdict

urql provides a flexible GraphQL client with framework bindings, configurable exchanges, and document caching included by default. Its lack of first-party batched queries and optional status of normalized or offline features matter when matching it to an application.

The facts

Each one read from urql's own pages, with the date it was checked.

What it does

Available exchanges
Documented exchanges include retry, persisted queries, authentication, request policy, server-side rendering, and devtools exchanges.checked 7 Oct 2026
Client operations
urql supports declarative GraphQL queries and mutations, caching and state management, and extensions for integrating with an API.checked 7 Oct 2026
Compatibility limit
The comparison page says urql does not officially support batched queries in its first-party packages.checked 7 Oct 2026
Core capabilities
urql sends GraphQL queries and mutations, manages caching and state, and provides an extensible integration point for an API.checked 7 Oct 2026
Customizable behavior
Exchanges let developers customize how requests are fetched, cached, retried, authenticated, and handled.checked 7 Oct 2026
Customization
Exchanges let developers customize how the client fetches, caches, and subscribes to data.checked 7 Oct 2026
Default cache
The default cache uses document caching; normalized caching is available as an opt-in through Graphcache.checked 7 Oct 2026
Default caching
The client uses document caching by default, and normalized caching is available through Graphcache.checked 7 Oct 2026
Developer tools
The project lists browser extensions for debugging urql.checked 7 Oct 2026
Framework integrations
The documentation describes bindings for React, Preact, Vue, and Svelte, and the comparison page also lists Next.js integration.checked 7 Oct 2026
Framework packages
The project describes bindings for React, Preact, Vue, Solid, and Svelte.checked 7 Oct 2026
Graphcache
Normalized caching is an opt-in feature provided by the @urql/exchange-graphcache package.checked 7 Oct 2026
GraphQL integrations
Documented exchanges include support for persisted queries, authentication flows, retries, file uploads, and subscriptions.checked 7 Oct 2026
Intended users
The project describes urql as suitable for both first GraphQL projects and more complex apps.checked 7 Oct 2026
License
The repository lists an MIT license.checked 7 Oct 2026
Notable limit
The comparison page says urql does not support batched queries in its first-party packages.checked 7 Oct 2026
Offline support
Graphcache can persist and rehydrate cache state for offline use, and its documentation labels offline support experimental.checked 7 Oct 2026
Project history
The comparison page says urql's current architecture has existed since February 2019 and its normalized cache since September 2019.checked 7 Oct 2026
Purpose
urql is a customizable GraphQL client for React, Svelte, Vue, Solid, or plain JavaScript.checked 7 Oct 2026
Subscriptions
The Solid bindings provide a createSubscription primitive, and the guide says GraphQL subscriptions typically require WebSocket support and a subscription exchange.checked 7 Oct 2026

Alternatives to urql

All alternatives
  1. 1

    Altair GraphQL Client

    Free planWebExtensionLinuxmacOS
    7.4From $7.99 a month
  2. 2Apollo Client logo

    Apollo Client

    Free planAndroidiOSWebAPI
    7.3From $5 a month
  3. 3Hasura logo

    Hasura

    Free planWebAPILinuxSelf-hosted
    6.9Free plan
  4. 4GraphQL Hive logo

    GraphQL Hive

    Free planWebAPISelf-hosted
    6.7From $20 a month
  5. 5

    PostGraphile

    Free planWebAPISelf-hosted
    6.7From $25 a month
  6. 6WunderGraph Cosmo logo

    WunderGraph Cosmo

    Free planWebAPISelf-hosted
    6.7From $499 a month