βΉοΈβΉοΈβΉοΈ This example project is not actively maintained and is using an old version (v9) of tRPC βΉοΈβΉοΈβΉοΈ
If you're looking for alternatives, have a look at https://github.com/t3-oss/create-t3-turbo and other reference projects on https://trpc.io/docs/awesome-trpc
Zero-API, React, & TypeScript
β‘οΈ Probably the fastest way to build a React Native app with your own backend β‘οΈ
A monorepo containing:
- Next.js web app
- React Native app with Expo
- A tRPC-API which is inferred straight into the above.
- Prisma as a typesafe ORM
In tRPC you simply write API-functions that are automatically inferred straight into your frontend - no matter if it's React, React Native, or something else (that is TS/JS-based).
Very rough video recorded in 2 minutes π
You will need docker compose to run the postgres database. It comes with the Docker Desktop App
git clone [email protected]:KATT/zart.git
cd zart
yarn
yarn dev
Press
i
afteryarn dev
in to launch the iOS Simulator.
Now - head over to one of the ./apps
, whilist updating a router in tRPC or the Database Schema and see that the data is directly inferred.
Command | Description |
---|---|
yarn dev |
Starts Postgres, Expo & Next.js |
yarn db-up |
Starts Postgres on port 5466 |
yarn db-migrate-dev |
Runs the latest Database migrations after updating the Prisma schema |
yarn db-nuke |
Stops and deletes the the database |
.
βββ apps
β βββ expo # Expo/RN application
β βββ nextjs # Server-side rendered Next.js application
βββ packages
β βββ api # tRPC API
β βββ react # Shared React-helpers
β βββ react-native # RN components. **Could** be shared between Expo & Next.js if you're in to that sort of thing.
βββ prisma # Prisma setup
- Create a Postgres Database
- Set env
DATABASE_URL
pointing towards that db - Configure "Root Directory" as
apps/nextjs
and tick Include source files outside of the Root Directory in the Build Step.
Shoot me a message on Twitter!
- tRPC and this example is made by @alexdotjs
apps/expo
is basically a copy-paste fromexpo-next-monorepo-example
by axeldelafosse.