What's new

Currently running version 0.3.0

  1. 0.3.0

    2026-06-04
    • Save every recipe from a multi-recipe source (cookbook-spread photos, Instagram carousels)
    • Add feedback — general (Settings) and recipe 'Not quite right?'
    • Show fusion and broad-region cuisines (e.g. Italian inspired, Asian) in Browse by cuisine
    • Add the extracted recipe and transcript to the shareable debug log
    • Keep prepped ingredients grouped with the recipe component they're cooked into
    • Show a spinner on the share button while a link is being generated
    • Assign changelog beta numbers at build-cut time instead of guessing them per branch
    • Backfill explicit change types onto historic changelog entries
    • Keep ingredients seen in the video when merging in a recipe from the web
    • Stop recipe thumbnails being swapped for a worse video frame
    • Use a sharper, full-quality video frame for recovered thumbnails
  2. 0.2.0

    2026-06-03
    • Add in-app version display and changelog
  3. 0.1.0

    2026-06-02
    • Initial project with recipe generation by CLI
    • Add tanstack start app, add db
    • Add script to download, refresh and upload instagram cookies
    • Change to web client
    • Change style, extract author
    • If instagram recipe suggests there is a link to follow for more info, read the recipe from the link
    • Use /author/slug as urls
    • Add author page, extract image from instagram
    • Redesign UI, add logo
    • Extra insta thumbnails to cloudinary
    • Add structured timings and descriptions to recipes
    • Show active time + rest time separately on recipe cards
    • Improve instagram user id
    • Add conditional video frame analysis with Claude Vision
    • Add GitHub Action to deploy worker to Fly.io
    • Restructure database to separate source tables and add community tips
    • Run vercel link from repo root with scope flag
    • Run vercel commands from repo root where .vercel exists
    • Add VERCEL_ORG_ID and VERCEL_PROJECT_ID to all vercel steps
    • Simplify env sync script to avoid quote escaping issues
    • Strip quotes from FLY_API_TOKEN when extracting from env file
    • Use vercel env run for flyctl auth in sync step
    • Add sync-fly-secrets.sh script and use vercel env run
    • Extract FLY_API_TOKEN from env file in sync script
    • Use vercel env run for FLY_API_TOKEN injection
    • Update page layout on mobile
    • Tweak secret set logic
    • Monorepo
    • Add service layer, REST API, and api-client (Phase 2)
    • Add Expo mobile app (Phase 3)
    • Add native features and update docs (Phase 4)
    • Add mobile logo, add share
    • Add ingredient amounts toggle to method steps
    • Add real-time extraction progress tracking
    • Remove duplicate ShareExtension config from app.json
    • Move extraction progress route to /recipes/extracting/$id
    • Move worker callback URL to env var, show extraction errors
    • Restore Nitro API route discovery on Vercel
    • Allow re-extraction of failed recipes without force flag
    • Route all website extractions through Claude for ingredient markers
    • Add auth scaffold with better-auth, magic link, and saved recipes
    • Increase Claude max_tokens to prevent truncated recipe extraction
    • Add missing auth-fns module for Vercel build
    • Add auth UI for web and mobile
    • Deduplicate react versions in yarn.lock
    • Handle auth check errors gracefully to prevent 500s
    • Upgrade Zod to v4 and add try-catch to /add route guard
    • Add text input mode for manually adding recipes
    • Add step-splitting instructions to all recipe extraction prompts
    • Add StepTimer type and timer parsing utility
    • Add re-scan button on recipe pages for admin testing
    • Always navigate to extraction progress page on re-scan
    • Add recipe step timers with multi-timer UI
    • Use sourceUrl for re-scan and exclude text recipes
    • Show re-scan button for all recipe types including text
    • Add YouTube as a direct recipe source
    • Add Deno runtime and cookies for YouTube yt-dlp extraction
    • Add Instagram → YouTube enrichment for recipes
    • Add user icon dropdown menu with Manage Account page
    • Upload website recipe images to R2 for reliable hosting
    • Add user recipes system with My Recipes page, community recipes, and mobile tab
    • Add contextual extraction error messages and missing-quantities warnings
    • Ensure Nitro outputs to .vercel/output for reliable Vercel builds
    • Rename My Recipes to Saved Recipes with uploaded-by-me filter
    • Make recipe timers persistent and sleep/lock resilient
    • Add GitHub workflow to sync database schema to Turso on merge
    • Add recipe save/bookmark feature across web and mobile
    • Track worker version on recipes and add re-extract flow
    • Add --force flag to drizzle-kit push for non-interactive CI
    • Add video ingredient detection fallback using YOLOv8 via Roboflow
    • Add "watch the video" fallback when method is missing
    • Fix saved recipes not showing until page refresh
    • Add self-hosted inference worker for video ingredient detection
    • Add Google and Apple OAuth sign-in (web + mobile)
    • Add shared ingredients foundation: RelatedRecipe type and normalizeIngredientName util
    • Add canonical ingredient matching for related recipes feature
    • Add recipe tags extraction during ingestion
    • Add recipe search endpoint with text, duration, and author filters
    • Filter listing endpoints to only return complete recipes
    • Add sourceType filter to recipe search endpoint
    • Add ingredient filter to recipe search endpoint
    • Add tags UI display and filtering across web and mobile
    • Wire up search endpoint across web and mobile
    • Use correct Fly.io token for inference worker deployment
    • Add tag filter to recipe search API
    • Add ingredientMatch=any mode to search endpoint for OR-based ingredient filtering
    • Add recipe_tags lookup table for indexed tag queries
    • Merge duplicate searchRecipes into single method
    • Add late-night time-based greetings to mobile home screen
    • Add cross-platform creator tracking with worker URL lookup
    • Always transcribe YouTube Shorts like Instagram reels
    • Add dark mode palette, mockups, and color tokens
    • Implement warm linen redesign with dark mode support
    • Auto-fill recipe title from first line of body text
    • Redesign recipes page with browse-by-category layout
    • Add recipe visibility (public/private) with text recipes defaulting to private
    • Add recipe sharing — grant other users access to private recipes
    • Add share acceptance flow with UI for private recipe sharing
    • Add share-by-link for private recipes
    • Add sharing docs and update CLAUDE.md with deployment note
    • Add About link to navigation that points to add recipe page
    • Align web app with redesign mockups
    • Sentence case tags, card stretch, filter tray improvements
    • Migrate to React Query, add bookmarks, compact recipe hero
    • Add permissions and branch protection guidance for CI push-back step
    • Add recipe sharing on mobile, web skeleton polish, consistent tab headers
    • Add optimistic updates for unsave bookmark
    • Show error messages inline under form inputs instead of at card bottom
    • Show raw error details instead of hiding them behind friendly messages
    • Add Spotify & Apple Music playlist suggestions to recipe detail
    • Add implementation plan for playlist suggestions feature
    • Add implementation plan for Instagram cookies pipeline
    • Add Instagram cookies pipeline with Turso DB storage
    • Add script to export Instagram cookies from browser
    • Add --help flag and env var validation to export-cookies
    • Fix timer parsing decimal values like "2.5 hours" being read as 5 hours
    • Support extracting recipes from any language
    • Add mobile admin actions: re-extract and delete recipe
    • Fix useCallback import and replace default React/TanStack favicon with app logo
    • Add platform toggle and search query info icon to Cook to this section
    • Fix iOS OTA updates not reaching the device
    • Improve playlist search query prompt to reduce generic results
    • Move [id].* routes to directory structure to fix routing conflict
    • Fix black bar at top of recipe page by using floating header buttons
    • Use multiple search queries for playlist suggestions (3 queries × 2 results)
    • Add Core Concepts section to CLAUDE.md and README.md
    • Refresh creator profile picture weekly and show on author pages
    • Add admin cog button to recipe header
    • Fix duplicate URL in mobile share sheet on iOS
    • Extract user from get-session response
    • Phase 1 foundation — shared DB package, new extraction stages, source detection
    • Optimize extraction pipeline — direct DB, thumbnail-early, caption-first, ready status
    • Add retry with backoff for yt-dlp/instaloader + mark failed cookies
    • Only mark cookies expired after all retries are exhausted
    • Add recipe_errors table and wire error logging across all pipeline stages
    • Extraction progress stuck at last stage + UX improvements
    • Comprehensive stage reporting gaps + display order
    • Fix recipe extraction getting stuck by populating recipeReady field
    • Add extraction source tracking to know where recipe data came from
    • Show extraction source on recipe detail page
    • Add floating extraction progress banner above tab bar
    • Show extraction retry history and errors on progress page
    • Add retry badges and error log to web extraction progress page
    • Fix recipe JSON error by adding shared DB schema path to sync workflow
    • Support multi-component recipes with grouped ingredients and steps
    • Add recipe grouping support to all extraction prompts
    • Skip HEAD reachability check for Instagram/YouTube URLs
    • Add History screen with full recipe status tracking
    • Show View recipe button on all completed extractions
    • Fix N+1 query in getHistory, memoize styles in HistoryRow
    • Fix notifications not firing while app is backgrounded during extraction
    • Add History page to web app for feature parity with mobile
    • Fix performance issues in history feature
    • Strip curly apostrophes (U+2018, U+2019) in generateSlug
    • Fix history screen filter tags expanding vertically
    • Add admin all-users toggle to history screen
    • Add user event tracking for all user-initiated actions
    • Show relative timestamps on history rows
    • Add twice-daily Instagram cookie health check
    • Add docs/archive/features scaffold
    • Add Playwright e2e tests against real backend
    • Add Conductor scripts for setup and web dev run (#90)
    • Keep screen awake on the recipe page (#94)
    • Add per-user recipe notes (markdown) (#97)
    • Image ingestion — save a recipe from a photo (#99)
    • Copy-to-clipboard button on extraction error cards (#101)
    • Add recipes library + share-links (1b of edit-recipe) (#104)
    • Recipe library + share-link REST surface (PR 2 of edit-recipe) (#105)
    • Show site as author for website recipes (#102)
    • Show OAuth profile picture instead of letter avatar (#118)
    • Hide failed extractions from the library list (#120)
    • Fix clipped filter chip text on history screen (#122)
    • Sort recipes by added date, edited date, or cook time (#125)
    • Capture creator profile pictures during extraction (#126)
    • Import recipes by sharing notes from iOS Notes (#127)
    • Replace cookie pool with ScrapeCreators API (#130)
    • Read Fly secret values from process env so Vercel sensitive vars sync (#131)
    • Source SCRAPECREATORS_API_KEY from GitHub secrets (#133)
    • Split recipe extraction into parallel body + meta Claude calls (#134)
    • Include /recipes prefix in generated share URL (#135)
    • Attribute retries to user, unify success/failure flow, fix chip alignment (#137)
    • Prevent the same URL from being extracted twice concurrently (#139)
    • Try website before video processing; hide tab bar on recipe page (#141)
    • Global preference to display recipe quantities as written, metric, or imperial (#142)
    • Add helper captions under unit preference options (#144)
    • Preview shared recipe with floating accept pill instead of auto-claim (#145)
    • Only fire recipe-ready push once extraction is complete (#146)
    • Admin re-extract bypasses the worker's same-version guard (#148)
    • Re-extract creates a new attempt and never loses the prior success (#150)
    • Restore website enrichment + unblock canonical recipe URL previews (#154)
    • Require all-or-nothing groups and show fallback header for orphans (#156)
    • Add "Add to library" button on canonical recipe page (#157)
    • Section-aware editing for ingredients & method steps (#159)
    • Show "The Rest" ingredients after named sections (#161)
    • Show "The Rest" method steps after named sections (#162)
    • Shopping categories, method unit prefs, and hero pull-down reveal (#163)
    • Show tracked-down website, prefer platform thumb, fall back on Claude failure (#164)
    • Add "View activity" link from recipe options menu (#167)
    • Add marketing ideas doc to track positioning angles (#140)
    • Add temperature (C/F) and date format preferences (#170)
    • Pinterest pins + Instagram→website cache pop fix (#169)
    • Show subtle source-type icon on recipe cards (#171)
    • Unstick image pins that stall past Vercel's 60s function cap (#173)
    • Typed tag taxonomy, tag landing pages, tag-aware search (#175)
    • Global timer bar, currently-cooking banner, fuzzy phrases (#174)
    • Parallel image uploads, early reportReady, per-stage telemetry (#176)
    • Defeat Pinterest login wall with crawler UA + fallbacks (#177)
    • Auto-start cooking when a method step is ticked (#180)
    • Per-ingredient recipe tags with per-user popularity ranking (#182)
    • Fetch creator bio for "Recipe in my bio" reels + log routing decisions (#183)
    • Mobile loading state + background Pinterest retry + extracting watchdog (#184)
    • Drill-in resolves "All users" cards instead of 404ing (#185)
    • Auto-fail extractions stuck for more than 15 minutes (#188)
    • Set official tagline "The cookbook you've been writing all along." (#190)
    • Match skeleton loader to saved viewMode (grid vs list) (#189)
    • Parallel YouTube web search alongside bio fetch (#187)
    • Add hot-path indexes + denormalize siteName onto recipe_extractions (#191)
    • Add first-content-image fallback for image-less recipe pages (#194)
    • Instant-render from cache + parallelize tag query (#196)
    • Fix ingredient checkbox desync between Recipe/Shopping views; add dedup safety net (#204)
    • Add app-wide error screens for web and mobile (#206)
    • Make recipe cuisine tagging optional for fusion/generic dishes (#207)
    • Short-circuit caption-complete reels, skip needless video pass (#205)
    • Fix duplicate tag chips with split counts on Search (#208)
    • Improve mobile recipe editing & share-accept UX (#211)
    • Add time-based home rail; static cuisine heading; 3-up cuisine tiles (#212)
    • Add "See what others are cooking" section to mobile creator page (#217)
    • Fix blank creator avatars and add creator platform link tags (#218)
    • Fix /api/recipes 500 on malformed stored tags (#222)
    • Add merge-duplicate-recipes admin tool; show re-extract disabled with explainer (#224)
    • Add TikTok as a first-class extraction source (#226)
    • Add Remotion app-demo video for the website (#228)