All Startup Ideas

AI Protein Tracker

Photo-first AI that makes protein goals stick—log meals in seconds, adapt plans to real eating habits, and skip the MyFitnessPal homework grind.

For bodybuilders, CrossFit athletes, and anyone on a medically restricted diet, protein is not a nice-to-have macro — it is the constraint that determines whether a training block pays off or a recovery plan falls apart. The target is often precise: 180 grams per day for a 200-pound lifter cutting fat, or 140 grams for someone managing kidney-friendly portions while still preserving muscle. Hit the number and progress feels inevitable. Miss it repeatedly and stalls, injuries, and mood crashes follow.

Built for Solo Founders, Weekend Builders.

AI-driven meal planning apps were valued at roughly $972 million in 2024 and are projected to reach $11.56 billion by 2034, a 28.1% compound annual growth rate according to market.us and corroborating industry reports.

Suggested stack: Expo + React Native (TypeScript), GPT-4o or Claude vision API, Supabase (Postgres + Storage), Clerk, Stripe Billing, Expo Push Notifications. Weekend scope: about 10 hours.

The Problem

For bodybuilders, CrossFit athletes, and anyone on a medically restricted diet, protein is not a nice-to-have macro — it is the constraint that determines whether a training block…

The Solution

AI Protein Tracker is a mobile app built for people who care about protein before anything else. Instead of opening a search bar and guessing portion weights, the user snaps a…

Market Research

Three overlapping markets make the timing favorable. AI-driven meal planning apps were valued at roughly $972 million in 2024 and are projected to reach $11.56 billion by 2034, a…

Competitive Landscape

MyFitnessPal — Category giant with enormous food database and barcode scanning. Freemium with premium near $9.99 per month. Strength is breadth; weakness is protein feels like one…

Business Model

Free ($0) — Manual protein logging, daily target ring, seven-day history, three AI photo scans per day with basic estimates

Recommended Tech Stack

Expo + React Native (TypeScript) — Single codebase for iOS and Android; native camera access, fast iteration on the scan-and-confirm loop that defines daily engagement.

AI Prompts to Build This

Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.

  1. 1. Project Setup

    Build the weekend MVP of "AI Protein Tracker": snap a photo of a meal and get the protein, then correct it once and never again.
    
    Stack: Expo (React Native) with TypeScript, expo-camera and expo-image-manipulator, Supabase (Auth with email magic link, Postgres, Storage, Row Level Security), Claude (Anthropic API) with image input for the meal reading.
    
    Tables (Row Level Security on, each user reads only their own rows):
    - profiles(user_id, daily_protein_goal, dietary_tags, training_days)
    - meals(id, user_id, photo_url, items jsonb, total_protein_g, logged_at)
    - fingerprints(id, user_id, label, hash, corrected_protein_g, last_used_at)
    - scans(id, user_id, raw_vision_response jsonb, confidence)
    
    Screens: home (progress ring, Scan meal button, today's meals), scan and confirm, settings.
    Env vars (names only): SUPABASE_URL, SUPABASE_ANON_KEY, ANTHROPIC_API_KEY (server side only).
    
    Do not build: billing or plans, Clerk or social sign-in, push notifications, gap-fill suggestions, weekly recaps, a web app.
    Done when: the app runs in Expo Go, you can sign in, the camera opens, and the four tables exist with Row Level Security on.
  2. 2. Core Feature

    Build the one feature that proves the idea: photo to protein, with a correction that sticks.
    1. Capture or pick a photo, shrink it with expo-image-manipulator, and upload it to Storage.
    2. Send the image to Claude with: "You are a nutrition assistant focused ONLY on protein. Identify visible foods, estimate portion sizes, and return JSON: an items array with name, estimated_protein_g and confidence from 0 to 1, and the summed total_protein_g. Flag items below 0.6 confidence. Respect these dietary tags: [USER_TAGS]." Save the raw response to scans.
    3. Show the items for confirmation with per-item edits.
    4. On save, insert a meals row. If the user corrected a value, upsert a fingerprints row keyed by a simple visual hash or a label the user types, so the next similar plate logs in one tap.
    5. Update the daily progress ring: grams eaten against the goal.
    Rules: on an API error, fall back to manual entry. Never claim more certainty than the confidence says.
    Empty state: with no meals today, show the ring at zero and the Scan meal button.
    Done when: a photo of a meal returns items with protein estimates, correcting one value saves a fingerprint, and the next similar photo suggests the corrected value.
  3. 3. Landing Page

    Build a one-page landing site for AI Protein Tracker, a photo-first protein app.
    Hero: "Hit your protein goal without the homework." Sub: "Snap a photo. Get the grams. Fix it once and it remembers." One button: Join the waitlist.
    Sections: the problem (search bars and guessing portion weights), how it works in four steps (set your target, snap a meal photo, correct once and it learns, track the daily gap), a phone mockup of the progress ring, and a short FAQ on accuracy and photo privacy.
    Waitlist: store the email in a waitlist table in Supabase. No other service.
    Voice: fast and plain. Lifters want grams and speed, not essays.
    Done when: the page renders on a phone and a submitted email appears in the waitlist table.
  4. 4. Branding Package

    Use a design or image tool for this one. A coding agent cannot draw a logo.
    Brand for AI Protein Tracker: a wordmark and an app icon that suggest a ring being filled.
    Colors: near-black, warm white and one energetic accent. Type: a bold rounded sans for numbers and a plain sans for text.
    Deliverables: wordmark, app icon, a progress-ring style, and one launch graphic.
    Done when: each deliverable is saved in one folder and the ring reads at 48 px.