Skip to content

mbaldwinsmith/consecration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Consecration

consecration.live

A guided 33-day Marian consecration progressive web app (PWA) for daily prayer and reflection. Built with vanilla JavaScript ES modules, zero build tools, and zero dependencies.


Features

  • Four consecration modes — Traditional (St. Louis de Montfort), Contemporary, Lite, and St. Joseph
  • Daily prayer reader — scripture passages, meditations, prayers, and litanies rendered from modular JSON files
  • Catch-up system — summarised readings for missed days so you can stay on track
  • Streak tracker — a discreet counter and optional calendar view of completed days
  • Liturgical calendar — suggested start dates calculated to finish on major Marian feast days
  • Light / dark theme — respects system preference, overridable with the 🌞/🌛 button
  • Daily reminders — optional browser push notifications via the 🔔/🔕 button
  • PWA install — installable on desktop and mobile via the ⬇️ button
  • Offline-capable — service worker caches all shell assets and prayer content
  • Accessible — WCAG AA contrast, full keyboard navigation, screen-reader labels throughout
  • Bible reference tooltips — Logos Reftagger integration for inline scripture hover cards

Technology stack

Layer Choice
Language Vanilla JavaScript (ES modules, no transpilation)
Styling Plain CSS with custom properties
State localStorage with a namespaced state module
Routing Hash-based client-side router
Offline Service Worker (Cache API)
Notifications Web Notifications API + Service Worker messaging
Speech Web Speech API (SpeechSynthesis)
Bible refs Logos Reftagger (external script, graceful offline fallback)
Icons Static PNG (192 × 192, 512 × 512, maskable 512 × 512)

Running locally

No build step required. Serve the project root with any static file server:

npx serve .

Then open http://localhost:3000 in your browser.

Alternatively, use Python's built-in server:

python3 -m http.server 3000

Note: The service worker requires HTTPS or localhost. Most static servers on localhost work out of the box.


Prayer content

Prayer files live under prayers/<mode>/day-NN.json and conform to the schema in prayers/schema.json. There are 132 files in total (4 modes × 33 days).

To contribute or correct prayer content, edit the relevant JSON file and open a pull request. Each file requires:

  • day — integer 1–33
  • title — day title string
  • theme — one-sentence theme
  • sections — array of prayer, scripture, meditation, or litany objects
  • catchupSummary — 2–4 sentence summary for the catch-up view

See prayers/schema.json for the full JSON Schema (draft-07).


Deployment

The app is a static site with no server-side logic. Deploy to any static host (Netlify, GitHub Pages, Cloudflare Pages, etc.). All hosts listed serve index.html for the root path by default, which is all that is required.

Contributors