React NativeExamples · Props · Code

Expo Templates

An Expo template is a pre-configured starting point for a React Native app — routing, TypeScript, and a folder structure already wired. Here are the ones worth starting from, how to use --template, and when generating a custom starter beats a generic one.

Creating an app from a template

The create-expo-app CLI takes a --template flag — a built-in name or any GitHub repo:

# Default template (blank TypeScript + Expo Router tabs)
npx create-expo-app@latest my-app

# Pick a specific template
npx create-expo-app@latest my-app --template blank-typescript

# Start from any GitHub repo template
npx create-expo-app@latest my-app --template https://github.com/user/repo

The official templates

PropTypeDefaultDescription
defaultExpo Router + tabsTypeScriptThe recommended start — file-based routing, example tabs.
blankMinimalJavaScriptOne screen, nothing else. Build up from scratch.
blank-typescriptMinimalTypeScriptSame as blank, typed.
tabsBottom tabsTypeScriptExpo Router with a tab layout scaffolded.

When a template isn’t enough

Templates give you plumbing, not a product. You still build every screen, wire the data, and handle auth by hand. That’s fine for learning — but if you’re starting a real app, a generic template leaves 90% of the work. This is where describing your app and generating a real, structured Expo project (screens, nav, and data already wired) saves the most time.

Gotchas

  • Templates go stale. A repo template pinned to an old Expo SDK can break on install — prefer the official templates or a recently updated repo.
  • The default template now uses Expo Router (file-based routing), not the old React Navigation setup many tutorials still show.
  • After cloning a GitHub template, run npx expo install to fix native dependency versions for your SDK.

FAQ

What’s the best Expo template to start with? The default template (Expo Router + TypeScript) for most apps; use blank-typescript if you want a clean slate.

How do I use a custom template? Pass a GitHub URL to --template.

Related components

Skip the boilerplate

Describe your screen in ShipNative and it wires up the component for you — in a real, exportable React Native app.

Generate it with AI →