Expo mobile, web and API for creating Farcaster native applications.
Version: v0.0.0
The one stop repository for native mobile farcaster experiences offering the same to web and additional API building possibilities.
That way with the same code written once you can
- Run a native mobile app
- Run a responsive web app
- Farcaster Frames Backend and general API/backend
Write once, enjoy everywhere.
to test follow instructions for full expo or use Docker for Web + API routes
- Clone the repository
npm install
npm cache clean --force
npm expo start
You'll now be greated by Expo where you can check their docs
Create-Expo-Stack was used to jumpstart this repo in one command npx create-expo-stack@latest expocaster --expo-router --drawer+tabs --nativewind --firebase
npm install farcasterkit
The stack used has NativeWind for styling so you can use the typical className=""
syntax your might now from web with Tailwind.
otherwise it's straight Typescript and Expo.
- fork the repository
- make your changes
- submit a PR
- create an Issue
Official Expo Deployment Documentation here to be used as most up to date document and reference checked if the below doesn't work!
IMPORTANT: use the .dockerignore to control what is included in the Docker Image! .env is excluded and env variables shall be used.
to build
docker build -t expocaster .
to run
docker run -d -p 3000:3000 expocaster
We are using NodeJS as deployment in the Dockerfile trying to build the smallest Dockerfile we can (without using distroless).
To install Docker on Ubuntu go here also make sure to use docker group instead of sudo if possible :)
Now by building the docker container you can deploy anywhere that supports docker including Kubernetes, DigitalOcean Droplets, Akash.network and the likes.
A Helmchart deployment for the sample, where you can simply change the Dockerfile of your choosing and get up and running will follow soon.
Expo's Official Documentation can be found here and should be referenced if the below doesn't work
the one command build expo web for prod and use express routing
npx expo export -p web && cp server.js dist/ && cp package.json dist/
now you can copy the contents of dist/
to your nodeJS server root dir and serve with
node server.js
NOTE: this hasn't been made work, but is what documentation states! If you make it work please open a PR!
If your remote build doesn't work you may try prebuilding and then uploading like so:
this assumes you have vercel installed (npx vercel
) and configured
npx vercel build && npx vercel deploy --prebuilt