NC Nati Correa
AI systems and agents
40.7128 N / 74.0060 W
LOG / 04
/ Case study / Personal product / Launching soon

AZNA

A class-planning tool I built for myself while getting certified to teach, grown into a full cross-platform product in six days: web, native iOS, and Apple Watch, with server-enforced entitlements.
/ The problem

I recently earned my 50-hour Yoga Sculpt teaching certification, and one pain point kept surfacing in training and in conversations with working instructors. The slowest part of preparing a class is syncing the playlist to the sequence. Musicality can make or break a class, and a class where the music is out of step with the movement falls flat.

So I built myself a Claude Code skill that plans the class and times every block to the actual tracks. A few real classes later, the market was clear: most instructors teach as a passion project or a side job alongside a full-time career, and prep time is their scarcest resource.

/ What I built

AZNA gives instructors that prep time back while keeping every class personal to them: their sequence, their music, their voice, assembled faster. It is fully cross-platform: a Next.js web app, a native iOS app, and an Apple Watch companion that runs the live class clock with haptic countdowns, HealthKit workout tracking, and two-way state sync with the phone. Spotify connects through OAuth, a BPM engine times each block to real tracks, and the finished playlist lands in the instructor's own account. An LLM cue writer drafts coaching cues for every block, streamed over server-sent events, validated in code, and backed by a deterministic fallback so a bad model answer can never break a build.

The engineering underneath is production-grade: 37 rate-limited API routes, 22 database tables carrying 45 row-level security policies, server-enforced quotas and entitlements behind the trial, free, and $9.99 Pro tiers, and a 63-file test suite with an LLM-as-judge eval harness, run in CI on every push. Six days and 110 solo commits took it from first commit to a fully branded product staged across all three platforms, built on the deterministic timing engine from my original Python skill, ported to TypeScript and tested to numeric parity. The public App Store launch is the remaining step.

40,041lines of product code
110commits in six days, solo
37API routes
63test files run in CI
/ The product
AZNA teach screen running a live class block
The live class clock, timed to the track.
AZNA class feed screen, scrollable
The class feed: saved, remixable. Scroll it.
AZNA library screen
The library, personal to each instructor.
AZNA Apple Watch companion showing the class countdown
The Watch: haptics, workout tracking, sync.
aznaapp.com, the live site
/ Proof
Stack / measured straight from the repoWEB ..................... NEXT.JS, 27,218 LINES OF TYPESCRIPT
IOS + WATCH ............. NATIVE SWIFT, 11,969 LINES, 22 VIEWS
API ..................... 37 ROUTES, TOKEN-BUCKET RATE LIMITS
DATA .................... SUPABASE, 22 TABLES, 45 RLS POLICIES
MUSIC ................... SPOTIFY OAUTH (PKCE) + BPM ENGINE
CUES .................... LLM WRITER, SSE STREAMING, EVAL-JUDGED
TESTS ................... 63 FILES, CI ON EVERY PUSH
STATUS .................. LAUNCHING SOON
Back to the build log