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

  1. Geolocation, compass, and zakat calculations all run in your browser. Your data never reaches our server.
  2. D1 (our database) has zero visitor tables — no sessions, no preferences, no behaviour log. Adding one would require a spec amendment.
  3. CI scanner fails the build if any analytics SDK appears (Google Analytics, Meta Pixel, Hotjar, Clarity, PostHog, Mixpanel, etc.).
  4. Cookies: zero, unless strictly required for a future opt-in feature, and documented if so.
  5. 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).