Skip to content

Work/TeamTipOut

TeamTipOut

A tipout calculator for restaurant teams. Time-weighted splits, saved crews, and an export the whole shift can see, designed and built entirely by me.

ROLE
Design & development
YEAR
2025–2026
PLATFORM
iOS
STATUS
Live on the App Store
TeamTipOut — The crew, saved between shifts

The crew, saved between shifts

04 / 06

Screen 4 of 6: The crew, saved between shifts

The problem

Restaurant staff split tips at the end of every shift, usually on paper and usually wrong.

TeamTipOut works out what each support role earns from time-weighted overlap with each server, splits it against a saved crew, and exports the result as something you can hand to a manager without an argument.

This one is entirely mine: product, interface, backend, the store submission and the 2026 redesign. It runs on Supabase with row-level security, RevenueCat for subscriptions, and expo-print for the export.

The people using it are tired, it is midnight, and the room is loud. That constraint shaped every decision: big figures, few containers, and contrast tuned for a phone held at arm's length.

The result

Live on the App Store and actively maintained. It is one codebase that builds for Android too; that build has not been released, because nobody has needed it yet. Design and development were both mine.

STATUS
Live on the App Store
PLATFORM
iOS, from a cross-platform codebase
SHIPPING SINCE
2025
The product

Three screens carry it.One device, three states.

TeamTipOut — state 6

STATE 01 / 03

The crew

A shift is not a fresh start. Crews are saved, roles persist, and clock-in and clock-out times are the only thing anyone has to enter at the end of a long night.

TeamTipOut — state 2

STATE 02 / 03

The split

Support roles earn from the servers they actually overlapped with. The pool, the weights and every individual share are visible at once, so nobody has to take the number on trust.

TeamTipOut — state 3

STATE 03 / 03

The receipt

A shift ends in something shareable: a PDF or a link that shows the working, not just the total. Arguments about tips are usually arguments about arithmetic nobody can see.

Under the hood

Two decisions worth explaining.The parts that took the longest.

D—01

Why an equal split is unfair

On a staggered shift an equal split quietly moves money. A busser who worked the last two hours takes the same as one who worked the whole night, and the person who did more subsidises the person who did less.

So the unit of calculation is overlap, not headcount. Each support person accrues weight against each server for the minutes they were both on the floor, and the pool is distributed against that matrix.

splitTipout.tsTS
// weight is minutes on the floor togetherconst weight = overlapMinutes(support, server) // each server funds only their own overlapconst share =  server.pool * (weight / totalWeight(server)) return servers.reduce(sum, 0)

D—02

The 2026 redesign, honestly

The first version was a generic dark UI, the default look of an app built quickly. It worked, and it was forgettable, and it made a tool people use in a loud room at midnight harder to read than it needed to be.

The rebuild moved to a warm editorial system: cream, forest and a mint accent, Fraunces for figures and Plus Jakarta Sans for the interface. Bigger numbers, fewer containers, rules instead of cards.

theme.tsTS
// before: system defaults, everything a cardbg: '#16181C'  surface: '#22262C'font: system   accent: '#4F8CFF' // after: warm, editorial, figures firstbg: '#F3F0E7'  ink: '#163A2B'accent: '#7BE6A3'display: 'Fraunces'  ui: 'Plus Jakarta Sans'

WHAT IT IS BUILT ON

CLIENT
React Native · Expo SDK 54 · expo-router · TypeScript strict
BACKEND
Supabase: Postgres, row-level security, Edge Functions
COMMERCE
RevenueCat: subscriptions, wired for both stores
OUTPUT
expo-print · Sentry · EAS Build · App Store Connect

CREDITS

Design and development entirely my own: product, interface, backend, the store submission and the 2026 redesign.


STATUS

Live on the App Store and actively maintained. The Android build comes from the same codebase and has not been released.

NEXT PROJECT

Termkont

Marine container sales for a company in Saint Petersburg. A catalogue, a request pipeline, and an admin dashboard behind it.

Taking on new projects

Tell me what you’re building.A written scope and a fixed quote before any money moves.

I reply to everything within one working day. If I’m not the right person for it, I’ll tell you straight away rather than three weeks in.