Inspiration
Between a full-time job and raising my kids, the time I have for content comes in small pockets: a lunch break, or twenty minutes after bedtime. I kept losing those pockets to setup. I'd dig through Notes for the idea, find the script in a doc, remember the shot list was on paper, then check the calendar to work out what was even due. Planning a video felt like more work than making it.
So I built the tool I wished I had. Shotlist keeps everything for a video in one place and always shows the next step, so whatever time you have goes into creating instead of organizing. If you're squeezing content in around a busy life too, it's made for you.
What it does
- "I want to create…" composer: type one line and Shotlist drafts a hook, talking points, a call to action and a complete shot list, generated on the device.
- Pipeline: every video moves through Idea → Script → Film → Edit → Scheduled → Posted. Swipe between stages, advance a card with one tap (with undo), or long-press to jump to any stage.
- Shot list: a checklist for the shoot, with progress tracking and filming tips.
- Calendar and daily tasks: plan posting days and what to do each day, with a weekly streak on Home.
- Library and Analytics: everything you've posted, with views, likes, engagement rate and top content over 7 and 30 days (90-day trends with Pro).
- Idea Bank and Inspos: capture ideas in seconds and build a visual moodboard from your photos.
How we built it
Expo SDK 57 and React Native with Expo Router file-based navigation, written in TypeScript. Data stays on the device in AsyncStorage (debounced writes, flushed when the app goes to the background). The iOS feel comes from expo-haptics, frosted-glass bars with expo-blur, spring press animations, iOS-style rounded corners and native action sheets. Core logic is covered by Jest unit tests.
Monetization with RevenueCat
react-native-purchases, with theshotlist_proentitlement gating Pro.- The default offering has two packages: Yearly (subscription; the paywall automatically shows a free trial when the product has an intro offer) and Lifetime (one-time purchase), for creators who don't want another subscription.
- The free plan keeps 5 active projects and 12 inspos. Pro unlocks unlimited projects and inspos, hook ideas for every video, and 90-day analytics. Every perk on the paywall is actually enforced in the app.
- The paywall reads packages live from the current offering. It adapts its labels, button text and legal copy to the selected package (trial, subscription or lifetime), listens to
CustomerInfoupdates so Pro unlocks instantly, and supports restore. - It opens at natural moments: hitting a free limit, tapping a Pro feature (hook ideas, 90-day analytics), or tapping "Go Pro".
- Pricing reasoning: creators plan in bursts, so monthly plans churn. A yearly plan with a 1-week trial lets people feel the whole workflow before paying, and Lifetime serves subscription-averse creators while anchoring the yearly plan as the better deal.
- Graceful without keys: with no API key the app still runs fully (Pro stays locked, nothing crashes), so anyone can clone and try it. The README walks through a Test Store setup for testing purchases.
Challenges
- RevenueCat Test Store keys are blocked in Release builds (by design), so on-device testing needed a Debug build with a production JS bundle embedded and re-signed.
- Making a kanban board work one-handed on a phone. Horizontal columns were clunky, so the pipeline became swipeable stage pages with one-tap advance and undo.
Accomplishments
- A complete, polished iOS app with a real RevenueCat monetization flow, running natively on an iPhone.
- A launch that's already under way: a cinematic launch film, a landing page (https://xbrxr03.github.io/shotlist) and a live waitlist, ready for real users.
What's next
TestFlight and App Store release, iCloud sync, platform stat imports (views and likes pulled automatically), an LLM-powered script generator for Pro, and RevenueCat Experiments to A/B test trial length and paywall copy.
Links
- 🌐 Website + waitlist: https://xbrxr03.github.io/shotlist
- 💻 Code (MIT): https://github.com/xbrxr03/shotlist
- ▶️ Launch film: https://youtu.be/apYxaHpwKtI
Built With
- elevenlabs
- expo-router
- expo.io
- ios
- jest
- react-native
- remotion
- revenuecat
- typescript
Log in or sign up for Devpost to join the conversation.