Inspiration

I'm a sophomore in high school, and I kept catching myself doing the same thing every night: thumb on the glass, scrolling a feed I didn't even like. I couldn't delete the habit, so I tried to point it at something better.

Bless is a vertical, one-verse-per-screen feed of the full 73-book Catholic Bible. The "comments" on each verse are real, attributed quotations from the saints.

What it does

  • Read – a full-screen feed of all 35,804 verses, with an illuminated gold drop cap on every verse. You can read in random order, or in canonical order with a chapter progress bar and a map of the books you've finished.
  • Comments – saints and Church Fathers on the verse, each with the work it comes from ("Homilies on 1 John, VII.8"). Quotes that are only popularly attributed are labeled that way.
  • Study – the Hebrew or Greek behind the verse, word by word (Strong's lexicon), Bishop Challoner's notes, Catechism links, and study cards for Context, Study and Your Life.
  • Today – the liturgical season, the day's Mass readings, and the saint of the day.
  • Discover, Search, saved verses, private notes, widgets, a light "parchment" mode and share-as-image.

The Bible stays free forever. Premium adds the deeper Study sections, writing notes, Discover's deep sections and widgets.

How we built it

The whole app was vibecoded with Claude Code: I described what I wanted, tested it on my iPhone, and pushed back when something felt off. Here's the stack we ended up with:

  • SwiftUI on iOS 26, Swift 6, Liquid Glass (glassEffect) and the native TabView.
  • A bundled SQLite database (GRDB) built by a Python pipeline from public-domain sources: the Douay-Rheims and the CPDV (Catholic Public Domain Version), the Clementine Vulgate, the Hebrew OSHB/WLC text, the Byzantine Greek text, Strong's 1894 lexicon, Challoner's notes, the liturgical calendar and the Mass readings. Every source is mapped to Catholic (Septuagint) psalm numbering. A validator refuses to build if any chapter's verse set doesn't match exactly, which caught a real off-by-one in the Psalms.
  • Study cards for all 35,804 verses, generated ahead of time with a batch job and checked by validators (no invented quotes, no fake references, every cross-reference must resolve to a real verse). They're compressed per chapter into the app, which took the database from 186 MB to 73 MB. That means full Study works on iPhones without Apple Intelligence. On-device FoundationModels is the fallback.
  • RevenueCat runs purchases, restores and the bless_premium entitlement behind a custom native paywall (StoreKit 2 mode, App Store products with 7-day and 3-day trials). Everything else is fully local: no accounts, no analytics, no ads.

Challenges we ran into

  • Versification. Catholic Bibles follow the Latin and Greek psalm numbering, not the Hebrew. Lining up Hebrew, Greek and Latin sources verse by verse, without silently pairing the wrong verses, took the most care of anything in the project.
  • Honesty at scale. Only about 5% of verses have a Challoner note, so AI had to fill the gap without pretending to be a source. Every card ends in either a named source or a clear "written for Bless" footer, never both.
  • Device-only bugs. Several bugs never showed up in the simulator: Liquid Glass flickering under ancestor animations, a dropped last line in long verses (a 0.2pt rounding error in TextKit), and a crash from dynamic colors being resolved off the main thread under Swift 6 isolation. Each one needed instrumentation on a real device before I could fix it.
  • Thermals. Animated backgrounds on every tab made phones warm. Pausing hidden animations and dropping the frame rate fixed it.

Accomplishments that we're proud of

  • The complete Catholic canon, with original-language word study for 93% of the Hebrew and Greek books.
  • Every quote in the app is real and attributed, with no invented engagement numbers.
  • Original auto scrolling feature of verses like Stories

What we learned

  • The simulator isn't clearance for anything involving touch, haptics or Liquid Glass. Build the probe first, then guess.
  • Data pipelines need hard validation gates. The bugs they caught would have shipped silently otherwise.
  • RevenueCat let me keep my own paywall design and still get server-validated entitlements. Integrating it took a day, not a week.

What's next for Bless

  • More translations as licensing allows
  • More social sharing features
  • Deeper widgets
  • Apple Watch app
  • Siri intents

App Store: Bless: Scroll Catholic Bible

Built With

  • anthropic-api
  • apple-intelligence
  • claude
  • claude-code
  • foundation-models
  • grdb
  • ios
  • liquid-glass
  • python
  • revenuecat
  • sqlite
  • storekit
  • swift
  • swiftdata
  • swiftui
  • textkit
  • uikit
  • widgetkit
  • xcode
Share this project:

Updates

Submission history