A daily companion for Coptic Orthodox practice — prayer, fasting, and the Word — built around a personal, flexible Rule of Life. iOS-first, local-first.
Available on the App Store as Coptic Daily Companion. The repository and much of the codebase still use the original project codename Pharos — same app.
This project is open to contributors. If you have never contributed to open source before,
CONTRIBUTING.mdwalks through every step, from forking to your first merged pull request. Start with an issue labeledgood first issue.
npm install
npm start # press i, or scan the QR with Expo Go on your iPhoneThe app loads in Expo Go over wifi and hot-reloads. No Mac, no Xcode, and no API keys are
required — without backend keys it runs fully on-device. On the Today screen, the small
DEV bar (debug builds only) lets you jump to any date — including the liturgical golden
dates — to see fasts and feasts change.
npm test # Jest — domain + state + UI-label suites (must stay green)
npm run typecheck # tsc --noEmit, strict
npm run web # Expo web preview in a browser| Layer | State |
|---|---|
Coptic calendar engine (src/domain/coptic) |
✅ built + tested |
Rule / streak engine (src/domain/rule) |
✅ built + tested |
| Design system + app shell (tab nav ledger, fonts, theme) | ✅ built |
| Today · Rule · Hours · Word · Learn · Saved · You tabs | ✅ built |
| Onboarding, journal, highlights, ordo, office reader | ✅ built |
| Accounts + sync (Supabase, Sign in with Apple) | ✅ built — optional; the app runs local-only without keys |
| Verified liturgical content (Agpeya litanies, Synaxarium) | ⬜ partly draft — see CONTENT-LICENSE.md |
The iOS app is built and submitted via EAS cloud builds and tested in Expo Go — full
Xcode is not required. See docs/PUBLISHING.md.
Start with docs/ — the living, implementation-accurate reference:
- docs/APP-GOALS.md — vision, principles, IA, voice
- docs/ARCHITECTURE.md — layout, domain-purity rule, clock, db/state
- docs/DESIGN-SYSTEM.md — tokens, type, the codex components
- docs/LITURGICAL-RULES.md — calendar/fasting/feasts as implemented
- docs/RULE-ENGINE.md — practices, cadences, statuses, streaks
- docs/CONTENT-SOURCES.md — where the liturgical text comes from
- docs/BACKEND-SETUP.md — the optional Supabase backend
- docs/PUBLISHING.md — EAS → App Store
The original design package is in handoff/; live test status and the
open liturgical questions are in TESTING.md.
src/domain is pure TypeScript — no react/react-native/expo imports, and it
never calls new Date() (today is injected via src/domain/coptic/clock.ts).
Everything liturgical and rule-related is provable with npm test alone.
Contributions are welcome — bug fixes, tests, documentation, accessibility, and especially liturgical corrections (you don't need to be a programmer to file one).
CONTRIBUTING.md— setup, the three house rules, and how to open a pull requestCODE_OF_CONDUCT.md— how we treat each other hereSECURITY.md— report a vulnerability privately
Pull requests are reviewed within a week, usually sooner.
The code is MIT — see LICENSE.
The liturgical content bundled with it (Agpeya prayers, Synaxarium entries, scripture) is
not covered by MIT and carries its own permissions. Read
CONTENT-LICENSE.md before forking or reusing that text.