Skip to content

jungrok5/one-scroll-bible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

587 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English · 한국어

Bible in One Scroll (한눈에 보는 성경 이야기)

The whole Bible as one story you scroll through — from Creation to Restoration — built mobile-first so it can be understood at a glance.

🔗 https://one-scroll-bible.com/

What this is

This is not a Bible translation (Bible societies and Wycliffe do that) and not a Bible app (YouVersion does that). It is the on-ramp in front of them.

A free, shareable single page where most people on earth can meet — in their mother tongue, in five minutes — the big picture of the Bible's 66 books (Creation → Fall → … → Church → Second Coming) and the gospel, all the way to a prayer to receive Christ.

If a paper tract summarizes the gospel in four pages, this site holds the whole Bible's storyline in one scroll, with every quotation linked to the real Scripture — a "living tract."

  • Scripture is quoted verbatim from each language's official translation — never paraphrased; every reference is tappable and opens that language's Bible.
  • Two audiences: people who know the Bible but have never read it through, and people hearing it for the first time.
  • The site auto-detects your browser/OS language and lets you switch via the 🌐 search — live in 210+ languages (the menu shows the exact, current list).

What's inside

  • 13 scenes — Creation → Fall → Patriarchs → Exodus → Conquest/Judges → United Kingdom → Divided Kingdom → Exile → Return → Silent Years → Jesus → The Church → Restoration (Second Coming).
  • Each scene: key people & events, a key verse, the "Christ thread" (how the scene points to Jesus), "Love that won't quit," and a "common misconception → actually."
  • The heart of the gospel — sin / law / grace / justification by faith / the kingdom of God / the gospel; the "mirror" (Israel = me); "because of me" (the cross); the objection FAQ (fairness / cheap grace / "isn't being a good person enough?"); a prayer to receive Christ; and next steps (keep praying · read the Bible · find a nearby church).
  • The threefold office of Christ (true Prophet · Priest · King).

How we handle Scripture

The one rule we never break: we never invent or self-translate a verse. Every quoted verse is verbatim from an official published translation — pulled from the real Bible (mostly YouVersion) and checked character-by-character. Each language uses its representative version (Korean Revised Version, ESV, 和合本, 新共同訳, RVR1960, Almeida, Louis Segond, Lutherbibel, Синодальный, Van Dyck, and more). The surrounding prose (storyline, explanations, the prayer) is translated per language and natively reviewed — but anything shown in quotation marks is the official text, untouched.

When a language has no complete Bible, we respond in tiers — never by fabricating Scripture:

  1. Quote what exists, verbatim. Many languages have the New Testament (sometimes part of the Old); those passages are quoted directly. Example: Kyrgyz has the NT + Genesis + Judges, so the Creation / Fall / Promise and Judges scenes use real Kyrgyz Scripture.
  2. Substitute a NT verse for a missing OT one. Where an OT key verse isn't available, use a NT verse that carries the same truth (e.g. Isaiah 53:5 → 1 Peter 2:24) — still verbatim — and otherwise tell that scene as an unquoted summary with its reference left empty (no broken link).
  3. Widen the trusted sources. "Not on YouVersion" ≠ "no text exists" — we also use eBible.org, the Digital Bible Library / api.bible, and unfoldingWord / Door43 (including Open Bible Stories for languages with no Bible at all).
  4. Bridge language. Where there is no Scripture in the language itself, the storyline and gospel are translated into the mother tongue while the quoted verses are shown in a regional/national language its speakers read, linked and clearly labeled.
  5. Otherwise, defer honestly. If none of the above works yet, the language is marked coming soon and revisited as translations, sources, and tooling improve.

All five tiers are in use today — full; partial / richer-partial (Kyrgyz, Fula); eBible-sourced full Bibles (Tibetan); Open Bible Stories (Balochi); and bridge mode (Bhojpuri←Hindi, Chittagonian←Bengali).

Correctness before scale. The aim is every people group in its mother tongue — but a language goes live only when its translated prose (storyline / FAQ / prayer — the part AI generates; the verses are copied verbatim) is verifiably faithful: back-translation that matches the source and native review with no unresolved errors. If it can't be verified faithful, it is deferred — however many people speak it. A faithful "not yet" beats a fabricated verse, or an unreliable AI translation. In practice this puts the realistic reach near the ~200 languages where reliable machine translation exists, rather than all ~7,400 — and that is intentional. (Population reach is already ~90%, via the largest languages.)

Perspective

Based on the evangelical · Reformed redemptive-historical view shared by most of the Korean Protestant church.

Tech / deploy

  • A dependency-free single index.html (HTML / CSS / vanilla JS) plus per-language packs i18n/<code>.json (loaded on demand).
  • Per-language static pages (/en/, /ja/, /ar/ …): each carries its own title / OG (title · description · image · locale) / canonical / hreflang and a prerendered localized body + JSON-LD + llms.txt, so social shares preview correctly (image included) and search/AI crawlers index each language.
  • Two companion pages, built the same way (own per-language packs + prerendered localized body + per-language head/OG/JSON-LD/hreflang, so crawlers index every language):
    • /about/To Every Tribe and Tongue: translation-reach stats, rare facts, the languages still waiting. Packs: i18n/about/<code>.json.
    • /maps/Bible by Map: the OT timeline, Jesus' life and Paul's journeys on a real map. Packs: i18n/maps/<code>.json.
    • Both share one switcher order (the main LANGS order) and localize cross-page links to the active language (falling back to the neutral page when a surface lacks that language).
  • Generator node tools/build-pages.mjs produces all of the above (it calls tools/build-subpages.mjs for /about/ + /maps/) plus sitemap.xml and llms.txt. Vercel runs it on every deploy, so generated pages are not committed to git; the committed binaries are the shared OG image, the PWA icons and the per-language QR codes.
  • Adding a language follows the /add-language skill (mode detection · validation · verse-link audit · verbatim + prose checks) — and its §9 extends the same language to /about/ and /maps/.
  • Deployed on Vercel (updates on push to main). Includes robots.txt, sitemap, OG / JSON-LD and an offline PWA.

Tools & skills

Site builds and language additions are automated by in-repo scripts and a Claude Code skill. (Run every command from the repo root.)

Build / deploy

  • tools/build-pages.mjs — the static-page generator. Using index.html as the template, it produces the per-language pages plus sitemap.xml / llms.txt, auto-backfills any missing QR, refreshes the sw.js cache stamp and i18n/en.json, and runs the i18n-completeness check (generated pages aren't committed — Vercel regenerates them on every deploy).
  • tools/build-subpages.mjs — generates the /about/ and /maps/ pages from i18n/about|maps/<code>.json (called by build-pages; --bake refreshes the committed ko roots). Injects the dynamic switcher list + cross-page-link availability map.
  • tools/check-i18n.mjs — completeness gate: every pack (main · about · maps) has every reference key/array; run standalone or via build-pages.
  • tools/make-maps-verse.mjs <code> / tools/make-about-verse.mjs <code> — inject/verify the sub-page hero verses verbatim (maps = 2 Peter 1:16 full; about = the Rev 7:9 clause), never AI-translated.
  • tools/build-about.mjs — refreshes the /about/ translation-reach numbers snapshot (about/data.json).

/add-language skill (.claude/skills/add-language/) — the procedure to add a language with nothing missed. Its lib/ helpers, by phase:

  • Pick / mode: pick-candidates (rank candidates from Joshua Project by unreached-ness · speaker count) · detect-mode (probe YouVersion · eBible · OBS sources → recommend full / partial / bridge / OBS mode)
  • Quote extraction: fetch-verse (pull verbatim verses from bible.com — prevents summarizing-model hallucination) · fetch-booknames (localized 66 book names from the version API + a ready-to-paste integrate config)
  • Integrate: integrate (write books/yv/bookopt into the pack + patch index.html and build-pages) · convert-digits (native digits → ASCII in references) · make-qr (per-language QR)
  • Validate (offline gate): validate (structure · s-keys · film-free · APP_JS) · audit-links (verse-link audit — display↔USFM, 0 missed)
  • Review (network): verify-verbatim (quoted verses) · verify-inline (inline body quotes) · verify-prose (prose meaning via back-translation) · native-review-prompt (a report-only native-speaker review agent)

Full procedure lives in the skill's SKILL.md.

Contribute — together, in every language

This goes faster together. Please add or polish your language. You don't need to code — just the text; the maintainer handles building, images, verse links and deployment.

  • ✏️ Fix wording (easiest): on GitHub, open i18n/<code>.json, click the pencil (Edit), change the text, then Propose changesPull request. Done.
  • 🌍 Add a language: copy i18n/en.json to i18n/<code>.json, translate the values → Pull request.
  • 📜 Just two rules: ① Bible quotes must be verbatim from your language's official translation — no paraphrase (copy from a real Bible). ② Keep the keys, HTML tags and structure; translate only the values.

Full step-by-step: CONTRIBUTING.md (English) · CONTRIBUTING.ko.md (한국어). Questions → issues.

References

Many ministries share this heart; we are the on-ramp in front of them, and we link out to them. A few, by focus:

Big-picture overview (closest to us)

  • BibleProject — the Bible's storyline & themes as animations; many subtitle languages, free. (video-first; no prayer to receive Christ)
  • Open Bible Stories — unfoldingWord — 50 Creation→Restoration Bible stories, CC-licensed in hundreds of languages.

Gospel presentation + a decision (closest to our second half)

Video / oral evangelism (every-language aim)

Full-Bible access (the infrastructure we link into)

Missions data / research (used to choose which languages to add next)

  • Joshua Project — unreached people-group & language data (speakers, % evangelical, Bible-translation status); the dataset we use to pick the next languages by least-reached need and speaker count.

License / contact

  • Code (HTML/CSS/JS + build tooling): MIT.
  • Content (the redemptive-history / gospel text & its translations — i.e. our own writing): CC BY 4.0 — reuse, translate and share freely, with attribution. Exception — English is excluded. The English pages (and the English strings in index.html's EN_PACK and i18n/en.json) are not offered under any Creative Commons licence, because they quote the ESV, whose terms state the text "may not be quoted in any publication made available to the public by a Creative Commons license." Every other language's own writing remains CC BY 4.0.
  • Scripture quotations are NOT covered by that CC BY 4.0 licence. They are quoted from each language's representative translation, remain the property of their respective publishers, and are used here by quotation and linking only. Every page states this in its footer, next to the notice for the translation it quotes.
    • English quotes the ESV: Scripture quotations are from the ESV® Bible (The Holy Bible, English Standard Version®), © 2001 by Crossway, a publishing ministry of Good News Publishers. ESV Text Edition: 2025. The ESV text may not be quoted in any publication made available to the public by a Creative Commons license. The ESV may not be translated in whole or in part into any other language. Used by permission. All rights reserved.
    • Spanish quotes the RVR1960: El texto bíblico ha sido tomado de la versión Reina-Valera © 1960 Sociedades Bíblicas en América Latina; © renovado 1988 Sociedades Bíblicas Unidas. Utilizado con permiso.
    • Korean quotes the 개역개정: 「성경전서 개역개정판」 © 대한성서공회.

For content questions or feedback, use the contact at the bottom of the site, or open an issue.

About

📖 The whole Bible as one scrollable mobile page — Creation → Cross → Restoration, leading to the gospel. In many languages. · 한눈에 보는 성경 이야기

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages