Bible search and display web app
Built using Crystal (programming language), Kemal (web framework), SQLite (database)
- Interlinear search results
- Full text search: English, Hebrew, and Greek
- Provide your own Bible content
- No server required - uses sqlite database (local)
- Good performance - compiled code
- Query Greek and Hebrew by root/lemma
- Search for works with specific part of speech
- Strong's definitions - both popup and inline
- See difference, union, and intersection across prior search results
- Uses Bootstrap 5
- Install Crystal - https://crystal-lang.org
- Install Kemal - https://kemalcr.com
- Clone this repo
- Rename
.env-example
to.env
& update values to match your environment - Install dependencies -
shards install
- Install just - https://github.com/casey/just (optional)
- Install watchexec - XYZ (optional)
- Set up the database - instructions pending
- dotenv - https://github.com/drum445/dotenv
- sqlite3
- kemal
- just
- watchexec
- Run
just watch
(orcrystal run src/bcv-kemal.cr
)
- Run
just prod
(orKEMAL_ENV=production crystal run src/bcv-kemal.cr --release -O3
)
- Run
just build-prod
(orKEMAL_ENV=production crystal build src/bcv-kemal.cr -o bcv-kemal --release -O3
)
- Change SQL to parameterized queries
- Document database schema
- Document .env fields
- Document content ETL
- Capture performance metrics
- English Bibles: https://openbible.com/texts.htm - several translations available
- Greek New Testament:
- Hebrew Bible:
- Strongs: https://github.com/STEPBible/STEPBible-Data/tree/master/Lexicons
- Queries are parameterized - avoids SQL injection
- Kemal server is http, not https
- There is no support for separate users or authentication - e.g. query history is shared across all clients
- Content: Abide by all copyrights and other content restrictions
TODO: Write development instructions here
- Fork it (https://github.com/balain/bcv-kemal/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
MIT
Copyright © 2025
See LICENSE for full license content.
- John - creator and maintainer