← All projects

Mobile app · knowledge graph

Bible Learning App

A Bible learning app built around a knowledge graph connecting people, places, events, and themes across Scripture, with spaced-repetition review instead of a lesson checklist.

Year
2026
Status
Active — building
Stack
React Native · Expo · TypeScript

Most Bible apps are either a reading plan or a trivia quiz. What I actually wanted was something that treats the Bible the way it is: one connected story, where a name in Genesis matters again in Revelation. So instead of building lessons first and bolting on some "related verses" feature later, I built a knowledge graph first. People, places, events, miracles, parables, prophecies, and themes are all nodes with real edges between them, and everything else in the app reads from that.

A web, not a straight line

You start from one choice, like picking a place (say, Egypt) from a list. The app doesn't hand-pick what to show you next: it pulls whatever's actually connected to that place through real graph edges, which is why Moses shows up. It's not that I decided Moses belongs there, it's that Scripture does. Finish a lesson and you get exactly one decision: "want to learn more about X?" where X is some specific detail from what you just read. Say yes and it branches to a lesson connected by theme rather than sequence, which can land you in a completely different book. Say no and it continues on the main path. So the app isn't a straight line through the text, it's a web you wander, and every branch is a real graph edge, not a curated "related content" list.

Your profile is a constellation view of your own unlocked subgraph, not a generic stats page, for the same reason: if a feature isn't derived from the graph, I've been cutting it rather than shipping a fake counter next to it.

Spaced repetition, not a checklist

Review runs on a classic 5-box Leitner scheduler over questions generated from the graph, so what you've learned is scheduled to resurface instead of disappearing the moment you finish a lesson. Streaks and progress are computed from actual activity and completed lessons, not a separate counter that can drift out of sync with what you've really done.

Content
445 curated questions across the Bible, compiled into lessons and review items
Graph
13 entity types (people, places, events, miracles, themes, etc.), BFS pathfinding
Review
5-box Leitner spaced repetition, generated from the graph
Tests
Unit-tested with a passing suite, typechecked, linted

Where it actually is

The lesson flow, graph, pathfinding, and review system all work locally right now. Content still lives on-device, not in a real database yet. Moving that onto Supabase is the next real step, alongside making journeys (guided sequences through the graph, like following one character's arc) generated from the graph instead of hand-typed. This is the project I'm most invested in and the one I'll keep building through the semester, alongside coursework and internship applications.