Skip to content

Project Chandra — Panchanga App

A Hindu almanac where the sky on screen follows the calendar — in five languages, on iOS, Android and the home screen.

A Panchanga is the traditional daily almanac — tithi, nakshatra, yoga, karana, auspicious windows and observances. Project Chandra rebuilt an institution's official Panchanga as a native-feeling app in five languages, with a living sky, a shader-rendered Moon and home-screen widgets, on top of an editorial system the institution's scholars control.

Where the complexity lives

The almanac itself is authored by the institution's scholars, and the app never second-guesses them. The engineering is everything around that data — time, rendering, language and editorial trust.

A day that starts at sunrise

Challenge

A Panchanga day runs from one sunrise to the next, not midnight to midnight. A phone's calendar, notifications and widgets all assume the opposite.

Solution

A tested day-boundary engine decides which almanac record is live, schedules the next refresh at the exact sunrise, and drives the same switch-over in the iOS WidgetKit and Android widgets — including an alarm-based scheduler on Android.

A Moon drawn on the GPU

Challenge

The API sends almanac facts as text — it has no idea what the sky looks like.

Solution

The app parses tithi and paksha into a phase and illumination value, then renders the Moon with a custom GLSL fragment shader — phase terminator, halo and earthshine. The same values tint a sky backdrop that moves through eight moments of the day, shaded by season.

Five languages, four Indic scripts

Challenge

Translating the interface is the easy part. The almanac values themselves — nakshatra, yoga, karana, masa names — arrive in English and must read naturally in every script.

Solution

A dedicated value-localisation layer maps almanac terms into Kannada, Telugu, Tamil and Hindi, with bundled Noto typefaces per script, locale-aware dates and a test that keeps every language in step.

An editorial pipeline scholars can trust

Challenge

A year of almanac data arrives as a spreadsheet. One wrong row means a whole community observes a fast on the wrong day.

Solution

A staged import wizard maps, validates and flags duplicate dates before anything is saved. Every change moves Draft → Preview → Publish with revisions, an audit log and roll-back by import batch, and observance calendars are cross-checked against the printed almanac.

5Languages, switchable live
30Tithis in the lunar journey
17Almanac elements explained in-app
4Native targets · 2 apps, 2 widget sets
Flutter Riverpod GLSL Shaders SwiftUI WidgetKit Kotlin Widgets Push Notifications Offline Cache PHP CMS & API MySQL Indic Typography

Part of the digital ecosystem we build and run for a major religious institution.

← All work

Need something similar? Let's talk.

Booking systems, ERPs, dashboards — if your bottleneck looks anything like this one, the first conversation is free.

Book a free project consultation