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.
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 consultationRelated Case Studies
Arabic Abjad calculator
Arabic Abjad calculator Android app with 850K+ downloads and a 4.75-star rating across 13 years. Free, ad-free, closing in on a million downloads.
Read Case Study → Mobile ApplicationsPrayer times app
Prayer times Android app for 105K+ Dawoodi Bohra members. Offline calculations, custom Hijri calendar, and reliable notifications. Free and ad-free.
Read Case Study → Mobile ApplicationsPlanetary timing app
Planetary hours Android app with 443K+ downloads, based on Ikhwan-us-Safaa teachings. Precise astronomical calculations and automatic GPS detection.
Read Case Study →