A GitHub template for kicking off new mobile projects fast. Monorepo layout, pre-wired Expo starter app, Claude Code skills already vendored, and the tooling Matt uses on every project.
.
├── apps/
│ └── mobile/ # Expo starter (rename per project)
├── packages/ # Shared packages (UI kits, libs, configs) go here
├── .claude/skills/ # Skills exposed to Claude Code (symlinked from .agents/)
├── .agents/skills/ # Vendored skill source (shared with other agents)
├── skills-lock.json # Pinned skill versions
├── pnpm-workspace.yaml
├── turbo.json
└── CLAUDE.md # Project rules for Claude Code
- Push this repo to GitHub.
- In Settings → General, tick Template repository.
- Click Use this template to spawn a new project.
# 1. Rename the starter app
mv apps/mobile apps/<your-app>
# 2. Update apps/<your-app>/package.json -> "name"
# 3. Update apps/<your-app>/app.json -> name, slug, bundleIdentifier, package, scheme
# 4. Install deps
pnpm install
# 5. Boot the app
cd apps/<your-app>
pnpm devpnpm dev # Turbo dev across all apps
pnpm build # Turbo build
pnpm lint # oxlint across all apps
pnpm check-types # Type-check everything
pnpm format # oxfmt write
pnpm format:check # oxfmt --check (CI gate)- New mobile app:
apps/<name>— copyapps/mobileas a starting point, then updatepackage.jsonname andapp.jsonidentifiers. - Backend / server:
apps/<name>-server— any node/bun/edge runtime works; just add topnpm-workspace.yaml(covered byapps/*). - Shared package:
packages/<name>— typed shared UI, hooks, utils, or config.
Skills live in .agents/skills/ (the source of truth, shared across agents) and are symlinked into .claude/skills/ so Claude Code picks them up. Two skills are Claude-only and live directly under .claude/skills/:
git-commit-pushimplement-plan
Pinned versions live in skills-lock.json. Update with your usual skill-install tooling when bumping versions.
- Node: 24+ (see
.nvmrc) - Package manager: pnpm 11+ (
packageManagerfield is enforced) - Isolated node_modules (
.npmrcsetsnode-linker=isolated) — required for React Native apps with different SDK versions side-by-side. - Toolchain is all oxc:
oxlintfor lint,oxfmtfor format. No Prettier, no ESLint. (oxfmt is pre-1.0; expect formatting changes between bumps.) - Don't run servers locally unless asked — Matt runs them.
- Don't commit on
mainunless asked. On branches/worktrees, commit freely.
MIT — free to use, modify, and redistribute. Attribution required: keep the copyright notice in LICENSE intact in copies or substantial portions. Ships as part of tinyorbit.ai.