Inspiration

There are 1,189 chapters in the Bible. I have read through it on plans, off plans, in paper Bibles and in apps, and I could never answer a simple question: which chapters have I actually read, over my whole life? Every plan I finished threw that history away the day it ended.

I started building a social Bible app, but realized it wasn't what I was looking for myself. I then shifted gears and started creating 1189 as the app that meets the goal I needed.

What it does

1189 is a personal, lifetime map of all 1,189 chapters, on iPhone, iPad, and Mac.

  • The Map. All 66 books, colored by section. Unread, read, and studied are visible at a glance, and the map works without relying on color alone.
  • Paper Bible first. Read from the Bible you already own, so you spend less time staring at screens, then mark a chapter or a range in a couple of taps. The app never marks anything for you.
  • A reader when you want one. You can also read the Bible within the app, and the experience is great that way, too! The Berean Standard Bible, World English Bible, and King James Version are bundled, so it works offline.
  • Read or Studied. Two levels, ever. Studied counts as read, but it means you went deeper (whatever that means to you).
  • Streaks with grace. You pick your reading days. A planned day off does not break a streak, and streaks can be turned off.
  • Recaps, achievements, and a journal. Monthly and yearly recaps with share cards, quiet milestones, and a note on any chapter.
  • Passes. Finish the whole Bible and start again. Every pass is kept.
  • Private by design. No accounts, no feed, no server. Your reading lives in your own iCloud and syncs across your devices.

The whole reading loop is free. 1189 Pro (monthly, annual, or lifetime, through RevenueCat) adds advanced stats, achievement history, share card styles, journal PDF export, and alternate app icons. More Pro features and additions are planned for the future.

How I built it

It is one SwiftUI target that runs natively on iPhone, iPad, and Mac, with SwiftData and CloudKit for storage and sync, RevenueCat for purchases, and TelemetryDeck for privacy-friendly analytics.

The decision everything else hangs on: the app stores an append-only log of reading events and derives everything from it. The map, passes, streaks, recaps, stats, and achievements are all computed. Nothing is a stored checkmark, so editing or deleting a reading in History recomputes the whole app, and a "fresh start" never destroys anything.

The first commit was August 18, 2026. It shipped on September 21: 142 merged pull requests, 157 closed issues, about 480 tests, and 23 TestFlight builds in five weeks. I used several AI coding agents along the way, but this wasn't a "vibe coded" app. A lot of design, direction, testing, review, decisions, and heart went into its creation. I've personally been using it almost every day since it was less than a week into development.

Challenges

  • App Review. Three rounds. The first: bundled Bible text counts as book content in mainland China, which needs a publishing license a US LLC cannot hold, so that territory came off the list. The next two were "we cannot find your in-app purchases." The reviewer's sandbox account had already bought Pro in round one, and the app hides the upgrade door once Pro is active. It is a good problem to have found before real customers did, and a "Change plan" door is on the list for the next release.
  • A map of 1,189 tappable cells that stays fast with years of history and still passes VoiceOver, Dynamic Type, and contrast audits on the smallest iPhone.
  • Color. Ten section colors that stay distinguishable next to each other in light and dark mode, including for color-blind readers.
  • Public-domain text. Verifying the rights for three translations, and holding the KJV back in the UK until Cambridge University Press answers.

What I learned

Storing events and deriving everything else made every later feature cheaper, and I would start there again. I also learned to write App Review notes for a reviewer who has one minute.

What's next

Widgets, a way for Pro supporters to change plans, more translations if the licenses allow it, and additional advanced stats.

Built With

  • cloudkit
  • ios
  • ipados
  • macos
  • revenuecat
  • storekit
  • swift
  • swift-charts
  • swiftdata
  • swiftui
  • telemetrydeck
  • tipkit
  • xcode-cloud
Share this project:

Updates

Submission history