Ten Bible versions sounds like a simple content problem — load the text, let people switch. In practice, it's a design problem, because every version has a different reading rhythm, and switching between them shouldn't feel like opening a different app each time.
Koinonia keeps the version switcher lightweight and predictable: pick a translation once, and the reading experience — font, verse spacing, navigation — stays consistent whether someone's in the Amplified Bible or the King James Version. The audio Bible follows the same principle, with both male and female voice options so listening feels like a choice, not a limitation.
The versions themselves aren't interchangeable in a technical sense, and that's where a lot of the quiet complexity lives. The Amplified Bible includes bracketed expansions inline with the text; the King James Version uses archaic spelling and verse conventions from a translation centuries older than the others. A naive implementation that assumed every version was just "the same book, different words" would break on formatting like that. Each version gets normalised into a consistent internal structure before it ever reaches the reading screen, so the app's layout code never has to special-case a particular translation — the complexity gets absorbed once, upstream, instead of leaking into every screen that displays Scripture.
The harder decision was what not to build. We didn't add version-comparison views or inline commentary, because Koinonia's job is to make Scripture easy to read and hear every day, not to be a study-Bible tool. That's a job for a different kind of app, and trying to be both usually makes neither experience good.
We also had to decide how much choice to expose versus how much to default sensibly. Ten versions in a dropdown, presented with no guidance, would leave a new user guessing which one to pick. So the app defaults to a widely familiar version on first open and makes switching a deliberate, low-friction action rather than a decision someone has to make before they can start reading at all — the goal is that a first-time user is reading Scripture within seconds, with the choice of translation available but never blocking that first moment.
Ten versions, one consistent way to read them — that's the whole design brief, and most of the actual engineering work is invisible precisely because it succeeded: nobody notices the normalisation happening underneath, they just notice that switching from one translation to another doesn't feel jarring.