Changed 64 occurrences of "Psalm" to "Psalms" to match the
canonical book name used by the Bible API. This was causing
verses to fall back to John 3:16 instead of showing the
correct verse with its devotional.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add devotional content for all 31 featured verses with title, theme,
opening, meditation, application, and prayer
- Redesign VOTD page with hero layout, centered verse, elegant divider
- Add application card and prayer card with distinct styling
- Add Listen button for text-to-speech of full devotional
- Add collapsible archive for past 30 days
- Consolidate get_daily_verse() function (remove duplicate from main.py)
- Load featured verses from JSON instead of hardcoded list
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Move static reference data from Python modules to JSON files in data/ directory:
- Bible metadata (testament lists, book abbreviations) → bible_metadata.json
- Chapter explanations and popularity scores → chapter_explanations.json, popular_chapters.json
- Featured verses for verse of the day → featured_verses.json
- Resource slugs for sitemap generation → resource_slugs.json
Benefits: easier content updates, better separation of data and code, enables non-developer content management. All 252 tests passing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>