Projects BibleWeb Translations English (BSB)
Done

English (BSB)

Area: Translations

Context

Problem: BibleWeb needs a high-quality, modern English Bible translation as its foundation. The translation must be freely available for use in a web application, closely aligned to the original Greek and Hebrew texts, and readable in contemporary English.

Solution: The Berean Standard Bible (BSB) serves as the default and primary English translation. Published by the Berean Bible Society (berean.bible), the BSB prioritizes accuracy to the source languages while remaining accessible to modern readers. It is freely licensed for use.

Not included: Other English translations (KJV, ESV, NIV, etc.) — those would require the multiple external translations infrastructure. The BSB is the built-in English text.

Functional

Every verse in BibleWeb has English text from the Berean Standard Bible. When users open any chapter, they see BSB text by default. The BSB is identified in the app settings, credited in the About section, and its text is used for search indexing.

User flow:

  1. User opens any chapter — BSB English text is displayed
  2. The EN button in the translation toggle shows BSB text
  3. In "Both" mode, BSB appears as the primary line above the Dutch text
  4. In settings, the translation dropdown shows "Berean Standard Bible (EN)"
  5. Credits appear in Settings → About: "Berean Standard Bible (BSB)" with link to berean.bible

Edge cases:

  • BSB text is never null — every verse has English text
  • The BSB also provides word-level glosses (bsb_gloss) used by the interlinear popup
  • Full-text search indexes BSB text in the FTS5 virtual table

UX & Design

No dedicated UI — BSB is the default state. Users see BSB text whenever the language is set to EN or Both.

Credits in Settings:

  • Section: About
  • Label: "BSB Bible text"
  • Description: "Berean Standard Bible (BSB)"
  • Link: berean.bible

Technical

Data storage:

  • Primary column: verses.text (TEXT NOT NULL) — every verse row always has BSB text
  • Translation registry: bible_translations table, id=1, code='BSB', language='en', isDefault=true
  • FTS5 index: verse_texts_fts with translation_id=1 for full-text search
  • Word-level glosses: greek_words.bsb_gloss column stores BSB word alignments for the interlinear popup

Query optimization:

  • getVersesByChapter() in verses.ts short-circuits for BSB — reads directly from verses table without joining verse_texts (denormalized for performance)

Persistence:

  • Translation selection stored in translation cookie (1-year, SameSite=Lax), localStorage, and optionally URL param ?translation=BSB
  • Priority: URL param > localStorage > cookie > default 'BSB'

Data source: Imported from the Berean Bible Society's open-source dataset into verses.text at database seeding time.

Files:

  • packages/db/src/schema/bible.tsverses.text column definition
  • apps/web/src/lib/server/queries/verses.tsgetVersesByChapter(), getVerse() with BSB short-circuit
  • apps/web/src/routes/(app)/read/[[book]]/[[chapter]]/+page.server.ts — cookie-based translation selection
  • apps/web/src/routes/(app)/settings/+page.svelte — BSB credit in About section

Status

Current: DONE Milestone: Foundation (pre-v1) Priority: Core — the entire app is built on BSB text

History:

  • BSB was chosen early as the primary translation due to its accuracy, modern language, and free licensing
  • The verses.text column has been stable since the initial database build
  • Word-level glosses (bsb_gloss) were added during the interlinear feature development

Dependencies:

  • Requires: nothing (foundation layer)
  • Used by: everything — reader, search, interlinear, AI chat RAG, cross-references

Screenshots

Feature screenshot