The data layer for Next.js

End-to-end typesafe data fetching for frontend teams at scale

Use Fuse.js to build a data layer that fetches data exactly how you need it.
No more waiting for backend teams to update their APIs for you.

TODO: Video demo here

What's Fuse.js?

The best way to build a data layer

Fuse is an opinionated framework for creating fully typesafe data layers that allow frontend teams to handle the translation from resource-based APIs to their needs as easily as possible.

Fuse.js code sample

Why Fuse.js?

Optimal data fetching

  • Every page gets exactly, and only, the data it needs in a single network request.
  • Data requirements are defined per component, allowing codebases to scale no matter the size.
  • Nodes are automatically data loaded under the hood—no more n+1 problems.

Intuitive developer experience

  • It's all in the schema—centrally defined and enforced

    Never wonder “how do I get this data?” or deal with random data returned from random endpoints.
  • Typesafe end-to-end from data source to client component

    Catch server-side errors that impact the frontend before your users ever see them.
  • Everything you expect out of the box

    IDE autocomplete across server and client, hot module-replacement for any changes, an API playground, and more.

Why a data layer?

Ship fast at scale

The fastest moving companies have a central data layer for frontend teams to translate resource-based APIs to user needs, which minimizes friction with backend engineers. However, this pattern is not widely known.

In most companies, the backend engineers collaborate with frontend teams on APIs for clients. This is often a slow and painful process because it forces the backend engineers to think about user needs, which is outside of their usual way of thinking about resources.

Data layers enable each team to achieve their goals without unnecessary friction by allowing those who use the data to shape the data. Now, backend engineers can ship the resource-based APIs they know and love, and frontend engineers can focus on shipping features tailored to user needs.

Fuse.js's principles

  • Incrementally adoptable

    Start using Fuse.js for a single resource or microservice to try it out, no need to rewrite anything that's already working.

  • Pit of success

    Fuse.js has an opinionated design that makes it easy to do the right thing and hard to do the wrong thing. It's optimized to guide you and your team down the "pit of success."

  • Great developer experience

    In order to be adopted at scale, Fuse.js needs to have a great developer experience.

Who is behind Fuse.js?

Built by the team at Stellate

Fuse.js is made by the team at Stellate, the GraphQL CDN, which includes core team members and creators of some of the most popular open-source projects in the GraphQL ecosystem, including Prisma, the GraphQL Playground, GraphiQL, urql, Gatsby and others.

powered by

Pothos

The schema builder for creating GraphQL schemas in typescript using a strongly typed code first approach.

urql

Highly customizable and versatile GraphQL client, made to grow with your codebase.

GraphQL Yoga

The fully-featured GraphQL Server with focus on easy setup, performance and great developer experience.