A personal Bible study app with rich text notes, commentary, and sermon management.
- Bible Reader — Navigate books and chapters with clean, readable typography
- Rich Text Notes — Attach notes to verse ranges using a full-featured editor
- Note Types — Organize as notes, commentary, or sermons
- Hierarchical Topics — Organize notes with parent-child topic categories
- Inline Tagging — Highlight text and tag as Illustration, Application, Key Point, Quote, or Cross-Reference
- Browse by Tag — View all tagged content across notes from the sidebar
- Dark/Light Theme — Respects system preference with highlight visibility toggle
- Mac App — Native desktop app with local database
- Web Hosting — Deploy with Docker to Railway, Render, or self-host
- Export/Import — Backup and restore notes, topics, and tag types as JSON
- Self-Hosted — Your data stays on your machine
- Claude Integration — MCP server for AI-assisted Bible study
- Pulpit Coverage Dashboard — Heatmap of every book/chapter you've taught, doctrine coverage, illustration reuse
- Command Palette — Cmd+K to jump to any passage, note, doctrine, or action
- AI Study Assistant — In-app Claude chat grounded in your notes, sermons, and theology library (Cmd+J, requires
ANTHROPIC_API_KEY) - MCP Connectors — Plug in your own MCP servers as in-app tools; see
docs/CONNECTORS.md - Auto-Enrichment — Saved sermons get suggested doctrine links, topics, and untagged illustrations
# Install dependencies
npm install
# Development (run in two terminals)
npm run dev # Frontend at http://localhost:3000
npm run dev:server # Backend at http://localhost:3001Build a native Mac app (.dmg):
npm run electron:buildThe app will be created at release/SACRED-*.dmg. Database is stored at:
~/Library/Application Support/sacred/sacred.db
Deploy SACRED as a web app on Railway, Render, or any Docker host.
- Fork this repo (or use a private copy with your data)
- Connect Railway to your GitHub repo
- Add environment variables:
AUTH_PASSWORD— Required, your login passwordESV_API_KEY— Optional, for ESV translation
- Add a volume mounted at
/app/data - Railway auto-deploys on push
# Build image
npm run docker:build
# Run container
docker run -p 3000:3000 \
-e AUTH_PASSWORD=your-password \
-v sacred-data:/app/data \
sacredVisit http://localhost:3000 and log in with your password.
| Variable | Required | Description |
|---|---|---|
AUTH_PASSWORD |
Yes | Password for web access |
ESV_API_KEY |
No | ESV Bible API key (get one) |
PORT |
No | Server port (default: 3000) |
DB_PATH |
No | Database path (default: /app/data/sacred.db) |
SACRED includes an MCP server that lets Claude read and write your Bible notes directly.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sacred-bible-notes": {
"command": "node",
"args": ["/path/to/Sacred/mcp/build/index.js"],
"env": {
"DB_PATH": "/path/to/Library/Application Support/sacred/sacred.db"
}
}
}
}Create .mcp.json in the Sacred project directory (this file is gitignored):
{
"mcpServers": {
"sacred-bible-notes": {
"command": "node",
"args": ["/path/to/Sacred/mcp/build/index.js"],
"env": {
"DB_PATH": "/path/to/Library/Application Support/sacred/sacred.db"
}
}
}
}See mcp/README.md for detailed setup, available tools, and example prompts.
- Mac App:
~/Library/Application Support/sacred/sacred.db - Docker:
/app/data/sacred.db(mount a volume here) - Development:
./data/sacred.db
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, CSS Modules |
| Editor | Tiptap |
| Backend | Express 5 |
| Database | SQLite (better-sqlite3) |
| Desktop | Electron |
| AI | MCP Server |
SACRED/
├── src/ # React frontend
├── server/ # Express backend
├── electron/ # Electron main process
├── mcp/ # MCP server for Claude
├── build/ # App icons and entitlements
├── data/ # SQLite database (dev)
└── docs/ # Documentation