Edgerunners

API integration

Frontend and backend that agree on every request

Most integration bugs come from the frontend and backend disagreeing about the shape of data. We generate frontend types from your API contracts (OpenAPI, GraphQL schemas or Protobuf), validate responses at runtime, and run contract tests in CI. A backend change that would break the frontend fails the build instead of reaching users.

Types that stay in sync

  • Client code and types are generated from the API contract, not written by hand.
  • Responses are validated at runtime with schema libraries like Zod, so unexpected data is caught at the edge of the app.
  • Contract tests run in CI against both sides.
  • In a shared monorepo, the frontend and backend can import the same type definitions directly.

The right protocol for each job

ProtocolWhere we use it
RESTStandard resources and public APIs
GraphQLScreens that combine data from many sources
gRPC-Web / ConnectBackends already on gRPC, high-volume or binary data
WebSockets / SSELive updates and streaming responses

Images, files and binary data

Applications that move a lot of images or binary data need care. We use chunked, resumable uploads for large files and stream downloads instead of loading them whole. We avoid base64 encoding in transit, since it makes files about a third larger. Content types and character encoding are set correctly, so text and binary data arrive intact.

Failures, retries and memory

  • Timeouts and cancellation on every request, so abandoned screens stop their requests.
  • Retries with backoff for safe operations only.
  • Fallbacks for when a service is down: cached data, a degraded view, or a clear message.
  • Large responses are paginated or streamed, and memory budgets are enforced on data-heavy screens. This matters most for data-intensive applications.

FAQ

Frequently asked questions

01Our backend has no API spec. Can you still generate types?

We can help write an OpenAPI spec from the existing endpoints, then generate types from it. The spec then becomes useful documentation for your backend team as well.

Next step

Start with a review of what you have

Send us your repository or a staging link. We'll come back with the three changes that would make the biggest difference to your release speed, performance and reliability.