Skip to content

An iOS and Android app, ready to rename.

An Expo app with tabs, a theme that follows the phone, custom fonts, an API client and data fetching in place — so day one goes to the app, not the setup.

Open on GitHubMIT licence · free to use

Use it when

You're starting a mobile app that talks to your own API and want routing, theming and data fetching ready from day one.

The app needs an API to talk to? template-backend instead →

What's included

Done from the start.

  • Navigation

    Expo Router with three tabs and a stack for modals, with typed routes.

  • Theme

    Light and dark colours, spacing and type sizes that follow the phone's mode.

  • Fonts

    Manrope and Playfair Display, with the splash screen held until they load.

  • API client

    Get, post, put, patch and delete with a timeout, clear errors and token sign-in.

  • Data fetching

    TanStack Query with sensible defaults for caching and retries.

  • EAS

    Build profiles for development, preview and production.

Get started

pnpm install
cp .env.example .env
pnpm start        # press i / a for a simulator

Structure

app/        Expo Router screens and layouts
blocks/     theme tokens, toast config, UI primitives
lib/        contexts, query client, hooks, utils
services/   API client

Environment variables

  • EXPO_PUBLIC_API_URL

The EAS profiles set their own API address for preview and production — point it at your API.

Good to know

  • Add your own icon and splash image: app.json points at files that aren't in the repo.
  • Change the app name, bundle id and EAS project id before the first build.

Built with

  • Expo SDK 54
  • React Native 0.81
  • React 19
  • Expo Router 6
  • TanStack Query
  • TypeScript
  • EAS

Let's build
the next thing.

You talk to me, not a salesperson. The first call is free.

— Kenny

psst, it takes 15 min

Write, and I reply the same working day.