Skip to content
SYSTEMS NOMINALall platforms operationalSOC 2 Type II · ISO 27001 in progress

Split & Pay — Group expenses.

Bill-splitting with public share routes — anyone with the link can view a tab and mark their share paid via Venmo, Zelle, Cash App, or cash. No signup required to view, rate-limited settle API, and per-share OG images so the link previews cleanly.

Year
2025
Engagement
Founder-led product, public web surface live
Platforms
iOS · Web
Stack
Expo (iOS/Android) · Next.js · TypeScript
Dinner
Hen of the Wood, Burlington
r/maple-3p2x
  • Maple-glazed duck$32.00
  • Roasted carrots$14.00
  • Bread + butter$8.00
  • Wine pairing × 4$76.00
Total · 4 ways$130.00
Your share$32.50
Problem

Split a tab, share a link, settle without IOUs

Other splitter apps make every participant create an account, add friends, and wait for the rest to install before a balance settles. Most one-off tabs — dinners, group trips, shared subscriptions — never resolve because the friction is on the wrong side.

Approach

Public share routes via short room codes — anyone with the link sees the tab, no signup required to view a balance. Settlement is a status flip with a free-text method tag (Venmo, Zelle, Cash App, cash) — splitnpay does not act as a payment processor, the money moves out-of-band and the room records it.

Architecture
  • Mobile
    iOS + Android via React Native — per the product page's `operatingSystem` metadata.
  • Web
    Next.js App Router with public `/apps/splitnpay/r/[code]` share routes and per-room OG images.
  • Settlement
    Status-flip API (`paid` / `pending`) tagged with `method` (Venmo / Zelle / Cash App / cash) — not a payment processor.
  • Hardening
    Settle API is rate-limited per-IP and uses per-JTI dedup so a replayed request can't flip the same share twice.
Outcomes
  • 0 signups
    To view a tab — the participants who would never install are still in the flow.
  • OG per share
    Each `/r/[code]` URL renders a custom OG image so previews carry the room context.
  • Replay-safe
    Per-JTI dedup on the settle API closes the duplicate-submission window inherent to public routes.
What we'd build next
  • A real room-creation API with entropy-checked codes — current demo codes are hardcoded.
  • Multi-currency support beyond the single-`currency` field, ideally with a per-room rate snapshot.
  • Per-room rate-limit key on the settle API in addition to the current per-IP limit, so a single shared NAT can't burn another room's budget.
Case study verified against code on 2026-05-20
Have something in mind?

Want one of these for your team?

Two engagements open for Q3 2026. Discovery starts at $24K.

Split & Pay — Case study | 802.software | 802.software