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