Skip to content

brckfrc/splitsnap

Repository files navigation

SplitSnap

Shared expense tracking for groups (friends, roommates, trips). iOS-first app built with Expo SDK 55, React Native, TypeScript, Expo Router, Tamagui (provider, themes, bottom sheets), and Supabase.

Project Tracking

Primary tracking document: ROADMAP.md — weekly progress, notes, embedded screenshots, and video links

Screenshots: PNGs are organized by week under docs/roadmap-screenshots/ (same images as in the roadmap; useful for quick browsing in the repo or on GitHub).

Weekly Progress Videos

Playlist (all weeks): YouTube playlist

Week Video
1 Week 1 Video
2 Week 2 Video
3 Week 3 Video
4 Week 4 Video
5 Week 5 Video

Requirements

  • Node.js 20.19+ (Expo SDK 55)
  • macOS + Xcode for iOS Simulator
  • A Supabase project (URL + publishable/anon key)

Setup

  1. Install dependencies

    npm install
  2. Environment

    Copy .env.example to .env and fill in:

    • EXPO_PUBLIC_SUPABASE_URL
    • EXPO_PUBLIC_SUPABASE_KEY

    Never commit .env.

  3. Supabase database (optional but required for real groups/friends)

    If you use the linked Supabase project and CLI:

    supabase db push

    Migrations live under supabase/migrations/. See supabase/README.md for archive/pg_cron notes and RPC summary. Schema reference: docs/DATABASE.md.

  4. Run on iOS (development build)

    This project uses native modules (e.g. MMKV). Use a development build, not Expo Go:

    npm run ios

    Or: npx expo run:ios

    First run generates native projects via prebuild (if ios/ is ignored in git, this is expected on each fresh clone). The same flow works on a physical iPhone (USB or network) with a dev client — not Expo Go.

Project layout

Scripts

Command Description
npm start Start Metro (use with dev build on simulator/device)
npm run ios Build and run iOS dev client
npm run check Typecheck + lint — run before commits / PRs
npm run typecheck tsc --noEmit (strict TS)
npm run lint ESLint via Expo
npm run lint:fix ESLint with auto-fix
npm run reset-project Template helper — moves starter to app-example (use with care)
npm run android Expo template — not a supported product target (iOS-only scope; see docs/AGENTS.md)
npm run web Expo web — optional preview only; not the production target

Learn more

About

iOS-first app to track shared group expenses. Built with Expo, React Native, TypeScript, and Supabase (Auth, PostgreSQL, Storage)

Topics

Resources

Stars

Watchers

Forks

Contributors