Welcome! This repository contains complete documentation for building a mobile app similar to PrayScreen - a spiritual discipline app that blocks distracting apps until users complete a prayer/reading session.
Complete product specification including:
- Executive summary and core concept
- All features to build (app blocking, unlock flow, content library, etc.)
- Technical requirements (iOS/Android APIs)
- User flows and diagrams
- Success metrics
- Development phases (MVP β Full Release)
- Risk mitigation strategies
Start here to understand what you're building and why.
Comprehensive data structures and schemas:
- User Profile (preferences, stats, subscription)
- Blocked Apps (state management)
- Bible Verses & Prayer Content
- Prayer Sessions (reading history)
- Daily Content (featured verses)
- Notifications
- RevenueCat Integration models
- Analytics Events
- API endpoints
- Data relationships
Use this when designing your database and API.
Real-world JSON examples for every data structure:
- Realistic sample data
- API request/response examples
- Multiple user scenarios (free, premium, trial)
- RevenueCat webhook events
- Analytics event examples
Reference this when implementing your API and testing.
Complete guide to implementing subscriptions:
- Setup instructions (App Store Connect, Google Play)
- Mobile SDK integration (iOS Swift, Android Kotlin)
- Backend webhook implementation
- Paywall UI best practices
- Pricing strategies
- Subscription lifecycle management
- Testing procedures
- Common issues and solutions
Follow this when implementing monetization.
-
Review Documentation
- Read PRODUCT_SPECIFICATION.md cover to cover
- Understand the data structures
- Review JSON examples
- Plan your tech stack
-
Make Key Decisions
- iOS first or Android first? (or React Native/Flutter for both?)
- Backend: Firebase, Supabase, or custom API?
- Will you use a UI framework? (SwiftUI, Jetpack Compose, etc.)
- Pricing: Monthly? Annual? Trial period?
-
Set Up Accounts
- Apple Developer Account ($99/year) for iOS
- Google Play Developer Account ($25 one-time) for Android
- RevenueCat account (free to start)
- Backend service account (Firebase/Supabase)
-
Core Features Implementation
- User authentication
- App blocking system (iOS Screen Time API or Android Accessibility Service)
- Basic verse library (start with 50-100 verses)
- Unlock flow (verse display β timer β unlock)
- Settings page (select apps to block, adjust timing)
-
RevenueCat Integration
- Configure in-app products
- Integrate SDK
- Implement paywall UI
- Test subscriptions in sandbox
-
Testing
- Test blocking/unlocking flow
- Test all user interactions
- Test subscription flow
- Beta test with 10-20 users
-
Polish
- Improve UI/UX based on beta feedback
- Add onboarding flow
- Optimize performance
- Add analytics
-
App Store Preparation
- Create app screenshots
- Write app description
- Create privacy policy
- Create terms of service
-
Launch
- Submit to App Store / Play Store
- Prepare marketing materials
- Set up customer support
To launch quickly, focus on these core features:
- App blocking (3 apps max for free users)
- Basic verse library (50 verses minimum)
- Simple unlock flow (read for 30s β unlock for 15min)
- One subscription tier (Premium: unlimited apps)
- Basic settings (select apps, enable/disable blocking)
- Advanced scheduling
- Custom prayers
- Analytics dashboard
- Daily verse notifications
- Streak tracking
- Achievements
- Block up to 3 apps
- Access to 100 basic verses
- Fixed reading time (30 seconds)
- Ads between unlock sessions (optional)
- Block unlimited apps
- Full verse library (500+ verses)
- Custom reading duration
- Custom prayers
- Advanced scheduling
- No ads
- Analytics & insights
- Cloud sync
- 2-5% conversion rate (free β premium)
- $0.40 - $1.00 cost per install (with TikTok ads)
- 3-5% monthly churn rate
iOS:
- Language: Swift
- UI: SwiftUI
- Database: Core Data or Realm
- API Client: URLSession + Codable
- Blocking: Screen Time API
Android:
- Language: Kotlin
- UI: Jetpack Compose
- Database: Room Database
- API Client: Retrofit + Coroutines
- Blocking: Accessibility Service API
Backend:
- Firebase (Firestore + Auth + Functions)
- Or Supabase (PostgreSQL + Auth + Edge Functions)
Pros: Best performance, native APIs access Cons: Need to build twice (iOS + Android separately)
Framework: React Native or Flutter
React Native:
- UI: React Native components
- State: Redux or Context API
- Database: AsyncStorage + WatermelonDB
- Blocking: Native modules for iOS/Android
Flutter:
- UI: Flutter widgets
- State: Provider or Riverpod
- Database: Hive or Drift
- Blocking: Platform channels for iOS/Android
Backend: Same as Option 1 (Firebase or Supabase)
Pros: Write once, deploy to iOS + Android Cons: May need native modules for blocking features
- Daily Active Users (DAU)
- Weekly Active Users (WAU)
- Prayer sessions per user per day
- Average reading time
- Retention (Day 1, Day 7, Day 30)
- Free β Premium conversion rate
- Monthly Recurring Revenue (MRR)
- Churn rate
- Average Revenue Per User (ARPU)
- Lifetime Value (LTV)
- Most blocked apps
- Most read verses
- Feature usage rates
- Crash rate
- App Store rating
- Simplicity First: The app interrupts users, so make the experience quick and peaceful
- Spiritual Focus: UI should feel calm, not gamified or aggressive
- Accessibility: Large text, good contrast, support for screen readers
- Performance: Fast loading, smooth animations, no lag
- Reliability: Blocking must work consistently, or users will uninstall
- Privacy Policy: How you collect/use data
- Terms of Service: Rules for using the app
- Subscription Terms: Clear pricing and auto-renewal info
- Minimize data collection
- Don't track which apps users open (only that they attempted)
- Anonymize analytics data
- Support data export and deletion
- Be transparent about Accessibility Service usage (Android)
- Clearly explain why you need Screen Time permission (iOS)
- Clearly explain why you need Accessibility Service (Android)
- Don't make misleading claims
- Must have working "Restore Purchases" button
- Don't over-engineer: Start simple, iterate based on user feedback
- Test blocking thoroughly: This is your core feature, it MUST work reliably
- Don't skip onboarding: Users need to understand how the app works
- Don't ignore feedback: Users will tell you what's broken
- Don't neglect performance: Laggy apps get uninstalled
- Don't forget restore purchases: This is required by App Store
- Don't make bypass too easy: Users will abuse it and lose the benefit
- Strengths: Good concept, TikTok viral success, simple UX
- Weaknesses: Reliability issues (per reviews), paywall confusion
- Opportunity: Build a more reliable, polished version
- One Sec: Breathing exercise before opening apps (not prayer-focused)
- Forest: Plant trees to avoid phone use (gamified)
- Freedom: Block apps/websites (not spiritual)
- Your Advantage: Unique spiritual angle for Christian market
- Create TikTok account
- Post 3-5 videos explaining the concept
- Build email waitlist
- Create simple landing page
- Submit to App Store / Play Store
- Post TikTok videos daily
- Cross-post to Instagram Reels
- Submit to Product Hunt (optional)
- Reach out to Christian influencers
- Respond to all reviews
- Fix bugs quickly
- Iterate based on feedback
- Consider paid ads once proven (TikTok, Meta)
- Build community (Discord, subreddit)
- RevenueCat: support@revenuecat.com
- Apple Developer Support: developer.apple.com/support
- Google Play Support: play.google.com/console/developers/support
- Subscribe to RevenueCat changelog
- Follow iOS/Android API updates
- Join mobile dev communities (Reddit, Discord)
- Test new OS versions in beta
- App blocking works reliably
- Subscriptions work in sandbox
- App doesn't crash
- Handles edge cases (force quit, battery saver, etc.)
- Works on various devices/OS versions
- Privacy policy published
- Terms of service published
- Support email set up
- Pricing finalized
- RevenueCat configured
- App icon designed
- Screenshots created (5-6 per platform)
- App description written
- Landing page live (optional)
- Social media accounts created
- Registered business (if required)
- Tax forms submitted (Apple, Google)
- Insurance (optional but recommended)
- iOS Screen Time API
- Android Accessibility Service
- RevenueCat Documentation
- App Store Review Guidelines
- Google Play Policy
- r/iOSProgramming
- r/androiddev
- r/reactnative (if using React Native)
- r/FlutterDev (if using Flutter)
- RevenueCat Community Slack
- Figma - UI design
- TestFlight - iOS beta testing
- Google Play Console - Android beta testing
- Firebase - Backend
- Supabase - Backend alternative
This is a comprehensive guide to building a prayer-based app blocker. You now have:
β Complete product specification β Data structures and schemas β JSON examples for all data types β RevenueCat integration guide β Development roadmap β Go-to-market strategy
Next steps:
- Choose your tech stack (native vs cross-platform)
- Set up your development environment
- Start with Phase 1 features
- Build, test, iterate
- Launch and learn from users
Remember: Start small, ship fast, iterate based on feedback. The best app is the one that actually gets built and launched! π
If you have questions about:
- Architecture decisions: Review DATA_STRUCTURES.md
- Feature implementation: Check PRODUCT_SPECIFICATION.md
- Subscriptions: See REVENUECAT_INTEGRATION.md
- Data formats: Look at JSON_EXAMPLES.md
Good luck building your app! π