A white background with black stripes forming a grid, this is the background of the hero section.

Build and query
great APls with TypeScript

Aggregate all your data sources and transform them into a great API for your clients with many best practices built-in for you—fully typesafe from data source to client query.

What's Fuse?

A framework for building great APIs effortlessly

Build a GraphQL API that aggregates all your microservices, data stores, and third-party APIs with the minimum amount of code. Fuse generates a TypeScript client to access your API with full type safety.

A Fuse code sample, this shows on the left a code-editor where we see us converting a user-endpoint to a user-node. The code sample starts by calling a function called node, passes a generic in there called ProductSource, representing the Product type on the REST endpoint, next it gives the node a name 'Product'. It specifies a load function, which is called 'getProductsByIds' and finishes off by defining the shape of the data that will be returned from our node, the shape has a name which in this case is a string that gets exposed from the product_name property of the resource, a details property which is also a string and a category which has a custom resolve function returning the product.category_id. On the right we see how this translates to GraphQL where we can query this node by means of `query GetProduct($id: ID!) { product(id: $id) { id name details category { id name} } }`

Get started in seconds with one command!

$npx create-fuse-app

What's in it?

Everything you need to build and query a great API

All the best practices built-in, so you don't have to think about them

  • Automatic data loaders
  • Globally unique IDs
  • Relay-style node query
  • Production-grade security
  • Scalable Relay-style pagination

Fuse generates a TypeScript client for your API that you can use with all JavaScript frameworks (including support for React Server Components). In other languages, you can access your API with any GraphQL client.

You can deploy your Fuse API anywhere with adapters for

Get started in seconds with one command!

$npx create-fuse-app

Why GraphQL?

GraphQL makes great APIs

  • Fetch the data for a page in a single request, even if it is spread between many data sources
  • Define data requirements per component with fragment composition for essentially infinite codebase scalability
  • Evolve your API without versions because clients aren’t impacted by additive changes
  • Simplify observability, governance, and security by having a central access point for all your data
A circle consisting of three layers, the outer one in a darker green showing a datasource with a PostGres and REST logo, the second layer in a lightest green showing a GraphQL logo and last but not least the center showing the Fuse logo which is a black 'x' with a green outline.

Powered by the GraphQL ecosystem

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.

How to use it at scale?

The Fuse Method

Treat your API as an aggregation & transformation layer

Client-facing APIs aggregate any number of underlying data sources, like databases, third-party APIs, and microservices.

Then, they transform them into something usable by clients, which is necessary because the way data sources think about their data often doesn’t cover exactly how clients want to use it.

Fuse’s design is explicitly optimized to make it as simple as possible to build a typesafe aggregation & transformation layer. The only code you write defines where to fetch data from and how to expose it.

Have your frontend teams own the API

The only people who truly understand clients’ needs are the teams working on those clients.

Thus, APIs should be owned by a team closer to the frontend teams than the backend teams.

Often, this is a dedicated API team that sits right next to the frontend teams. In smaller organizations, this can also be a shared effort by all frontend & mobile teams.

A diagram showing, from top to bottom, a set of squares representing, the backend teams working with PostGres, Rest and gRPC, these connect to a central node named 'Fuse' which in turns connects to three nodes Android, iOS and web
Learn more

Who is behind Fuse?

Built by the team at

Fuse 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.