Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
1--- 2title: Overview 3order: 1 4--- 5 6# Overview 7 8`urql` is a highly customizable and versatile GraphQL client with which you add on features like 9normalized caching as you grow. It's built to be both easy to use for newcomers to 10GraphQL, and extensible, to grow to support dynamic single-app applications and highly 11customized GraphQL infrastructure. In short, `urql` prioritizes usability and adaptability. 12 13As you're adopting GraphQL, `urql` becomes your primary data layer and can handle content-heavy 14pages through ["Document Caching"](./basics/document-caching.md) as well as dynamic and data-heavy 15apps through ["Normalized Caching"](./graphcache/normalized-caching.md). 16 17`urql` can be understood as a collection of connected parts and packages. 18When we only need to install a single package for our framework of choice. We're then able to 19declaratively send GraphQL requests to our API. All framework packages — like `urql` (for React), 20`@urql/preact`, `@urql/svelte`, and `@urql/vue` — wrap the [core package, 21`@urql/core`](./basics/core.md), which we can imagine as the brain 22of `urql` with most of its logic. As we progress with implementing `urql` into our application, 23we're later able to extend it by adding ["addon packages", which we call 24_Exchanges_](./advanced/authoring-exchanges.md) 25 26If at this point you're still unsure of whether to use `urql`, [have a look at the **Comparison** 27page](./comparison.md) and check whether `urql` supports all features you're looking for. 28 29## Where to start 30 31We have **Getting Started** guides for: 32 33- [**React/Preact**](./basics/react-preact.md) covers how to work with the bindings for React/Preact. 34- [**Vue**](./basics/vue.md) covers how to work with the bindings for Vue 3. 35- [**Svelte**](./basics/svelte.md) covers how to work with the bindings for Svelte. 36- [**Core Package**](./basics/core.md) covers the shared "core APIs" and how we can use them directly 37 in Node.js or imperatively. 38 39Each of these sections will walk you through the specific instructions for the framework bindings, 40including how to install and set them up, how to write queries, and how to send mutations. 41 42## Following the Documentation 43 44This documentation is split into groups or sections that cover different levels of usage or areas of 45interest. 46 47- **Basics** is the section where we'll want to start learning about `urql` as it contains "Getting 48 Started" guides for our framework of choice. 49- **Architecture** then explains more about how `urql` functions, what it's made up of, and covers 50 the main aspects of the `Client` and exchanges. 51- **Advanced** covers all more uncommon use-cases and contains guides that we won't need immediately 52 when we get started with `urql`. 53- **Graphcache** documents one of the most important addons to `urql`, which adds ["Normalized 54 Caching" support](./graphcache/normalized-caching.md) to the `Client` and enables more complex 55 use-cases, smarter caching, and more dynamic apps to function. 56- **Showcase** aims to list users of `urql`, third-party packages, and other helpful resources, 57 like tutorials and guides. 58- **API** contains a detailed documentation on each package's APIs. The documentation links to each 59 of these as appropriate, but if we're unsure of how to use a utility or package, we can go here 60 directly to look up how to use a specific API. 61 62We hope you grow to love `urql`!