The first pass only tokenized colors; the page was still squeezed into a 55% container (~420px) with boxes nested in boxes. Now: - container widened to a 56rem measure; the intro reads at full prose width with per-section measures instead of one global squeeze - Find a Person is an open lookup block with a bronze label, not a 320px card - Interactive Tree / Messianic Lineage are proper hero cards with bronze "Explore the tree →" / "Trace the line →" affordances - the Overview is a stat-card row in the manner of the books index (479 TOTAL PEOPLE, 41 TOTAL GENERATIONS...), value-first markup with the JS-populated ids preserved - Overview/The Generations headings take the gold-tipped small-caps treatment; generation rows get bronze small-caps person counts and accent hover; section boxes unboxed All 976 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
KJV Study
A scholarly web application for deep study of the King James Bible — pairing the 1769 Cambridge text with original language tools, AI-powered commentary, and classical typography inspired by Edward Tufte.
Overview
KJV Study provides the complete King James Bible (31,102 verses) alongside an extensive suite of research tools: interlinear Hebrew and Greek analysis, Strong's Concordance, cross-references, topical indexes, genealogies, reading plans, and verse-by-verse AI commentary. The entire application is served as a fast, accessible web experience with a full REST API.
git clone https://github.com/kennethreitz/kjvstudy.org.git
cd kjvstudy.org
docker compose up
# → http://localhost:8000
Features
Scripture
- 31,102 verses from the 1769 Cambridge KJV edition — browse all 66 books
- Full-text search with SQLite-backed concordance
- Cross-references throughout Scripture
- Red Letter edition highlighting the words of Christ
- Verse of the Day and Random Verse
Original Languages
- Interlinear Bible — word-by-word Greek (NT) and Hebrew (OT) with morphological tagging, grammatical parsing, root word exploration, and occurrence tracking
- Strong's Concordance — 8,674 Hebrew and 5,624 Greek entries with definitions, transliterations, pronunciation, and derivations
Commentary
AI-powered verse-by-verse theological analysis with chapter overviews, book summaries, historical context, word studies, and reflection questions — generated for all 66 books.
Study Resources
| Theology | Christology, Soteriology, Eschatology, Pneumatology |
| People | Twelve Apostles, Women of the Bible, Prophets, Angels |
| Themes | Parables, Covenants, Names of God, Fruits of the Spirit |
| History | Timeline, Maps, Festivals |
| Guides | Gospel, Salvation, New Believer, Prayer & Faith, &c. |
| Plans | One-Year Bible, 90-Day NT, Chronological, &c. |
39 resource categories, 36 study guides, 36 topical indexes, 12 reading plans, 25+ biblical stories (with children's versions).
Family Trees
429+ biblical figures across 77+ generations from Adam through the New Testament — with interactive ancestor/descendant navigation, biographical data, and GEDCOM-based genealogy.
PDF Export
Downloadable PDFs for verses, chapters, books, study guides, stories, and reading plans.
Accessibility
Keyboard navigation (Vim-style and arrow keys), screen reader support, text-to-speech, dark mode with system preference detection, and adjustable font sizes. See /accessibility.
Architecture
kjvstudy_org/
├── server.py # Responder application (ASGI app = `api`)
├── kjv.py # Bible text access
├── routes/ # 16 route modules (register(api) each)
├── utils/ # Search, PDF, commentary helpers
├── templates/ # 77 Jinja2 templates
├── static/ # Tufte CSS, ET Book fonts, JS
└── data/ # Bible text, commentary, interlinear,
# Strong's, cross-references, topics,
# study guides, reading plans, stories,
# genealogy, timeline, and more
| Backend | Responder, Python 3.13/3.14, Granian |
| Frontend | Tufte CSS, ET Book, vanilla JS |
| Data | JSON, SQLite (search), gzip (interlinear) |
| WeasyPrint | |
| Packaging | uv |
| Infrastructure | Docker, nginx, Dokploy |
| CI/CD | GitHub Actions |
API
Full REST API with interactive documentation.
GET /api/verse/{book}/{chapter}/{verse}
GET /api/verse-range/{book}/{chapter}/{start}/{end}
GET /api/books/{book}/chapters/{chapter}
GET /api/search?q={query}
GET /api/interlinear/{book}/{chapter}/{verse}
GET /api/strongs/{number}
GET /api/cross-references/{book}/{chapter}/{verse}
GET /api/topics/{topic}
GET /api/reading-plans/{plan}
GET /api/verse-of-the-day
GET /api/bible
All endpoints support book name abbreviations (Gen, Ex, Mt, Rev, &c.).
Development
# With Docker (recommended)
docker compose up
# Without Docker (requires Python 3.13+ and uv)
uv sync
uv run kjvstudy-org
# Tests (941 tests across 16 files)
uv run pytest tests/ -v
# Data validation
uv run python scripts/validate_data.py
Deployment
Deployed via Dokploy from Docker on every push to main (after CI passes). Production runs behind nginx for static asset caching, with Granian serving the Responder application. Health checks, auto-recovery, and HTTPS are configured out of the box.
License
ISC License. See LICENSE.
"Study to shew thyself approved unto God, a workman that needeth not to be ashamed, rightly dividing the word of truth." — 2 Timothy 2:15