Skip to content

Add Pray PWA: searchable Christian prayer collection - #1

Merged
fingerskier merged 4 commits into
mainfrom
claude/christian-prayers-pwa-1xfy05
Jun 27, 2026
Merged

Add Pray PWA: searchable Christian prayer collection#1
fingerskier merged 4 commits into
mainfrom
claude/christian-prayers-pwa-1xfy05

Conversation

@fingerskier

Copy link
Copy Markdown
Contributor

Summary

This PR introduces Pray, a Progressive Web App for discovering and reading curated Christian prayers from multiple traditions. The app features full-text fuzzy search, tradition filtering, offline support via service worker, and a reverent, accessible reading interface.

Key Changes

  • Prayer database (src/data/prayers.json): 2,300+ lines of curated prayers with metadata (title, text, tradition, tags, source)
  • Main application (src/main.js): 616-line vanilla JS app with:
    • Fuzzy search powered by Fuse.js (weighted across title, tags, text, tradition)
    • Tradition-based filtering with custom sort order
    • Prayer detail view with copy/share functionality
    • Random prayer picker
    • Keyboard shortcuts (e.g., / to focus search)
    • Theme toggle (light/dark) with localStorage persistence
  • Styling (src/style.css): 611 lines of responsive CSS with:
    • Warm parchment light theme and charcoal dark theme
    • Sticky header with backdrop blur
    • Accessible focus states and semantic color contrast
    • Mobile-optimized layout with horizontal scrolling filters
  • Build & deployment:
    • Vite config with vite-plugin-pwa for service worker and manifest generation
    • GitHub Actions workflow for automated deployment to GitHub Pages
    • Icon generation script (Python) producing 192×192, 512×512, maskable, and Apple touch icons
  • Web app metadata: HTML head with PWA manifest, theme colors, viewport settings, and semantic markup

Notable Implementation Details

  • Search weighting: Titles (0.4) > alt titles (0.2) > tags (0.18) > text (0.12) > tradition (0.05) > category (0.03) > source (0.02)
  • Tradition ordering: Roman Catholic, Eastern Orthodox, Anglican, Lutheran, Reformed, Presbyterian, Methodist, Protestant, Common — with alphabetical fallback
  • Offline-first: Service worker precaches entire prayer collection for full offline functionality
  • Accessibility: Skip link, ARIA labels, semantic HTML, keyboard navigation, high contrast in both themes
  • Responsive: Works on mobile (with touch-friendly buttons) through desktop

https://claude.ai/code/session_01R9wwWGNYuEgkyktf5Zffpo

claude added 3 commits June 27, 2026 19:55
Scaffold a Vite + vite-plugin-pwa progressive web app that hosts a
curated, searchable collection of Christian prayers and deploys to
GitHub Pages via GitHub Actions.

- Offline-ready PWA: manifest, gold-cross icons (192/512/maskable),
  service worker precaching the whole collection
- Fuzzy full-text search (Fuse.js) across title, text, tags, tradition
  and source; "/" focuses search, live result highlighting
- Reverent reading view with copy/share, tap-to-search tags, and full
  metadata; tradition filters, random prayer, light/dark themes,
  deep-linkable per-prayer URLs
- GitHub Actions workflow builds and publishes dist/ to Pages, deriving
  the base path from the repo name so forks work unchanged
- Python/Pillow icon generator (scripts/gen-icons.py)

Prayer corpus seeded with a placeholder dataset; the full verified
collection follows in a subsequent commit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9wwWGNYuEgkyktf5Zffpo
Replace the placeholder dataset with 102 traditional, public-domain
prayers spanning Roman Catholic (36), Anglican (15), Lutheran (13),
Eastern Orthodox (13), Methodist, Reformed, Presbyterian, Protestant,
and Common/ecumenical sources.

The canonical texts (the Creeds, the Lord's Prayer, the Jesus Prayer,
the major Marian prayers, the BCP collects, Luther's prayers, and the
psalms) were cross-checked against their standard forms. Cross-tradition
variants are deliberately preserved where the difference is meaningful —
e.g. the Nicene Creed with and without the Filioque, and the Lord's
Prayer in its "trespasses" and "debts" forms — while same-tradition
duplicates and mislabeled texts from curation were removed. Category
labels were normalized into a clean taxonomy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9wwWGNYuEgkyktf5Zffpo
The first run failed at configure-pages because Pages was not yet
enabled on the repository ("Get Pages site failed... Not Found").
Set enablement: true so the action turns on Pages with the GitHub
Actions build source automatically, using the workflow's pages:write
permission — no manual repo setup required.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9wwWGNYuEgkyktf5Zffpo

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f20a7e90b9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/deploy.yml Outdated
with:
# Auto-enable Pages (Source: GitHub Actions) on first run so no
# manual repo configuration is needed.
enablement: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use a Pages-capable token for enablement

In repos or forks where Pages has not already been enabled, this step runs with the default GITHUB_TOKEN, but I checked actions/configure-pages@v5/action.yml and the enablement input says it requires a token other than GITHUB_TOKEN with Pages/admin permissions. In that first-run context the auto-enable path can fail before the artifact is uploaded, so either remove this ineffective auto-enablement or pass an appropriate PAT/GitHub App token.

Useful? React with 👍 / 👎.

Per Codex review on PR #1: actions/configure-pages@v5's `enablement`
input requires a token with Pages/admin scope beyond the default
GITHUB_TOKEN, so the auto-enable path could never succeed here and only
produced a confusing "Resource not accessible by integration" error.
Pages is now enabled on the repository (Source: GitHub Actions), so the
default configure-pages step works without it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9wwWGNYuEgkyktf5Zffpo
@fingerskier
fingerskier merged commit f2e792d into main Jun 27, 2026
1 of 2 checks passed
@fingerskier
fingerskier deleted the claude/christian-prayers-pwa-1xfy05 branch June 27, 2026 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants