{"id":49960388,"url":"https://github.com/kenmulford/practicingprayer","last_synced_at":"2026-05-18T02:17:29.647Z","repository":{"id":354940644,"uuid":"1226129095","full_name":"kenmulford/PracticingPrayer","owner":"kenmulford","description":"Cross-platform mobile prayer journal for iOS and Android, built with .NET MAUI. Live on the Apple App Store and Google Play.","archived":false,"fork":false,"pushed_at":"2026-05-15T21:40:12.000Z","size":27629,"stargazers_count":0,"open_issues_count":24,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-15T22:46:11.464Z","etag":null,"topics":["android","csharp","dotnet","ios","maui-app","mobile-app","prayer"],"latest_commit_sha":null,"homepage":"https://practicingprayerapp.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kenmulford.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-01T02:22:18.000Z","updated_at":"2026-05-15T21:35:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kenmulford/PracticingPrayer","commit_stats":null,"previous_names":["kenmulford/practicingprayer"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/kenmulford/PracticingPrayer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenmulford%2FPracticingPrayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenmulford%2FPracticingPrayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenmulford%2FPracticingPrayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenmulford%2FPracticingPrayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kenmulford","download_url":"https://codeload.github.com/kenmulford/PracticingPrayer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenmulford%2FPracticingPrayer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","csharp","dotnet","ios","maui-app","mobile-app","prayer"],"created_at":"2026-05-18T02:17:28.253Z","updated_at":"2026-05-18T02:17:29.638Z","avatar_url":"https://github.com/kenmulford.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Practicing Prayer\n\n[![License: GPL-3.0](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE.txt)\n[![CI](https://github.com/kenmulford/PracticingPrayer/actions/workflows/ci.yml/badge.svg)](https://github.com/kenmulford/PracticingPrayer/actions/workflows/ci.yml)\n\nA privacy-first prayer journal for iOS and Android. Prayer cards, prayer requests, and a focused \"Prayer Time\" session — all stored locally on your device. No accounts, no cloud sync, no analytics, no backend.\n\n\u003e **Status:** Active project. Available on Google Play and the App Store · [practicingprayerapp.com](https://practicingprayerapp.com)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://apps.apple.com/us/app/practicing-prayer/id6760680234\"\u003e\u003cimg src=\"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83\" alt=\"Download on the App Store\" height=\"60\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://play.google.com/store/apps/details?id=com.multithreadedllc.prayercards\"\u003e\u003cimg src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" alt=\"Get it on Google Play\" height=\"60\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/android/phone/light/01-home-dashboard.png\" alt=\"Home dashboard, light mode\" width=\"300\"\u003e\n  \u003cimg src=\"screenshots/android/phone/dark/01-home-dashboard.png\" alt=\"Home dashboard, dark mode\" width=\"300\"\u003e\n\u003c/p\u003e\n\n## What it is\n\nPracticing Prayer organizes prayer around three primitives:\n\n- **Prayer cards** — a topic, person, or theme you return to over time\n- **Prayer requests** — specific items inside a card, with answered/unanswered state and a date when answered\n- **Prayer time** — a focused session that walks through your cards and requests\n\nEverything lives in a local SQLite database. There are no user accounts, no telemetry, and nothing leaves the device unless you explicitly export or share. Tags, colors, and collections exist for personal organization, but the three primitives above are the core loop.\n\n## Privacy\n\nPracticing Prayer is offline-first by design:\n\n- **All data is stored locally** in a SQLite database on the device. No cloud sync, no remote backup.\n- **No accounts.** No sign-up, no login, no identity. The app does not know who you are.\n- **No telemetry, no analytics.** The app makes no network requests for usage tracking, crash reporting, or any other purpose.\n- **No backend.** There is no server-side component to this project.\n- **No third-party integrations** with church management or social platforms.\n- **Sharing is opt-in.** When you tap \"share\", the OS share sheet is invoked with a payload you control. The app never shares without your explicit action.\n- **Notifications are local.** Prayer reminders are scheduled on-device via the OS notification system; they do not require network access.\n\n## Tech stack\n\n- **.NET MAUI 10** targeting `net10.0-android` and `net10.0-ios`\n- **CommunityToolkit.Mvvm** — `ObservableObject` + explicit `SetProperty` / `RelayCommand`\n- **CommunityToolkit.Maui** — popups and platform helpers\n- **sqlite-net-pcl** — Active Record-style model layer\n- **Plugin.LocalNotification** — local prayer reminders\n- **xUnit + NSubstitute** — unit tests\n\n## Build and run\n\nYou'll need the .NET 10 SDK with the MAUI workloads installed:\n\n```bash\ndotnet workload install maui\n```\n\nThen, from the repo root:\n\n```bash\n# Android (emulator or USB-debugging device)\ndotnet build PrayerApp/PrayerApp.csproj -t:Run -f net10.0-android\n\n# iOS (macOS + Xcode required)\ndotnet build PrayerApp/PrayerApp.csproj -t:Run -f net10.0-ios\n```\n\nRelease builds for Android are signed via environment variables — see the `AndroidSigningStorePass` / `AndroidSigningKeyPass` block in `PrayerApp/PrayerApp.csproj`.\n\n## Project layout\n\n```\nPrayerApp/              Main app (MAUI)\n  Models/               Active Record models (SQLite-backed)\n  Services/             Singletons: DBService, PrayerService, etc.\n  ViewModels/           MVVM layer (CommunityToolkit.Mvvm)\n  Views/                XAML pages + code-behind\n  Resources/Styles/     Color tokens and named styles\n  Platforms/            Android- and iOS-specific code\nPrayerApp.Tests/        xUnit unit tests (links source files from main project)\nPrayerApp.UITests/      Appium-based UI tests\ndocs/                   Plans, research notes, screenshot runbooks\nscreenshots/            App store screenshots (phone + tablet, light + dark)\n```\n\nArchitecture, conventions, and known gotchas are documented in [ARCHITECTURE.md](ARCHITECTURE.md).\n\n## Contributing\n\nThis started as (and primarily remains) a personal project. Issues and pull requests are welcome, but I make no commitments on response time or scope. If you fork it for your own use, that's exactly what the GPL-3.0 license is for.\n\n- **Bug reports** and **feature requests** go through the [issue templates](https://github.com/kenmulford/PracticingPrayer/issues/new/choose) — they prompt for the details I need to act on them.\n- **Pull requests** — see [CONTRIBUTING.md](CONTRIBUTING.md) for branch conventions, test expectations, and labels.\n- **Personal questions** and **prayer stories** are better handled privately — email [practicingprayerapp@gmail.com](mailto:practicingprayerapp@gmail.com) instead of opening an issue.\n\n## License\n\n[GPL-3.0](LICENSE.txt) © Multithreaded LLC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenmulford%2Fpracticingprayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenmulford%2Fpracticingprayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenmulford%2Fpracticingprayer/lists"}