Founder · Product & AI Strategy
An AI surf coaching application that delivers consistent, data-driven technique assessments from a 25-second video clip — built from scratch to solve a real operational problem for a growing surf school.
25s
Max clip length analyzed
25
Frames extracted per clip
7
Technique dimensions scored
8
Skill levels in the rubric
Login
Upload
Profile
Analysis
Results
Breakdown
Coaching
A good friend owns a surf school on the Jersey Shore. He's been expanding beyond youth camps and one-on-one lessons into adult programming — adult camps, yoga-surf retreats, and a fitness-meets-surfing program built on a specific theory: that targeted strength training directly improves surfing performance.
To make that fitness-surfing program defensible and trackable, he needed a weekly assessment. Not instructor-led — that doesn't scale. Self-assessment. The kind a student could do independently, consistently, week after week, to actually see whether the training was translating into better technique.
The problem with self-assessment in surfing is that it's inherently subjective. Without a consistent framework, a student grading themselves this week is using different criteria than they used last week. The data doesn't mean anything if the ruler keeps changing.
Consistent scoring requires a consistent rubric. If the standard changes, improvement is invisible.
The strategic insight that drove the product concept
The product concept was simple: give every surfer the same AI coach, running the same rubric, every time. Upload a 25-second clip, get a score across seven technique dimensions, get specific feedback on what to fix and a drill for next session. Repeat weekly. Watch the numbers move.
That's not just a consumer app — it's the backbone of a trackable, scalable coaching program that a surf school can offer as a premium service. The strategic value is in the data over time, not the individual assessment.
The AI layer is Claude — specifically Claude's vision capability, which can analyze images and reason about what it sees. The core architectural decision was to treat each upload as a sequence of still frames rather than attempting real-time video analysis. The app extracts 25 frames from the clip, sends them to Claude alongside a detailed scoring rubric, and asks for a structured assessment across every dimension.
The rubric was the real research work. I synthesized best practices from coaching literature, professional surf training methodology, and technique instruction across board types and skill levels. The rubric isn't generic — it adapts based on the surfer's profile: board type, self-assessed skill level, and age range all feed into how Claude calibrates the scoring standard. A beginner on a foamie getting scored against shortboard performance criteria would be meaningless. The rubric is aware of context.
The analysis screen shows all 25 extracted frames being sent to Claude for assessment — a transparency decision that builds trust in the AI's output
25
Frames extracted and sent to Claude per clip
7
Technique dimensions: paddling, pop-up, bottom turn, speed generation, trim & flow, wave reading, snaps & turns
8
Skill levels from beginner to advanced, with board type and age range further calibrating the rubric
The rubric is server-side only — it never ships to the client. This protects the core IP while also keeping the prompt consistent and tamper-proof. Every assessment runs against the same source of truth regardless of who's uploading.
The stack was chosen for speed, cost-efficiency, and solo maintainability. Vercel handles the frontend and serverless functions. Supabase manages auth, user data, and clip history. GitHub handles CI/CD. The entire system was built and iterated using Claude Code — an AI-assisted development workflow that allowed rapid prototyping without a traditional engineering team.
AI
Claude API
Vision analysis, rubric scoring, coaching feedback generation
Frontend
Vanilla HTML/CSS/JS
No framework overhead — fast, lightweight, fully controlled
Backend
Vercel Serverless
API routes, video processing, prompt execution
Data & Auth
Supabase
User accounts, clip history, progress tracking
Build workflow
Claude Code + GitHub
AI-assisted development with CI/CD — solo founder velocity
Design
Claude Design
UI system, Deep Ocean navy palette, component design
The central UX challenge with an AI coaching product is credibility. If a user doesn't trust the score, the product is worthless — they'll dismiss a 6/10 as a bad algorithm rather than honest feedback. Every design decision in SurferIQ was made to earn and reinforce that trust.
The three-step upload flow is deliberate. Step 1 is the clip. Step 2 is the profile — board type, skill level, age range. Step 3 is confirmation. That profile step is doing important trust work: it signals to the user that the AI isn't applying a generic standard, it's scoring them against the right benchmark for who they actually are. A user who sees their board type and skill level reflected in the output is more likely to believe the score.
Step 1 — Upload clip (25s max)
Step 2 — Profile calibration
The analysis screen — showing all 25 extracted frames being processed — is another deliberate trust move. It makes the AI's work visible. Rather than a spinner with a generic "analyzing…" message, the user can see exactly what Claude is looking at. That transparency changes the relationship with the output.
The results screen structures feedback in a specific order: overall score and level label first, then what you did well, then the main fix, then the next session drill, then the skill-by-skill breakdown with the radar chart. That order is intentional — it's a coaching arc, not a report. It acknowledges what's working before it identifies what to fix, and it closes with something actionable rather than just leaving a score on screen.
Results screen — overall score, skill level label, positive feedback, main fix, and next session drill, in that order
Radar chart — visual skill profile across 7 dimensions
Drill detail — specific, executable next-session instruction
The radar chart is the longitudinal play. A single session's chart is useful. Six weeks of charts layered on a progress view is the product that actually demonstrates improvement — which is the whole point of the surf school program. The chart isn't a feature, it's the metric that makes the coaching program defensible.
The "Continue as guest" option on login was a deliberate friction reduction decision. First-time users shouldn't have to commit to an account to experience the product. The account value — saved history, progress tracking, the radar chart over time — reveals itself through the experience. That's the conversion path.
SurferIQ is a one-person operation at the moment, which means every architectural and operational decision has to account for solo maintainability. The stack was chosen specifically for this: no complex infrastructure, no operational overhead that requires a team to manage, and a development workflow (Claude Code) that dramatically compresses the time between idea and shipped feature.
Cost management is real at the API level. Each clip analysis involves sending 25 frames to Claude, which has meaningful token cost at scale. Prompt caching was implemented early to reduce redundant processing — the rubric and system instructions are cached, so each analysis only burns tokens on the unique frame data and user profile. This keeps per-assessment cost manageable as the pilot grows.
Vercel
Serverless deployment — scales automatically, zero infrastructure management
Cached
Rubric and system prompts cached at the API layer — only frame data burns tokens per assessment
GitHub CI/CD
Push-to-deploy workflow — production updates in under 2 minutes
The pilot model is intentional. Rather than a public launch, SurferIQ is being introduced through the surf school's existing student base — a controlled group of real users with a genuine motivation to improve, coached by an instructor who can validate whether the AI feedback aligns with what he'd say in person. That instructor feedback loop is the quality check that no amount of internal testing can replicate.
Supabase handles auth, storage, and the user data layer. The email auth flow, password reset, and session management are all production-ready — not mocked. This matters operationally because the surf school program requires students to track their own progress week over week, which means account continuity is load-bearing, not optional.
The immediate next step is expanding the pilot cohort. The first wave of testers are going through the onboarding now — uploading clips, getting assessments, and providing feedback on whether the coaching output matches what they know about their own surfing. That data will drive the next rubric iteration.
The longer-term roadmap is product-driven. The 4-week training plan feature is in design — a structured program that combines the weekly AI assessment with a fitness regimen, giving the surf school a complete packaged offering rather than a standalone tool. That's the commercial product: not just an assessment app, but the operational backbone of a premium coaching program.
Analytics integration is next on the infrastructure side. Understanding how users move through the product, where they drop off, and which feedback elements they engage with will inform both the UX and the rubric over time.
The deeper question SurferIQ is testing is whether AI-powered assessment can become a standard part of surf coaching — the way video analysis became standard in professional sports. The technology is ready. The rubric is built. The pilot is the proof.