TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Ten rotating chapter lists, local progress, KJV text, and browser read-aloud.
Translation pending
EducationJavaScript · HTMLGitHub @AndreAlfredOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Unofficial public-facing reading-plan tracker for the Professor Grant Horner Bible Reading Plan.
localStorageThis project intentionally does not include NASB95, ESV, NIV, or other copyrighted modern Bible translations. ESV audio is streamed from Crossway's API (key held server-side) and never stored or cached by the app. Imported Bible files remain in the user's browser and are not uploaded by this static app.
This site is unofficial and is not affiliated with or endorsed by Professor Grant Horner, The Lockman Foundation, or any Bible publisher.
Preferred shape:
{
"translation": "My Translation",
"chapters": {
"Genesis 1": [
{ "v": 1, "t": "In the beginning..." }
]
}
}
Also accepted: chapters as an array of chapter objects with book, chapter, and verses.
Static files, no build step and no dependencies. Open index.html through any local
server (python3 -m http.server) — opening it as a file:// URL will not work, because
chapter text is loaded with fetch.
app.js loads two ways: as a browser <script>, where it renders on load, and as a
CommonJS module, where only the pure helpers are exported. That makes the plan maths and
the file parsers testable with Node's built-in runner — no package.json, no install.
node --test test/*.test.js
Note the glob. node --test test/ (the directory form) fails on Node 25.
There is deliberately no package.json: Vercel changes its build behaviour when it finds
one, and this project wants to stay a plain static deploy.
Covered: the ten-list rotation and day maths, progress-file and Bible-file parsing, saved-state repair, voice/speed persistence, the chapter fetch cache, done marks, Complete Day and its undo snapshot, the theme toggle rule, and the offline prefetch list. Not covered: anything touching the DOM, which is still verified by hand in a browser.
sw.js)The service worker is network-first for the app itself (page, app.js, styles.css),
so a deploy reaches phones on their next online load — the cache is only the offline
fallback. KJV chapter files never change, so they are cache-first. vercel.json serves
sw.js with no-cache so browsers always see a new version of it.
Bump VERSION in sw.js only if the cache layout changes (names or strategy); it is
not needed for ordinary releases. To test offline locally, load the site twice (the
second load is the first one the worker controls), then stop the server and reload.