Inspiration
I built Zakah & Tazkiyah because calculating Zakah by hand is surprisingly error-prone. Live gold and silver rates change daily, local currencies fluctuate, and keeping track of business assets, cash, bank deposits, and outstanding debts can lead to massive calculation errors in a sacred obligation. Most generic calculators are basic web forms that don't verify rates or liabilities, leaving users unsure of their calculations.
I wanted a workflow where calculation precision, currency localization, and transparent math are at the center of the user experience.
What it does
Zakah & Tazkiyah is a premium mobile application designed to simplify Zakah tracking and calculations. It fetches real-time gold and silver prices from regional sources (like the Bangladesh Gold Association - BAJUS, and India Gold Association - IBJA) via a dedicated, caching backend. The app guides the user through a clean three-step stepper (Cash/Bank, Precious Metals, and Liabilities/Debts) to avoid overwhelming form entry.
When inputs are submitted, the app calculates Net Wealth, compares it dynamically against the active Nisab threshold (evaluating both gold and silver Nisab standards), and stores the calculation in a local database. Users can browse their history grouped by month and filter records using a custom calendar grid with range selector support.
How I built it
The application is built with Flutter and Dart, supporting cross-platform builds. The frontend uses the provider package for reactive state management and dynamic recalculation during form input. Local persistence is managed through a clean database service layer.
The backend is built as a serverless JavaScript application deployed on Cloudflare Workers. It scrapes live metal pricing from association portals, parses standard rates (such as Bhori to gram conversions), caches data using Cloudflare KV namespaces, and exposes a clean JSON API for the mobile app.
How I used Codex and GPT-5.6
Codex was my build partner throughout the project rather than a one-time code generator. I used GPT-5.6-powered Codex sessions to define the database schema, write the reactive calculation provider, implement the English and Bengali translations (using Flutter's localization framework), and build the Cloudflare Worker scraper.
One of the most valuable decisions from that collaboration was writing a custom date-filter grid calendar from scratch instead of importing a heavy external package. Codex helped write the grid index math and date-range highlighting logic, which kept the app bundle light and responsive.
Challenges
- Scraping unstable HTML structures: Gold rates are usually published on outdated, table-heavy sites that crash often. I had to build a robust scraper in the Cloudflare Worker with regex-based HTML parsing, mirror site overrides, and a stale-cache fallback system so that the client app never receives a blank response.
- Dynamic number formatting: Bengali uses a separate set of digits, so entering and validating values inside text fields required writing a custom text formatter extension that handles character-to-number mapping on the fly.
* Custom calendar architecture: Implementing a date range selector inside a custom-drawn calendar grid required meticulous index-matching and day-of-week offsets to draw active date spans properly.
Accomplishments
- Real-time gold and silver scraping with automated Bhori-to-gram conversions and Cloudflare KV caching.
- Reactive, dynamic calculation wizard with Gold and Silver Nisab toggles.
- Custom-drawn grid calendar for date range filtering with no third-party package dependency.
- Localized Bengali and English UI supporting system translation lookups.
* Clean project architecture separating local database persistence, UI view layers, and the scraping worker.
What I learned
Building Zakah & Tazkiyah taught me that religious and spiritual utility applications require high empathy. The interface must be completely transparent, clearly showing how every decimal of Zakat due is calculated, to build trust with the user.
What's next
The next phase adds multiple currency support (AED, SAR, USD), historical asset charts over several lunar years, automated reminder notifications based on the user's specific Haul date (completion of a lunar year), and secure cloud sync for cross-device backups.
Log in or sign up for Devpost to join the conversation.