Web App

Bohra Calendar: 225+ Fatemi events in a Hijri PWA

Free, open-source PWA with 225+ Fatemi events and accurate Hijri date conversion. Built for the Dawoodi Bohra community. Works offline on every device.

Industry:
Religious / Community
Project Type:
Progressive Web App
Duration:
Ongoing
Location:
Worldwide
Published:
Outcome
225+
Fatemi events
Full
Offline support
1000+
Hijri years
0
Ads

The Origin Story

Bohra Calendar grew out of the Namaz Awqaat Android app, which had a basic Hijri calendar and Fatemi events. Users wanted that experience on every device, not just Android. Instead of building another native app, I went with a Progressive Web App on React 19. The goal was simple: the most thorough Fatemi event listing online, in a fast, offline-capable calendar that works in any browser. The app launched at bohracalendar.com and serves the global Dawoodi Bohra community.

Building for the community

"The best tools are the ones people can reach without a barrier. No app store, no downloads, no platform restrictions. Open the browser and it works."

The Challenge

The Dawoodi Bohra community needed a single place for their Hijri calendar and Fatemi events. Most Islamic calendar apps cover the basics but miss community-specific occasions. The Fatemi events in my Namaz Awqaat Android app worked, but only Android users could see them.

Critical Pain Points

  • Fatemi event data was locked inside an Android-only app, leaving iOS, desktop, and other users without access
  • No public Islamic calendar app covers the full Dawoodi Bohra event listing
  • Hijri-to-Gregorian conversion needs algorithmic precision with a 30-year leap cycle
  • Dynamic events like Akhri Jumoa change every year and can't be hardcoded
  • Offline access matters for users in low-connectivity areas
  • Sunrise and sunset times need to be local, without depending on an external API for the math

The community deserved one source for Fatemi occasions that works on any device, loads instantly, and doesn't need a network connection.

The Solution

A Progressive Web App built with React 19 and TypeScript. Installable, offline-capable, accurate, and reachable from any browser.

Hijri calendar engine

The Kuwaiti tabular algorithm with a 30-year leap cycle handles bidirectional Hijri-Gregorian conversion. All date math goes through Julian Day for accuracy.

225+ curated Fatemi events

Eid, milad, urs, shahadat, wafaat, salgira, chehlum, ashura, takbira, rozu, miqaat, washek. Each event with location and priority metadata.

PWA with full offline support

Service worker with Workbox caching keeps the app working with no connection. Installable on any device, with auto-update checks every 15 minutes.

Local sun times

Geolocation detection with local sunrise and sunset calculations. City names come from BigDataCloud reverse geocoding, cached for 24 hours to avoid repeat calls.

Results & Business Impact

Most thorough Fatemi event listing online

225+ Fatemi events across all 12 Hijri months, covering eid, milad, urs, shahadat, wafaat, salgira, chehlum, ashura, takbira, rozu, miqaat, and washek occasions.

Works on every device, even offline

Installable on iOS, Android, and desktop. Full offline functionality means the app works wherever the user is, with or without a connection.

Sub-second performance

React 19 with Vite 7, route-based code splitting, inline CSS, and WebP images keep loads fast. Static assets cached for one year with immutable headers.

SEO-ready with 50+ crawlable pages

Dynamic meta tags, structured data, and an auto-generated sitemap make the app discoverable for users searching for Hijri dates and Fatemi events.

Lessons Learned

PWAs can replace native apps for content-driven use cases

For a calendar and event listing, a PWA gives the same installable, offline-capable experience as a native app without the friction of app store distribution. Users bookmark or install from the browser, and updates happen automatically.

Custom routing beats framework overhead for simple apps

Instead of pulling in React Router, a small custom router using History.pushState and popState kept the bundle small while supporting clean URLs like /calendar/rajab-1448.

Curated data is the product

The 225+ Fatemi events database took extensive research and community knowledge. No public API contained this data. The dataset itself is the differentiator.

Imagery creates connection

Month-specific background images in WebP, paired with Arabic typography in the AlFatemi font, turned a utilitarian calendar into something the community feels at home in.

Technologies Used

  • React 19
  • TypeScript
  • Vite 7
  • Tailwind CSS 4
  • Workbox PWA
  • Cloudflare Pages
  • Hijri Algorithm
  • Geolocation API

Need a web or mobile app?

If you're building something for a community or a niche audience, I've been doing this for over a decade. Let's talk about what it would take.

Book a consultation

Share this case study

Found this interesting? Share it with your network