kennethreitz 5514218320 Use asyncio.to_thread for OG image generation
Pillow image generation is CPU-bound, so run it in thread pool
via asyncio.to_thread() to avoid blocking the event loop.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 13:06:08 -05:00
2025-12-09 10:49:47 -05:00
2025-11-22 12:10:55 -05:00
2025-12-04 23:26:54 -05:00
2025-11-14 19:24:08 -05:00
2025-12-01 14:27:56 -05:00
2025-11-29 13:52:34 -05:00

KJV Study

A comprehensive web application for deep study of the King James Bible, featuring original language tools, AI-powered commentary, extensive theological resources, and classical scholarly presentation.

Live Site: kjvstudy.org

Quick Start

git clone https://github.com/kennethreitz/kjvstudy.org.git
cd kjvstudy.org
docker compose up

Open http://localhost:8000 and start studying.


Features

Complete Bible Text

Original Language Tools

Interlinear Bible

  • Complete Greek (NT) and Hebrew (OT) word-by-word analysis
  • Morphological tagging and grammatical parsing
  • Root word exploration and etymology
  • Word occurrence tracking across the entire Bible

Strong's Concordance

  • 8,674 Hebrew entries (H1-H8674)
  • 5,624 Greek entries (G1-G5624)
  • Definitions, transliterations, pronunciation guides
  • Searchable by word, definition, or Strong's number
  • Related word derivations and cross-references

AI-Powered Commentary

  • Verse-by-verse theological analysis
  • Chapter overviews and book summaries
  • Historical and cultural context
  • Reflection questions for personal study
  • Word studies for key biblical terms

Study Resources

39+ Resource Categories:

Category Examples
Biblical People Twelve Apostles, Women of the Bible, Prophets, Angels
Systematic Theology Christology, Soteriology, Eschatology, Pneumatology
Biblical Themes Parables, Covenants, Names of God, Fruits of the Spirit
Historical Context Timeline, Maps, Festivals, Family Trees

Study Guides:

Reading Plans:

Family Tree Explorer

  • 429+ biblical figures with genealogical data
  • 77+ generations from Adam through the New Testament
  • Interactive ancestor/descendant navigation
  • Biographical data and related Scripture references
  • GEDCOM-based data with Kekule numbering

PDF Export

Generate downloadable PDFs for:

  • Individual verses, chapters, or entire books
  • Study guides and topical collections
  • Bible stories (including children's versions)
  • Reading plans and resources

Accessibility

  • Full keyboard navigation (Vim-style and arrow keys)
  • Screen reader support with semantic HTML
  • Text-to-speech for Scripture reading
  • Dark mode with system preference detection
  • Adjustable font sizes

Tech Stack

Layer Technology
Backend FastAPI, Python 3.13
Frontend Tufte CSS, Vanilla JavaScript
Data JSON (Bible text), SQLite (search index), Gzip (interlinear)
Infrastructure Docker, Fly.io
Package Management uv

API

Full RESTful API with OpenAPI documentation.

Key Endpoints:

GET /api/verse/{book}/{chapter}/{verse}
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}

Development

docker compose up

Without Docker

# Requires Python 3.13+ and uv
uv sync
uv run kjvstudy-org

Running Tests

uv run pytest tests/ -v

100 tests covering API endpoints, edge cases, and web routes.


Deployment

Optimized for Fly.io:

fly deploy

Configuration includes:

  • 2GB RAM with shared CPU
  • Always-on (no cold starts)
  • Preloaded interlinear data
  • Health checks and auto-recovery

Project Structure

kjvstudy.org/
├── kjvstudy_org/
│   ├── server.py           # FastAPI application
│   ├── kjv.py              # Bible text access (31,102 verses)
│   ├── interlinear_loader.py
│   ├── strongs_loader.py
│   ├── cross_references.py
│   ├── topics.py
│   ├── reading_plans.py
│   ├── routes/             # API and web routes
│   ├── templates/          # Jinja2 templates
│   ├── static/             # CSS, JS, images
│   └── data/               # JSON data files
├── tests/                  # Test suite
├── Dockerfile
├── fly.toml
└── pyproject.toml

Contributing

Contributions welcome in:

  • Development: Backend features, frontend improvements, API extensions
  • Content: Theological review, study guides, original language expertise
  • Design: Accessibility, mobile experience, print stylesheets
  • Documentation: Tutorials, API docs, translations

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

S
Description
No description provided
Readme ISC 146 MiB
Languages
Python 45.5%
HTML 41.2%
JavaScript 9.9%
CSS 3.3%