An ad-supported web product makes most of its money by tracking usersʼ behavior — what they read, where they go, how long they stay — and selling that information to third parties. On most websites this is a tradeoff users tolerate.
On a worship tool, the data you generate is sensitive in a specific way:
- Where you pray — your location, frequently and reliably.
- When you pray — your daily routine.
- What you recite — sometimes which Quran pages or which duas you read.
Aggregated, this paints a religious behaviour profile. We donʼt want any third party — advertiser, analytics vendor, or ourselves — to hold it.
What this looks like in QiblaWeb code
- Geolocation, compass, and zakat calculations all run in your browser. Your data never reaches our server.
- D1 (our database) has zero visitor tables — no sessions, no preferences, no behaviour log. Adding one would require a spec amendment.
- CI scanner fails the build if any analytics SDK appears (Google Analytics, Meta Pixel, Hotjar, Clarity, PostHog, Mixpanel, etc.).
- Cookies: zero, unless strictly required for a future opt-in feature, and documented if so.
- Donation flow redirects to Stripe-hosted pages. Card data and donor identity stay with Stripe.
How can a free site pay for itself?
Voluntary donations through Stripe. You will see one polite donation block on the donate page; we will never put donation popups in your daily prayer flow.
Source
Permission and tracking patterns from web.dev permissions best practices (retrieved 2026-05-09).