I build iOS apps in SwiftUI and full-stack web apps in Next.js — and ship them.
New York City · open to full-time and contract work
Stack: Swift · SwiftUI · SwiftData · CloudKit · TypeScript · Next.js · React · Stripe
- An app in the App Store. The BitBinder passed Apple review and ships to real users — SwiftData with CloudKit sync, on-device speech recognition, Vision-based text import.
- 439 unit tests and 14 end-to-end tests in Showrunner, plus client-side encryption and a documented list of known limitations.
- Four live production sites, not localhost screenshots: icanrunashow.com · rolecall.space · billspilt.com · the-trip-handler
- Payments in production. Stripe per-person collection, invite links, and approval flows in The Trip Handler.
Each of these repos has a real README — architecture, technical decisions, setup, and what I'd do differently. Open any one of them.
| Project | What it does | Stack |
|---|---|---|
| The BitBinder — App Store | Stand-up comics capture, record, transcribe, and refine material — the whole life of a joke in one app | SwiftUI, SwiftData, CloudKit, AVFoundation, Speech, Vision |
| Showrunner — icanrunashow.com | Plan a live show's lineup, import the schedule from a photo, then run it in full-screen live mode with cue timers | React, TypeScript, Vite, PWA, client-side encryption |
| The Trip Handler — demo | Group trips end to end: invite links, applications, approvals, lodging, itinerary, and Stripe-collected payments | Next.js, TypeScript, Stripe |
| RoleCall — rolecall.space | Filmmakers plan a shoot: paste a script, extract cast, generate a shot list, build the schedule | Next.js, TypeScript, Clerk, Vercel |
| VlogNudge | ADHD-aware iOS app that nudges you to film one day-in-the-life clip at a time | SwiftUI, notifications, video capture |
| BillSpilt — billspilt.com | Roommate bill splitting, made painless | Next.js, TypeScript |
I build for problems I actually have. The BitBinder exists because comics keep their material scattered across Notes files and voice memos. The Trip Handler exists because organizing a group trip over a group chat is chaos. Knowing the workflow first is why the tools fit it.
I ship the unglamorous parts too — auth, permissions, payments, offline sync, App Store review — and I prefer on-device processing to sending user data to a server when the platform lets me.
📫 taylordrew4u@gmail.com — happy to talk about iOS, full-stack TypeScript, or both.



