---
sidebar_position: 1
title: Getting Started - Overview
sidebar_label: Overview
---

# Overview

**`Hyper Fetch`** is an ambitious approach to standardizing data exchange. This is an extremely difficult but important
task that we have faced. Achieving this goal will elevate the capabilities of all of us to a whole new level. We do not
want to change your approach but to become a neutral standard where you compose your sub-components according to your
needs and the clear rules we provide. We develop the logic necessary for performing requests, caching, queuing,
providing offline support, and enabling persistence for queued requests and caches. Our goal is to make Hyper Fetch one
of the greatest fetching tools!

<details>
<summary>Our Motivation 🎯</summary>

We got the idea for Hyper Fetch after leading several React projects. There are many great fetch libraries (like
`Axios`, `Fetch`, `SWR`, and `React Query`), but the logic that they provide is detached from each other – i.e. the
hooks are detached from the fetchers.

This gives users a lot of customization options, but it also comes with some issues. You’d need to build your logic
every time you start developing a new application. And there is no **schema** for data exchange and normalization, which
can block future features. We decided to overcome this issue by creating a _straightforward_, _opinionated_, yet
_flexible_ fetching solution. Hyper Fetch lets you change the parts of your system to make it work as you would like,
but it’s also more reusable – no more rewriting fetchers (and the whole program flow) with each new application!

With the Hyper Fetch approach, you have a tool that's packed with all sorts of development, testing, and maintenance
features. It just takes a few minutes to set up, and you're ready to go!

</details>

---

### Main Goals 🔮

✅ Provide neutral standard for data exchange

✅ Quickly build new solutions without repeating your work or copying it between projects.

✅ Get all the necessary fetching systems – and the possibility of expanding them as needed.

✅ Stop duplicating solutions between and within projects by giving global access to server settings.

✅ Enable rapid application development by setting up a fetcher and its dependencies in minutes, not hours or days.

✅ Trivial tracking of the progress and queue of sent requests.

✅ Provide offline and persistence solutions that no other library offers.

✅ Enhance ease of use by using automation to eliminate common code mistakes.

---

### Guides 🪄

Our Guides section provides step-by-step instruction on:

- [Basic](/guides/01-basic/setup.mdx)
- [Advanced](/guides/02-advanced/cancellation.mdx)
- [Sockets](/guides/03-sockets/setup.mdx)
- [Using with React](/guides/04-react/01-core/fetching.mdx)
- [Using with TypeScript](/guides/05-typescript/global-error.mdx)
- [Testing](/guides/06-testing/isolation.mdx)
