A React Native mobile application built with Expo for Seventh-day Adventist church community features.
For latest production build, you may install app directly from browser
https://codesammich.github.io/sda-church-app/
on Safari (iOS) or Chrome (Android).
- Technical Setup & Testing
- Known Bugs
- UI/UX Design
- Feature Designs
- Contributing Code
- Branding & Trademarks
Guiding our design philosophy in decreasing order of priority.
The app must be cost-effective, preferably free to maintain, and support both iOS and Android. We prioritize the Progressive Web App (PWA) workflow to ensure long-term viability, zero distribution fees, and instant updates without the gatekeeping or technical debt of traditional App Stores.
"For which of you, wanting to build a tower, does not first sit down and calculate the cost to see if he has enough to complete it?" — Luke 14:28
We proactively mitigate privacy and legal risks (e.g., CCPA, GDPR), even if the tradeoff results in fewer functional features. Protecting the congregation is a non-negotiable constraint; our volunteers should not be exposed to complex data liabilities or external legal vulnerabilities.
"Behold, I am sending you out like sheep among wolves. Therefore be as shrewd as snakes and as innocent as doves." — Matthew 10:16
We prioritize total anonymity, treating the digital experience as a secure refuge. While we use aggregate data to help leadership make Informed Decisions about community needs, we strictly reject the collection or storage of Personally Identifiable Information (PII). A church is a "third space" and a final refuge; our technology must be a shade from the heat, not a source of surveillance.
"For You have been a refuge for the poor, a stronghold for the needy in distress, a refuge from the storm, a shade from the heat." — Isaiah 25:4
Every feature must serve the goal of promoting in-person fellowship. Digital tools—such as event sign-ups or notifications—are high-value only if they make it easier for a member to show up to a physical gathering. We facilitate connection without requiring or compromising Personally Identifiable Information (PII).
"And let us consider how to spur one another on to love and good deeds. Let us not neglect meeting together, as some have made a habit, but let us encourage one another..." — Hebrews 10:24-25
We use simple design philosophies to ensure elderly and non-technical stakeholders can navigate with ease. If a feature is too complex for a casual user to understand in seconds, it must be simplified or removed.
"...You have hidden these things from the wise and learned, and revealed them to little children." — Matthew 11:25
Centralization lowers barriers for daily devotion. By unifying the Bible, hymnal, and community updates into one frictionless interface, we support the spiritual growth of seekers and long-time members alike.
"But his delight is in the law of the LORD, and on His law he meditates day and night." — Psalm 1:2
The app is a Digital Home that protects users from "doomscrolling" and external algorithms. While we leverage infrastructure like YouTube or Spotify, the user experience remains internal to maintain spiritual focus.
"Finally, brothers, whatever is true, whatever is honorable, whatever is right, whatever is pure, whatever is lovely, whatever is admirable—if anything is excellent or praiseworthy—think on these things." — Philippians 4:8
The Bible reader uses two separate content services with different roles:
- HelloAO supplies the English reader text and the shared translated-edition book catalog.
- fetch(bible) supplies the Chinese Union Version, Reina-Valera 1909, and the original-language critical editions shown in the verse-detail popup. Its normalized Chinese and Spanish resources expose the source editions' translation footnotes directly.
The translated fetch(bible) resources are the public-domain cmn_cut (traditional
CUV), cmn_cus (simplified CUV), and spa_rv (Reina-Valera 1909) editions.
fetch(bible) provides an open CDN with no API key, usage fee, request quota, or provider-imposed caching limit. That permission applies to access to the fetch(bible) service; it does not erase or replace the license of each work distributed through the service. fetch(bible explicitly states that consumers must follow the terms of each individual Bible resource. See its official access and licensing explanation.
The app currently requests these open critical editions:
| Testament | fetch(bible) ID | Edition | License and source |
|---|---|---|---|
| Old Testament | hbo_sr |
Solid Rock Hebrew Bible | CC BY 4.0; Stephen L. Brown, editor |
| New Testament | grc_sr |
Statistical Restoration Greek New Testament | CC BY 4.0; Alan Bunning / Center for New Testament Restoration |
CC BY 4.0 is an open and free license. It permits copying, redistribution, adaptation, and commercial use without a fee or separate permission. It is not condition-free and it is not the same as a public-domain dedication. Users of the material must:
- give appropriate credit to the creator and designated attribution parties;
- link to the CC BY 4.0 license;
- indicate whether the material was changed; and
- avoid imposing legal or technological restrictions that prevent recipients from exercising the rights granted by the license.
The app preserves an edition-and-editor attribution in the verse-detail popup.
For display, BibleService.fetchOriginalLanguageVerse omits the separate note
objects in fetch(bible's plain-text payload and collapses source layout
whitespace; the returned biblical character strings and textual sigla are
otherwise displayed as provided. This formatting disclosure, the attribution,
the edition source links above, and the CC BY 4.0 link must be retained. Any
future replacement of either edition requires a fresh review of that resource's
individual license; fetch(bible's free service access alone is not sufficient
evidence that a replacement work may be redistributed.
The licenses for the bundled Greek and Hebrew fonts are separate from the licenses for the biblical text. Font sources and exact terms are documented in assets/fonts/README.md.
The installed Android PWA uses "display": "fullscreen" in its web app manifest. On
some Android and Chrome combinations, the app launches in its fullscreen window but does
not immediately hide the Android status and navigation bars. Pulling down the notification
shade and closing it causes Android and Chrome to recalculate the window insets and restore
the expected immersive fullscreen state.
User workaround: Swipe down from the top of the screen to open notifications, then swipe back up to close them. The Home screen displays an Android-only reminder once per fresh app session.
The web app cannot perform the equivalent operation itself. A standard PWA runs inside the
browser security sandbox and has no access to the Android Window,
WindowInsetsController, or WindowInsetsControllerCompat APIs used by native apps to
hide system bars. The browser Fullscreen API is a separate web capability: it generally
requires a transient user interaction and does not provide direct control over the native
Android activity's system-bar flags. CSS viewport changes, forced reflows, and page reloads
also cannot reliably reproduce an operating-system notification-shade transition.
A native Android or hybrid wrapper could explicitly call
WindowInsetsControllerCompat.hide(WindowInsetsCompat.Type.systemBars()) when its window
regains focus. This project currently prioritizes the cross-platform, browser-installable
PWA workflow, so it uses the user-facing workaround instead.
References:
- Chromium fullscreen PWA issue
- Fullscreen API security requirements
- Android immersive-mode system-bar API
iOS and iPadOS do not support the web app manifest's "display": "fullscreen" mode.
When this PWA is installed from Safari, the operating system falls back to a standalone
app window. The iOS status area, Home indicator, and system gestures remain controlled by
the operating system and a PWA cannot hide them permanently.
Apple-specific metadata can adjust the appearance of the status area or allow content to extend behind it, but it does not provide the Android-style immersive fullscreen behavior. This is a platform limitation rather than an application bug, and there is no notification- shade workaround on iOS.
Reference: PWA fullscreen platform support
The source code in this repository is licensed under an open-source license, but this software license does not grant any rights or permissions to use the proprietary branding, registered trademarks, or official logos contained within the project.
Unauthorized use of the Seventh-day Adventist® (SDA) Church symbol and related branding is strictly prohibited.
Please refer to the Full Branding Policy for detailed usage permissions and restrictions.
This application values your privacy. We do not host, store, or manage any personal identifiable information on our own servers. This section outlines how third-party services handle data to keep the application functional.
This web application is deployed using GitHub Pages. GitHub may collect basic server logs and IP addresses for security, debugging, and operational maintenance.
We use Cloudflare to manage domain traffic and protect the application from common web threats. Cloudflare may process basic connection data (such as IP addresses) to identify malicious traffic and optimize performance. No user-level activity within the app is tracked by this service.
This application provides links to external platforms, such as YouTube, Spotify, and HymnsForWorship.org. When you interact with these links, you are subject to the privacy policies of those third-party providers. These services may collect data (such as IP addresses) as part of their standard operations. We do not have access to, nor do we store, any data collected by these external platforms.
This app links to HymnsForWorship.org for hymn resources. Please be aware that some hymns are copyrighted. When you follow these links, you are subject to HymnsForWorship.org’s terms and conditions. You may be prompted to accept their terms before viewing certain content. Please respect copyright laws and do not attempt to bypass these requirements.
This application provides access to non-copyrightable metadata (hymn titles and index numbers) to facilitate navigation. We do not host or reproduce protected musical notation or lyrics. All external content is accessed through direct links to authorized third-party providers.
This application provides links to external platforms and third-party services (e.g., YouTube, Spotify, HymnsForWorship.org) to assist users in locating musical performances, recordings, or sheet music. Please note that these are external platforms, and your use of them is subject to their respective terms and conditions. We do not host, curate, or endorse the specific content or search results returned by these services. Users are responsible for ensuring that their playback or usage of such content complies with their local copyright and performance licensing requirements; linking to these services does not constitute legal authorization for public performance.