d57d8f4bef07cf8f7328703be6ea2b5909b5958d
Ponomar — Orthodox Calendar PWA
A Progressive Web App for Orthodox Church calendar, liturgical services, and Bible readings.
Derived from the original Java Ponomar application by Aleksandr Andreev, Yuri Shardt and Sergei F..
Demo: https://ponomar.atroshin.ru
Features
- Calendar — View month grids with liturgical days, fasting periods, ranks, and commemorations. Supports Julian calendar with Gregorian equivalents.
- Service Reader — Assembles liturgical services (Hours, Kathismata) from structured templates with conditional logic.
- Bible Reader — Read scripture across 13 versions (Church Slavonic, Russian Synodal, KJV, Brenton, Vulgate, etc.). Per-version reading position persists across sessions.
- Multi-language UI — English, Russian, Church Slavonic (with dedicated Slavonic fonts).
- PWA — Installable on desktop and mobile devices.
Tech Stack
- TypeScript — fully typed
- Vite — build tool
- Tailwind CSS v4 — utility-first CSS
- fast-xml-parser — legacy XML conversion (manual only)
Getting Started
npm install
npm run dev
Data files in static/data/ are pre-converted JSON (not committed). To regenerate from the Java XML sources, run:
npm run convert # re-convert all data from XML
npm run migrate # normalize to current format
Set PONOMAR_JAVA_HOME to point at a local clone of the Java Ponomar repository (defaults to ../ponomar).
npm run build # production build
npm run preview # preview production build
Project Structure
src/
core/ — Domain logic (calendar, paschalion, service assembly, i18n)
ui/ — View components (app, calendar, bible, service, settings)
main.ts — Entry point
scripts/ — Data conversion, migration, validation, and CLI tools
static/
data/ — Liturgical data as JSON (not committed, generated from Java XML via npm run convert)
fonts/ — Church Slavonic fonts
icons/ — PWA icons
License
Same as the original Java project.
Languages
TypeScript
98.1%
CSS
1.1%
JavaScript
0.4%
Python
0.3%