ReadyNative

Backend

Backend for an Expo app, compared: API routes, or none - Expo Go support and what each option installs.

Pro

Hey - here's how the backend category works in ReadyNative.

This one is about whether your app ships a server of its own. With Expo Router, a +api.ts file under src/app/api/ is a route handler that runs on the dev server in development and on EAS Hosting in production - same repo, same TypeScript, one deploy.

Unlike the other categories there's no @/lib/backend shim, because there's no client API to keep stable. What stays constant is EXPO_PUBLIC_API_URL: the origin your app calls, whether that's routes in this tree or a backend you run elsewhere. backend/none is the no-op - it just means no routes here.

Pick API routes when a module needs a server (auth/better-auth requires it, payments/stripe wants it for Checkout and webhooks) or when you'd rather write one endpoint than stand up a separate service. Pick none when your backend already exists somewhere else, or when the app doesn't need one - it also keeps the static web export, which API routes replace with a server bundle.

This category is part of ReadyNative Pro.

Options

One option per category - --backend <option> picks it:

bun run setup --backend api-routes
OptionLabelExpo GoHint
api-routesAPI routes (default)yesExpo Router +api.ts routes · src/server helpers · EAS Hosting · Expo Go OK
noneNo API routesyesno src/app/api

On this page

Get ReadyNative