Emmaus is a Bible app for people who already have one and want their questions answered from the text itself. Describe a half-remembered story, a nickname or a feeling, and it finds the passage you mean and quotes it word for word. Search runs over an AI-written layer of plain-language descriptions, and code checks every quote against the stored verses.
Why it exists
The idea took shape in a Claude conversation Tony exported on October 5, 2026, about putting the whole Bible in a Convex database. He started Emmaus on October 24. Claude Code built it at his direction. The first version followed that conversation and a build contract, and each feature since has its own spec, plan and task list.
Keyword search often misses questions asked the way people talk. "Who's that dude that barely made it to heaven?" shares almost no words with Luke 23:39-43, where a criminal crucified beside Jesus asks to be remembered.
The name comes from the road to Emmaus in Luke 24:13-35, where two travelers had the scriptures opened to them.
What it does
Answers quote the Berean Standard Bible, King James Version or World English Bible. Each answer opens the people, places, maps and eras around the passage.


Signed-in testers can also read, take notes and keep notebooks. A graph view puts every book, passage, person, place and event on one map. A custom WebGL2 renderer draws its 69,833 nodes and 1,307,396 connections.

How it works
The layer is called Hermeneia, Greek for interpretation, after Luke 24:27. Its rule, in the repo's words: "the text is truth, the layer is a projection."
Claude Sonnet 5.5 subagents wrote it for all 9,213 passages. Each got a heading, a plain restatement, context, everyday phrasings, likely questions and nicknames. Luke 23:39-43 carries rows like "squeezed into heaven at the buzzer," so plain full-text search in Convex finds it.
At question time, a typed decision model called Jev routes the question and maps it to tags. Convex searches the layer, verses and people. The results are grouped by passage, and Jev re-ranks them. A small, fast language model writes two to four sentences, with fallback models behind it. A quote that doesn't match the stored text is replaced with the true words or left unquoted.
Keeping the layer faithful
Cheaper models, mostly DeepSeek V4 Flash, score every row against the exact verse text. In calibration, DeepSeek caught all 17 deliberately wrong rows planted among 206 genuine ones. At its price, scoring the whole Bible costs about $2.20.
Rows under 0.6 leave search; 421 of 158,459 were held at import. A held row returns only when theologians approve it in a blind vote:
/** Matching theologian votes needed to decide a row. */
export const REQUIRED_MATCHING_VOTES = 2;
/**
* approved: ≥2 approvals and more approvals than rejections · rejected: the mirror ·
* disputed: two or more votes without a decision (a tie) · waiting: fewer than two votes.
*/
export function outcomeFor(approvals: number, rejections: number): Outcome {
if (approvals >= REQUIRED_MATCHING_VOTES && approvals > rejections) return "approved";
if (rejections >= REQUIRED_MATCHING_VOTES && rejections > approvals) return "rejected";
if (approvals + rejections >= REQUIRED_MATCHING_VOTES) return "disputed";
return "waiting";
}A tie waits for another theologian. Tony never breaks ties.
Where it stands
Emmaus opened as an invite-only beta on October 31, 2026. That day, a seminary-trained tester went straight to the map and found the place panel inaccurate. The feedback added two data phases: the panel now shows its evidence, and place descriptions draw on more sources.
The graph view went live on November 6. The app runs no analytics, so there are no usage numbers to report.
