BFF means Backend for Frontend: an API layer tailored to one frontend or client experience. REST is a resource-oriented API style that exposes reusable endpoints around domain resources.

Core difference

REST usually exposes general resources such as users, orders, products, or documents. A frontend combines those resources into the shape needed by a page or workflow.

A BFF exposes endpoints shaped around a specific frontend use case. Instead of forcing the client to call many endpoints and assemble the result, the BFF can return exactly what a screen or interaction needs.

Tradeoff

REST favors reuse across clients. The same API can serve a web app, mobile app, internal tool, or external integration if their needs are similar enough.

BFF favors frontend ergonomics. It can reduce round trips, hide backend complexity, centralize auth or session behavior, and keep composition logic on the server.

The cost is another layer to own. If every client gets its own BFF, teams must keep those APIs, tests, deployments, and observability in good shape.

When BFF helps

Use a BFF when:

  • different clients need different data shapes;
  • the frontend would otherwise stitch together many REST calls;
  • sensitive composition, authorization, or session logic should stay server-side;
  • the UI needs an endpoint shaped around a workflow rather than a single resource;
  • mobile, web, and admin interfaces have genuinely different constraints.

When REST is enough

Plain REST is usually enough when:

  • there is one main client;
  • the resource model is stable and maps cleanly to the UI;
  • the app is mostly CRUD;
  • the frontend does not need many chained calls to render common screens;
  • adding another backend layer would create more complexity than value.

Practical rule

BFF is not a replacement for REST. It is often a client-specific layer in front of REST endpoints, services, or internal APIs.

Start with a clear REST API when the domain is simple. Add a BFF when frontend composition, client-specific needs, or cross-service orchestration become real friction.