MobileOne-time

Junco

Expo and Next.js monorepo sharing screens, auth and billing

About this starter

Junco ships one product on three platforms. A Turborepo holds an Expo app and a Next.js app that share screens through Solito, a tRPC API, Drizzle on Postgres and Better Auth sessions across web and native. Stripe handles web subscriptions and RevenueCat handles in-app purchases, with a single entitlements table so a user who pays on one platform is unlocked on all.

It is opinionated about shared code, and roughly 70% of the UI is written once. The entitlements sync is the part that would take longest to build yourself. The limitation is complexity: navigation differences between web and native leak into shared components, and debugging a build issue can mean reading Metro, Next and Turborepo logs together.

Highlights

  • 01One entitlements table across web and app stores
  • 02About 70% of UI shared via Solito
  • 03tRPC API used by both clients

Tags

Related starters

More in Mobile
  • Pocketwatch

    Featured

    Expo and Supabase starter with RevenueCat paywalls and push notifications

    • expo
    • revenuecat
    • supabase
    One-time$179 once
  • Open-source Expo Router starter on Firebase with offline-first data

    • expo
    • firebase
    • offline
    Open sourceFree
  • Flutter and Supabase starter with realtime chat and maintained releases

    • flutter
    • supabase
    • chat
    Subscription$12/mo
Live demo · Boilerplate Atlas— View template →