
Expo, Expo!
Background
Expo, Expo! is a starter kit and learning project designed to accelerate future React Native app development. I created Expo, Expo! to capture best practices and emerging patterns as I encounter them while building mobile applications.
Rather than starting from scratch each time, Expo, Expo! provides a curated foundation that includes sensible defaults, a scalable project structure, and built-in tooling to help ship higher-quality apps faster.
Working on "Expo, Expo!"
Expo, Expo! started as a lightweight Expo-managed workflow, focused on getting the essentials right — from navigation and theming, to authentication flows and testing. It's designed to grow with the demands of real-world projects.
As I work on client projects and personal apps, I'm folding in improvements and lessons learned — such as file organization, form handling patterns, authentication best practices, and how to structure API integration for maintainability.
The goal is to create a robust, battle-tested starting point that still feels lightweight enough to adapt per project needs.
What's Next
Several enhancements are on the near-term roadmap:
-
Monorepo Migration: I'm planning to move Expo, Expo! into a Turborepo structure, allowing me to split backend services (like Supabase integration, Drizzle ORM schema management) into their own packages.
-
Database Abstraction: Integrating Drizzle ORM for type-safe database handling. This will streamline schema definitions across both backend and mobile projects.
-
Backend Exploration: Although Supabase is the first candidate for backend services, I'm exploring alternatives (such as direct PostgreSQL setups with edge functions) to optimize for different project needs.
-
Production Hardening: Implementing CI/CD workflows, automated testing, and production build optimizations to make it easier to deploy apps at scale.
Expo, Expo! will evolve as a living project — growing as I grow as a React Native engineer.
The Technology
- Expo (managed workflow)
- TypeScript
- Drizzle ORM (planned)
- Supabase (planned backend alternative)
- Jest (testing)
- ESlint + Prettier
- Zod (for schema validation)
- Tanstack Query (data fetching and caching)