Last week, I launched Daily Reflection, an AI-powered Bible devotional app that I built completely on my own.
The app delivers a fresh AI-generated devotional every morning, offers an offline Bible, AI-powered Bible chat, guided prayer, and Scripture recommendations based on emotions. Building it taught me a lot about AI architecture, cost optimization, Firebase security, and shipping a real product as a solo developer.
In this article, I’ll share the technical decisions behind the app, the challenges I faced, and what I learned during the process.
The Problem I Was Solving
Most Bible apps feel like digital libraries. You open them, search for a verse, read it, and close them. There is no personalization, no conversation, no sense that the app actually knows what you are going through.
I wanted something different. I wanted a Bible app that felt like a wise friend who shows up every morning with a fresh word just for you, and stays available all day when you need guidance or prayer.
That is Daily Reflection.
What the App Does
Every morning at a fixed time, a GitHub Actions workflow fires, calls OpenRouter, generates a completely unique AI devotional based on a Bible verse, and saves it to Firestore. Every user who opens the app that day reads the same fresh devotional, generated once, served to everyone. This means one AI call per day regardless of how many users the app has.
The core features are:
1. Fresh AI devotional every morning, never repeating
2. Verse of the day from a free Bible API, different every day
3. Full KJV Bible reader
4. AI Bible Chat and Prayer Guide available 24/7
5. Emotions feature for scripture-based emotional support
6. Daily streak tracking to build consistency
The Tech Stack:
• React Native with Expo for the mobile app
• Firebase and Firestore for the backend and auth
• OpenRouter with for AI generation
• GitHub Actions for the daily devotional cron job
• Vercel for the backend API and landing page
• Paystack for payments
The Hardest Parts
Building solo means every bug is your problem.
Some of the hardest things I dealt with:
- The daily devotional caching system I did not want every user triggering a separate AI call when they open the app. The solution was a GitHub Actions cron job that generates the devotional once daily at 3am and stores it in Firestore. Every user just reads from Firestore. Zero per-user AI cost for the core feature.
- Firestore security rules. Getting the rules right so users can only read their own data while the GitHub Actions admin can write devotionals was trickier than expected.
- Keyboard behavior on Android. React Native keyboard handling across different Android devices is genuinely painful. Different manufacturers handle it differently and there is no perfect solution.
- The Stack Cost My total OpenRouter spend across all testing is under $0.25. The caching strategy means the AI cost scales almost nothing with user growth since the devotional is generated once for everyone.
What I Shipped
Daily Reflection is live on Google Play today. Free to download with a Pro upgrade at 5,000 Naira per month for unlimited AI features.
If you are building something in the faith tech space or just curious about how I put this together, drop a comment. Happy to answer questions.
Download Daily Reflection on Android:
https://play.google.com/store/apps/details?id=com.cdttech.dailyreflection
Landing page:
https://daily-reflection-c.vercel.app
Top comments (0)