Case study
GoToBeat
Live Music Discovery & Ticketing
Role
Scope
Stack
Live
What I built.
- 01
Took over an existing codebase and moved it forward: 44 commits, 96 files and about 8,650 lines added.
- 02
Rebuilt ticket selection and checkout to work well on phones (a slide-up panel) and desktop, with clear validation on the payment step.
- 03
Stopped checkout breaking on a refresh or a direct visit, improved payment confirmation, and showed the lowest ticket price up front, in euros.
- 04
Pulled DICE ticket sales in automatically every night, so admins see GoToBeat, DICE and other external sales for an event in one place.
- 05
Gave the admin team full control of artists, venues and genres, with safeguards against deleting live events; past events are closed out automatically every night.
- 06
Upgraded Meta ad tracking so marketing can see which ads lead to sales, and built automated tests that act like real users to catch problems before customers do.
- 01
Remix (Vite) on AWS Lambda through SST v3, with DynamoDB via ElectroDB entities and all data access through one business layer.
- 02
Ticket drawer (bottom sheet on mobile, side sheet on desktop) on shadcn; checkout loader and action restructured with refresh detection and redirects; Stripe PaymentIntents created and verified server-side.
- 03
A new DiceTickets DynamoDB table with composite keys and two GSIs, and a rewritten, typed DICE client (about 1,500 lines consolidated) with retries and chunked processing.
- 04
A daily SST cron that marks past events, checks Stripe payments per event, locks final ticket counts and imports the previous day of DICE sales.
- 05
Meta Pixel with Advanced Matching plus server-side Conversions API events, with the pixel chosen per SST stage.
- 06
Jest integration tests against DynamoDB and a Playwright suite of 10 specs with page objects, covering admin CRUD, search and the full purchase flow on desktop and mobile.