Cover Image for Expo, Expo!

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)

O
t
h
e
r
P
r
o
j
e
c
t
s