Case study: flagship
Prava
An AI faith journal for iOS. Designed, built, and shipped solo, from first commit to the App Store.




01: The problem
Faith apps borrow the wrong mechanics.
Prava exists because I went looking for it and it didn't exist. I grew up in a Methodist church without any idea what made it Methodist, drifted away from the faith entirely, and came back years later through whatever church was closest. Something always felt like it was missing, so I started studying what Christians in each tradition actually believe and why. That question has taken my family through non-denominational, Lutheran, and Pentecostal churches, and is now leading us into the Catholic Church. Along the way I learned how much of what Christians think they know about other traditions is caricature. The apps I tried didn't help: verse graphics, streak counters, content with no tradition behind it. What I actually wanted already existed and was two thousand years old. The Church's week: her lectionary, her prayers, her creeds. Prava puts that at the center, across twelve traditions, in each tradition's own words.
Most faith apps are habit trackers wearing vestments: streaks, scores, completion rings, and the quiet guilt that follows a missed day. Those mechanics optimize for showing up, but they punish honesty: the moment a spiritual practice becomes a scoreboard, people start performing for the app instead of telling it the truth.
Prava's founding principle is record, not score. The journal is a place to be honest about where you actually are, not a meter to keep green. That principle sounds like product copy, but it turned out to be an engineering constraint: it shaped the schema, the AI prompts, and what the app refuses to measure.
02: What I built
A full consumer product, run by one person.
Prava is a native-feeling iOS app with a daily journal, prayer and scripture surfaces, a weekly lectionary, and social accountability circles. The AI is a teaching and reflection layer. It responds to what you read, write, and pray: interpreting the week's scripture, drawing observations from your journal entries, and helping you put your own prayers into words. One rule governs every surface: the AI teaches and reflects, but it never touches the Church's fixed texts. The creeds and historic prayers render exactly as the Church wrote them, enforced by CI scanners rather than good intentions.
- Platform
- Next.js + TypeScript shipped inside Capacitor / WKWebView as a native iOS app
- Revenue
- Freemium subscriptions via RevenueCat, monthly and annual plans
- AI
- Anthropic Claude across thirteen grounded surfaces, each reading versioned system prompts with snapshot-tested fallbacks
- Data
- Neon Postgres with Prisma, additive-only migrations
- Infra
- Cloudflare R2 storage, Sentry error monitoring
- Analytics
- PostHog: product analytics and feature flags
03: Engineering decisions worth talking about
Three decisions I'd defend in any interview.
AI cost optimization in three waves
The AI bill got attacked in order of leverage. First, waste elimination: cutting redundant calls and oversized context. Second, small-model routing: five product surfaces were moved to cheaper models where quality held. Third, prompt caching, with a usage-event table in Postgres that verifies the cache metrics the provider reports, because a cost optimization you can't independently measure is a rumor.
Product philosophy as engineering constraint
“Record, not score” is enforced in the data model, not the marketing site. The schema stores what happened, never a performance grade, and the automatic unlimited grace system means a missed day is recorded honestly without ever becoming a punishment mechanic. Deciding what the database refuses to know turned out to be one of the most interesting design problems in the product.
Solo-operator discipline
With no one to catch a bad deploy, the process had to be the second engineer: additive-only database migrations so nothing is ever un-shippable, snapshot-tested prompt fallbacks so an AI regression fails a test instead of a user, and features dark-shipped behind flags with written flip runbooks, so turning something on is a decision, not an event.
04: The back office
A product this size runs on a second product nobody sees. Prava's cockpit is eleven internal tools built on the same stack as the app: an analytics dashboard, authoring surfaces for prayers, teaching, and the lectionary, and the operational tools that keep the AI honest. Three earn a closer look.
The Prompt Lab versions every system prompt behind the app's thirteen AI surfaces. Each surface reads its prompt from Postgres with an in-code fallback bound by snapshot tests, and the Lab shows history, diffs, and drift between the two. When a prompt changes, there is a record of what changed and when.
The Profile Simulator tests the personalization engine without waiting on real users. Build a user profile from life contexts, run the selection algorithm, and see exactly which commitments it would serve that person, scores included. It turned tuning the matcher from guesswork into an afternoon.
The lectionary tools manage the appointed Sunday readings across two traditions and seven Bible translations, with per-reading rights flags and a staging to production pipeline. Scripture licensing is a legal constraint, so the workflow enforces it: text only enters the app through cleared lanes.



05: Outcomes
Live, growing, and paying for itself.
Prava has been live on the App Store since Easter 2026. It's used across a dozen Christian denominations, and it has paying subscribers on both monthly and annual plans. I keep the specific numbers off the internet on purpose. Happy to talk specifics in an interview.