A Filipino-focused iOS app that turns a group restaurant bill into exact peso amounts per person — then sends it through GCash or Maya in two taps.
Built by devshad.
| Even Split | Itemized | Pay | History | Split Detail |
![]() |
![]() |
![]() |
![]() |
![]() |
Even Split
- Enter the total bill using the large keypad
- Add up to 10 people — tap any name to rename inline
- Per-person amount updates live and rounds up to the nearest peso so the payer is always covered
Itemized Split
- Add individual items with a name and price
- Assign each item to specific people using tap-to-toggle chips
- Unassigned items split evenly among everyone
- Per-person totals recalculate instantly
Service Charge & Tip
- Toggle service charge on/off (editable %, defaults to 10%)
- Add a flat peso tip — applied proportionally to each person's share
Pay via GCash or Maya
- Tap any person's row to open the payment sheet
- Amount is auto-copied to clipboard
- One-tap launch into GCash or Maya
- Falls back gracefully if the app isn't installed
Split History
- Every saved split is stored locally — no account needed
- View a full breakdown of any past split including per-person amounts and items
- Delete individual splits with a long-press or the trash icon
| Layer | Technology |
|---|---|
| Framework | React Native + Expo SDK 54 |
| Routing | Expo Router (file-based) |
| State | Zustand |
| Storage | AsyncStorage (local, no backend) |
| Icons | lucide-react-native |
| Haptics | expo-haptics |
| Clipboard | expo-clipboard |
| Deep links | expo-linking → gcash:// / mayaapp:// |
- Node.js 18+
- Expo Go app on your iPhone
git clone https://github.com/0xShad/Split.git
cd Split
npm installnpx expo startScan the QR code with Expo Go on your iPhone.
Note: Deep links to GCash and Maya only work on a real device with those apps installed. The clipboard fallback works everywhere.
app/
_layout.tsx # Stack navigator shell
index.tsx # New split screen
history.tsx # Past splits list
split/[id].tsx # Saved split detail
components/
Keypad.tsx # Custom numeric keypad
PersonRow.tsx # Per-person amount row
ItemRow.tsx # Itemized mode item card
PaymentSheet.tsx # GCash / Maya bottom sheet
Dialog.tsx # Custom in-app dialog
store/
splitStore.ts # Active split state (Zustand)
historyStore.ts # Saved splits + AsyncStorage
utils/
calc.ts # Split math (even, itemized, rounding)
haptics.ts # expo-haptics wrappers
constants/
colors.ts # Design tokens
Per-person amounts are always rounded up to the nearest peso so the person collecting is never short. In even split mode this means the sum of shares may exceed the exact grand total by a few pesos — this is intentional.
MIT




