An interactive, multi-language Bible explorer built on Reformed/Evangelical theology. Browse all 66 books of the Protestant canon organized by division, study structured theological commentary, trace the redemptive arc through an interactive timeline, and explore key biblical characters — in Spanish, English, and Portuguese.
README also available in Spanish: README.es.md
- Canonical shelf — 66 books organized into 10 divisions (Pentateuch, Historical, Wisdom, Major Prophets, Minor Prophets, Gospels, Acts, Pauline Epistles, General Epistles, Revelation) with color-coded era bands
- Multi-tab book viewer — Overview, Theology, Purpose, Canon Position, History, Key Verses, and Sources per book
- Systematic theology integration — Westminster Confession chapter anchors and Covenant Theology framework mapped to each book
- Interactive chapter timeline — Horizontal scrollable timeline with era bands and character nodes; click any character for bio, typology, and NT references
- Division tours — Category-level overviews with Christological focus, covenant period, and Reformed distinctives before drilling into individual books
- Trilingual — Spanish (es), English (en), Portuguese (pt); language is persisted in the URL so any view can be shared or bookmarked
- URL-based navigation — Every view state is encoded in the hash (e.g.
#book/1/theology/en) for shareable, refreshable deep links - Scholarly sources — Tiered bibliography per book covering primary, secondary, and reference works
| Layer | Technology |
|---|---|
| UI | React 19 |
| Build | Vite 8 |
| Language | JavaScript (ES Modules) |
| Styling | Inline CSS-in-JS with a unified color token system |
| Data | Static JSON files loaded at runtime |
| Linting | ESLint 10 with React Hooks and React Refresh plugins |
ebpi/
├── canon/ # React application
│ ├── src/
│ │ ├── App.jsx
│ │ ├── CanonShelf.jsx # Main routing controller
│ │ ├── constants.js # Color tokens, book registry, UI strings
│ │ ├── utils.jsx # Verse linking, URL builders
│ │ ├── adapters/
│ │ │ └── canonToViewer.js # CANON schema → component shapes
│ │ └── components/
│ │ ├── IndexPage.jsx # OT / NT shelf view
│ │ ├── DivisionTour.jsx # Division overview page
│ │ ├── BookViewer.jsx # Multi-tab book detail
│ │ └── book/
│ │ ├── Timeline.jsx # Interactive chapter timeline
│ │ ├── TheologyTab.jsx
│ │ └── SourcesTab.jsx
│ ├── public/
│ │ └── data/ # Book JSON files (served at runtime)
│ ├── package.json
│ └── vite.config.js
└── data/ # Source data (CANON Pipeline output)
├── books-manifest.json
├── personas-display.json
├── genesis.json
└── ...
- Node.js v18 or later
- npm (included with Node.js)
# 1. Clone the repository
git clone https://github.com/mixwarecs/ebpi.git
cd ebpi
# 2. Install dependencies
cd canon
npm installnpm run devOpens a Vite dev server at http://localhost:5173 with hot module replacement.
npm run buildOutputs an optimized bundle to canon/dist/.
npm run previewServes the production build locally for final verification.
npm run lintThe app uses hash-based routing so every state is shareable:
| Pattern | Description |
|---|---|
# |
Canonical shelf (OT / NT index) |
#division/[key] |
Division tour for a given canonical group |
#book/[id] |
Book overview (default tab, current language) |
#book/[id]/[tab]/[lang] |
Book at a specific tab and language |
Example: #book/1/theology/en opens Genesis in the Theology tab in English.
Book records are generated by the CANON Pipeline — a separate process that produces structured JSON following a fixed schema. Each record contains:
- Authorship, date, and audience
- Chapter-by-chapter summaries
- Systematic theology doctrines with verse anchors
- Westminster Confession chapter mapping
- Covenant theology connections
- Key characters with typology and NT references
- Historical background (chronology, geography, ANE context)
- Tiered scholarly sources
Completed books are placed in canon/public/data/ and registered in books-manifest.json.
| Status | Books |
|---|---|
| Complete | Genesis, Exodus, Leviticus, Numbers, Deuteronomy |
| Coming soon | 61 remaining books |
The content is written from a Reformed Protestant / Evangelical perspective:
- Westminster Confession of Faith anchors link doctrine to book content
- Covenant Theology — Adamic, Noahic, Abrahamic, Mosaic, and Davidic covenants are traced across books
- Christological focus — Every book is connected to its redemptive-historical role and typological fulfillment in Christ
- Redemptive history epochs define the timeline era bands visible in the book viewer
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-addition - Commit your changes:
git commit -m "Add: description" - Push and open a pull request
To add a new book, run the CANON Pipeline to generate the book JSON, then follow the viewer integration steps.
MIT — see LICENSE for details.