Full-Stack Developer for Sports Coaching PWA
Worldwide
ABOUT THE PROJECT Coach Command is a Progressive Web App that gives sports coaches a complete practice system: a drill library, practice-plan and skill-ladder builders, a hands-free "Live Mode" that runs a practice on a tablet on the field, an import tool that pulls drills in from links/photos/files, and the heart of the product, a development loop. A coach assigns work, an athlete does it and marks it done, the coach tracks each athlete's progress up a skill ladder, and the app uses that history to suggest the next step. It is built to be the coach's daily habit. The brand is the coach's; we power it invisibly. The core of this build is that development loop and the data it generates. Every time an athlete completes a drill or advances a rung, the app captures that as clean event data. That data is the product's most valuable asset, so logging it correctly from day one is a first-class requirement, not an afterthought. This is a founder-led product with a fully documented architecture. You are NOT designing the product or the database from scratch. There is a canonical schema, a design system, and detailed feature specs. Your job is to build it cleanly and to extend the existing structure without redesigning it. The founder is non-technical and maintains the code between sessions using AI tools (Cursor), so clear, plainly commented code is mandatory. TECH STACK (confirmed, no substitutions) - Frontend: Next.js (App Router) + React, built as an installable PWA, with Tailwind CSS - Backend: Supabase (Postgres, Auth, Storage, Row-Level Security, Edge Functions) - Payments: Stripe (subscriptions) - Hosting: Vercel - AI-assisted coding: Cursor (you use it daily) WHAT ALREADY EXISTS (you build from these, you do not invent them) - A canonical data-model / schema doc (tables, enums, RLS rules) and a controlled-vocabulary seed list - Detailed feature specs for Live Mode, the skill-ladder system, homework, and the import system - A locked design system (colors, fonts, icons), a finished home-screen mockup, and a working Live-- Mode timer mockup to match - Pre-built, validated drill/plan/ladder content for the launch sport (loads as data) WHAT YOU WILL BUILD (first-version scope) 1. Schema foundation: stand up the documented Postgres schema in Supabase (solo AND club accounts, controlled-vocabulary lookup tables, drills/plans/ladders, the resource library), with a multi-tenant organization_id layer, a version column, and an append-only events table, all from day one. RLS enforced at the database level. 2. Auth and account model: email/password signup, role/account types as data, RLS so a coach only ever sees their own (or their club's) content. 3. Drill entry plus AI auto-fill: an under-30-second capture form; AI fills structured tags constrained to lookup-table values (never free-text); blank beats wrong. 4. Drill and Resource Library: search, favorites, a unified media library (photos/video links/diagrams stored once and referenced). Log searches that return zero results (this is un-backfillable product data). 5. Practice-plan and skill-ladder builder: one object with a format flag; drag-to-order; per-plan duration overrides. 6. Live Mode: the hands-free practice runner. Must work offline (service-worker caching, screen wake-lock, background audio) and log run events (start/skip/extend/complete) to the events table, syncing on reconnect. 7. Player-development tracker: a per-player progress overlay on the skill ladder. Tap a rung to advance its state (not started, working, mastered), with a computed progress meter. This is the loop's payoff and a perfect example of the extend-don't-redesign work this role is about. 8. Import: bring drills in from a pasted link, a shared post, an uploaded photo/PDF/DOCX, or a fixed-column club CSV template, into a staging-then-confirm flow (nothing enters the library unconfirmed). 9. Homework: assign existing content to players, player taps done, coach taps a positive acknowledgment; parents see read-only. 10. Branded PDF export ("Powered by Coach Command") plus a home-screen launcher built to match the provided mockup. 11. Stripe subscription checkout that activates a paid account, plus cost/abuse guards (rate limits, spend caps, signed URLs for uploads, no unauthenticated AI endpoints). DELIBERATELY NOT IN THIS BUILD (do not quote these): the marketplace buy/sell UI, full multi-coach club admin (seat-management UI), the COPPA parental-consent subsystem, and streaks/points/leaderboards. The schema reserves room for them; we are not building them now. One hard requirement that stays in from line one: no data is ever collected FROM a child. Coaches enter everything, there are no open free-text fields for minors, and under-13 routes through a parent. This privacy-by-design model is non-negotiable. WHAT I NEED FROM YOU - Proven Next.js App Router and Supabase experience, including Row-Level Security for multiple roles/tenants - Comfortable designing a clean, append-only events/telemetry schema and capturing events without slowing the user down - Comfortable building an offline-capable PWA (service workers, wake-lock, sync-on-reconnect) Experience with document/image parsing pipelines and queue-based background workers (for import) - You can take a finished mockup and reproduce it faithfully (spacing, color, behavior), not "your interpretation" - You extend an existing schema and follow the spec's precedence rules when documents disagree - Stripe subscription experience - Active Cursor user who writes plain-English code comments - Solo developer or very small team. No agencies, no subcontracting. HOW YOU WORK (this matters as much as the skills) - Plan before you code. For anything non-trivial, you write a short plan first and confirm it with me before building. - Surgical, additive edits only. You change only what is necessary, you do not "improve" working code, and new features go on as additive migrations. - Keep it simple. You prefer 100 clear lines to 1000 clever ones. Nothing speculative. - Goal-driven. You work to clear success criteria and verify on a real phone before calling something done. HOW WE WILL WORK TOGETHER - Fixed price, paid by milestone through Upwork escrow. I fund one milestone at a time; payment releases when the milestone is delivered and accepted. - We will start with a small paid first milestone before committing to the full scope. - All accounts (Supabase, Stripe, GitHub repo, hosting) stay under my ownership. You work as an invited collaborator. I own all code; it transfers on request. - Every file must include plain-English comments. Non-negotiable. - I have already done all discovery, scoping, and design. I will not pay for planning or "scoping" time. - Expect a short async update every couple of days and a brief weekly check-in. Please keep a few hours of timezone overlap with me. TO APPLY: answer the screening questions below. Generic proposals that do not answer them will be declined without a reply.
$6,500.00
Fixed-price- ExpertExperience Level
- Remote Job
- Complex projectProject Type
- Contract-to-hireThis job has the potential to turn into a full time role
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:yesterday
- Interviewing:5
- Invites sent:4
- Unanswered invites:1
About the client
- United States5:25 PM
- Sports & RecreationIndividual client
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by