Inspiration
ActuallyCook was inspired directly by Eitan Bernath’s Shipyard creator brief.
The core question was simple: how can recipe content become more usable?
I’ve personally run into this problem many times. I would save a cooking video with the intention of making it later, but when it was time to cook, I had to rewatch the entire video just to figure out the ingredients and steps.
Recipe videos are great for inspiration, but they are not structured for action.
ActuallyCook was built to close that gap. It transforms recipe videos and text into structured ingredients, AI-generated step-by-step instructions, and grocery-ready plans in seconds.
The goal is straightforward: move from “I saw this” to actually cooking it.
What I Built
ActuallyCook is an iOS app built with Expo and React Native. It converts recipe videos and text into structured, usable cooking plans.
Core capabilities include:
- URL import (YouTube)
- Text import
- AI-powered ingredient extraction
- AI-generated step-by-step instructions
- Automatic grocery list creation
- In-app recipe organization
- Subscription-based unlimited AI imports powered by RevenueCat
Manual recipe creation and organization are always free. AI imports are gated behind a quota-aware subscription system.
How It Works
ActuallyCook uses a layered import pipeline:
- URL intake and session creation
- Metadata classification to detect recipe intent
- Ingredient extraction from description, comments, and captions
- Client-first caption fetching with server fallback
- AI normalization and structured output generation
- Finalization into a recipe and grocery list
All AI processing runs server-side using structured prompts for classification, extraction, and normalization.
Pipeline progress is streamed to the client using SSE so users can see real-time updates during import.
Free users receive 5 AI imports in total. Pro users receive unlimited imports. The quota only increments after a successful completion.
Key Lessons
- Monetization should be part of the architecture from the beginning.
- Quota enforcement must happen server-side.
- Reliable AI output depends heavily on normalization.
- Real-time feedback improves perceived performance and trust.
Challenges
The main technical challenges included:
- Handling inconsistent caption availability across YouTube videos
- Designing a pipeline that can pause, resume, or fail cleanly
- Building a hybrid client and server caption strategy
- Keeping AI costs predictable while maintaining output quality
From a product perspective, the challenge was avoiding the “AI gimmick” trap and focusing instead on something structured and genuinely useful.
RevenueCat
RevenueCat plays a central role in the architecture.
ActuallyCook was designed as a quota-aware subscription product from the beginning. Shipyard provided a focused environment to explore:
- Entitlement-based gating
- Paywall triggering logic
- Restore flows
- Server-enforced quota tracking
Monetization is not a surface feature in this project. It is built into the system design.
What’s Next
If continued beyond Shipyard, I would expand:
- Multi-platform support (Instagram, TikTok, and web recipes)
- A visual ingredient extraction layer
- Improved instruction refinement
- Creator-specific integrations
The long-term goal is to make ActuallyCook the bridge between food content and real-world execution.
Closing
ActuallyCook is an execution-first MVP that combines AI processing, real-time orchestration, and subscription-aware design into a cohesive consumer app.
Shipyard pushed me to build something complete and monetization-ready from the start, not just something that works, but something that can scale.
Built With
- clerk
- drizzle
- expo.io
- fastify
- node.js
- openai
- pnpm
- postgresql
- react-native
- revenuecat
- sse
- swif
- trpc
- turborepo
- typescript
- youtubedataapi

Log in or sign up for Devpost to join the conversation.