Recipist
Turn any YouTube cooking video into a step-by-step recipe.
Turn any YouTube cooking video into a step-by-step recipe.
Recipist extracts recipes directly from YouTube videos — ingredients, steps, and metadata — so you can cook along without scrubbing through a 20-minute video. Save recipes to your library, build shopping lists from ingredients, and follow guided cooking mode at your own pace.
The App
Save Recipes from YouTube
Paste a YouTube URL and Recipist does the rest. The app extracts a structured recipe from the video: title, description, ingredients with quantities, ordered cooking steps, servings, and difficulty level. You can queue multiple videos at once for batch processing.
Supports standard YouTube links, short links, Shorts, and mobile URLs.
Shopping List
Add ingredients from any saved recipe to a unified shopping list. Check items off as you shop — checked items move to a separate "done" section so you can see what's left at a glance. Swipe to remove individual items, or clear the entire list when you're done.
Guided Cooking Mode
Start cooking from any saved recipe and follow along step by step. The experience has three phases:
- Ingredient check — Review and gather all ingredients before you begin.
- Step-by-step walkthrough — One step at a time, with a progress bar and the ability to reference the full ingredient list while cooking. The screen stays awake so your phone doesn't lock mid-recipe.
- Completion — See your total steps and cooking duration when you finish.
Sessions are saved automatically. If you leave mid-recipe, you can resume exactly where you left off.
Recipe Organization
Tag recipes with custom labels and filter your library by tag. Manage your tags from a dedicated screen — create, delete, and apply them across recipes.
Profile and History
Track your cooking activity: total recipes saved, completed sessions, in-progress sessions, and a breakdown of recipe difficulty. Browse your full cooking history with timestamps and completion status.
iPad Support
Recipist adapts to larger screens with a three-column recipe grid on iPad, while maintaining the same experience on iPhone.
Privacy-First Design
No account creation required. Recipist uses anonymous authentication — there's no signup, no email, and no personal data collected. All your data is scoped to your anonymous user ID and only accessible by you.
Technical Overview
| Layer | Technology |
|---|---|
| Language | Swift |
| UI Framework | SwiftUI |
| Minimum Target | iOS 18 |
| Backend | Firebase (Firestore, Cloud Functions, Auth, AppCheck, Crashlytics, Analytics) |
| Subscriptions | RevenueCat |
| Package Manager | Swift Package Manager |
Architecture
The app follows MVVM with domain-specific ViewModels. Each major feature area — recipes, shopping list, tags, profile, cooking mode — has its own ViewModel and backing service.
Views observe ViewModels via SwiftUI's environment object injection. ViewModels hold published state and call into service singletons. Services handle Firestore operations, inheriting shared CRUD logic from a base service class.
All async work uses Swift concurrency (async/await) with ViewModels marked as @MainActor.
Recipe Extraction
YouTube video processing happens server-side via a Firebase Cloud Function. The app sends a video URL; the function returns structured recipe data (title, ingredients, steps, metadata). No video content is stored — only the extracted recipe.
Authentication and Security
Anonymous Firebase Auth runs on first launch with zero user friction. The user ID syncs to RevenueCat for subscription tracking. Firestore security rules ensure users can only access their own documents. Firebase AppCheck (App Attest in production) protects backend endpoints.
Monetization
Freemium model: five recipes free, unlimited with a pro subscription. Pro also unlocks tag-based organization and filtering. The paywall is managed through RevenueCat's native SwiftUI integration.
Design System
The app uses a neumorphic visual style with a custom color palette defined in the asset catalog. Typography uses a consistent rounded font applied through a shared modifier. Animations include staggered cascade-in effects for lists, spring transitions in cooking mode, and scale-on-press feedback for buttons. Haptic feedback reinforces key interactions throughout.