100cims is a mobile mountaineering app built with Expo, powered by expofast.app.
This repo is part of the ExpoFast platform — a suite of tools to build, launch, and scale React Native apps 10x faster. From icon/splash generation to analytics and store asset automation — check it out.
100cims is a mobile app to track your mountain summits and join hiking challenges. Users can:
- Log mountain summits and view their progress
- Join curated regional hiking challenges (Catalonia, GR-20, Alps…)
- Organize group hikes via Plans and coordinate through Chat
- Earn points based on mountain difficulty
- Climb the rankings and celebrate your achievements
yarn
Then:
yarn start # or: expo start
Before running the project, leverage the.env.example
file to fill the required environment variables:
EXPO_PUBLIC_API_URL=http://localhost:8081/
DATABASE_URL=postgresql://admin:admin@localhost:5432/my_local_db
MY_AWS_ACCESS_KEY=
AWS_ACCESS_SECRET_KEY=
AWS_PUBLIC_BUCKET_NAME=
AWS_BUCKET_REGION=
APP_NAME=
SHEETS_CLIENT_EMAIL=
SHEETS_PRIVATE_KEY=
EXPO_PUBLIC_EXPOFAST_ANALYTICS_KEY=
AWS_*
→ used to store summit images on S3.SHEETS_*
→ optional: logs API errors to Google Sheets.EXPO_PUBLIC_EXPOFAST_ANALYTICS_KEY
→ integrates expofast analytics.
Authentication supports both Google and Apple sign-in.
-
For Google OAuth, you need:
EXPO_PUBLIC_ANDROID_CLIENT_ID= EXPO_PUBLIC_IOS_CLIENT_ID= EXPO_PUBLIC_WEB_CLIENT_ID=
Also, generate and include your
google-services.json
. -
For Apple OAuth, follow Expo’s official Apple Auth setup guide.
-
For JWT auth, generate a UUID and assign it to
AUTH_SECRET
:AUTH_SECRET=
To update translations:
yarn translations
This will extract messages and update translations/raw-en.json
. Copy the new keys manually into ca.json
and es.json
.
yarn db:local:up # Starts local DB via Docker
yarn db:push # Push latest schema to the DB (use correct env vars)
Then, manually run the SQL in api/db/init-script.sql
to initialize basic data.
- Expo + React Native: unified dev workflow across iOS/Android/web
- expo-router: File-system routing like Next.js
- Elysia.js + Drizzle ORM: API routes with type-safety
- eden: end-to-end API types across client/server
- nativewind: Tailwind-style utility classes in React Native
Want to build apps like this, faster? Visit expofast.app.
This project uses the full suite of ExpoFast services including analytics, asset automation, and store review flows.
Made with ❤️ by @jvidalv