Skip to content
After hours

iPhone app · sneaker store

In development

Hype Room

An iPhone app for Hype Room, a sneaker and streetwear store: a free weekly draw, the store catalog, and in-store holds. Pre-launch demo with sample data.

Hype Room app, Drops tab: a $1 draw for a pair of Jordan 1s. Entry is free, and one winner may buy the pair for $1. Below are the number of entries and the time left.
Role
Solo: design and code, for the store owners
Timeline
Jul 2026 to now
Stack
TypeScript, Expo, React Native, Expo Router, SQLite, Jest

In development. Pre-launch demo with sample data. Not on the App Store. Status checked Oct 15, 2026.

By the numbers

58

tests in 8 suites

168

hours checked in each of 3 weeks of the draw calendar

48 h

before an in-store hold expires

The idea

Hype Room is a sneaker and streetwear store. The owners wanted an iPhone app where shoppers enter a free weekly draw, browse the store, and ask the staff to hold a pair for pickup.

What I built

An Expo app with five tabs. All data goes through one Catalog interface backed by sample data, so live inventory can replace it without changing any screen. One app-wide clock drives every countdown.

Shopper state, such as draw entries, holds, saved items and shoe size, stays on the phone in expo-sqlite’s key-value store. There is no backend yet, and no money moves through the app.

The hard parts

  1. 01 A weekly draw calendar that holds across DST

    Each weekly draw has a dated id, built from a fixed starting week with calendar math that is safe across daylight saving changes, so an entry never carries into the next week. A test steps through every hour of three weeks, including the weeks when DST ends and starts, and checks that two draws are never open at once.

    Where in the code: src/data/__tests__/drops.test.ts

  2. 02 Hold codes staff can read

    Hold codes use a 31-character alphabet with no 0, O, 1, I or L, so staff can read them at the counter. A pure helper sets the 48-hour expiry, and tests cover it.

    Where in the code: src/lib/pickups.ts

  3. 03 A free draw with official rules

    The draw is free to enter. The app has an Official Rules screen, and the draw pages show a no-purchase-necessary disclosure.

    Where in the code: src/data/store.ts

What’s next

Replace the sample catalog with the store’s live inventory, through the same Catalog interface.

Hype Room app, Shop tab: the product grid with a size filter.
Hype Room app, Merch tab: the store’s own sweatsuits and sets.