Inspiration
Every day when visiting local shops, I noticed customers asking shopkeepers to write down their daily purchases in physical paper notebooks (khata) as udhar (credit). Watching this sparked a question: what happens if that notebook gets lost, the pages tear, or liquid spills on it? All those transaction records and hard-earned money would be gone in an instant. I built Udhar Kitab to replace risky paper logs with a simple, reliable digital ledger.
What it does
Udhar Kitab (उधार किताब) is a digital credit book for small shopkeepers in India. It replaces the paper udhar khata with an app that works the way shopkeepers already think.
- Tracks credit and payments: add entries, record partial or full settlements, and see a running balance for every customer.
- Flags overdue payments: a home-screen banner and per-customer indicators show who is late, and the due date can be changed in one tap.
- Works offline: all data lives on the phone first, so the app is fully usable with no signal.
- Backs up to the cloud (optional): shopkeepers can turn on Google Sign-In and cloud sync to restore their book on a new phone, so a lost phone no longer means lost records.
- Speaks Hindi and English: the whole app is bilingual, with locale-aware dates and numbers.
- Sends reminders: one-tap WhatsApp messages (no due date, due today, overdue) or a direct phone call. The app never sends anything on the shopkeeper's behalf.
- Shows analytics: outstanding totals, period-over-period comparison, monthly history, and a top-debtors list.
- Offers a 90-day free trial and Udhar Kitab Pro, a custom paywall built on RevenueCat subscriptions.
How we built it
- App: React Native 0.81 and React 19 with Expo (SDK 54) and Expo Router for file-based navigation.
- Local storage:
expo-sqliteis the single source of truth for every read and write. - Cloud and auth: Firebase Auth (Google Sign-In) and Firestore, used as a one-way, best-effort mirror of the local data.
- Subscriptions: RevenueCat (
react-native-purchases) powers a fully custom paywall. It handles purchase, restore, and theudhar_kitab_premiumentitlement check, all wrapped in a central SubscriptionContext. - Language: a context-driven i18n layer with English and Hindi translation tables and a persisted language choice.
- Motion and UI:
react-native-reanimatedfor smooth, tactile interactions. - Builds: EAS Build for Android APKs.
Challenges we ran into
- Offline-first without breaking the user's data: cloud sync had to be best-effort so that a failed network call never blocks or corrupts a local write.
- Making the free trial reinstall-proof: the 90-day trial is written to both Firestore and local SQLite, so it survives offline periods and reinstalls once the account is re-linked.
- Native modules vs. Expo Go: Google Sign-In and RevenueCat don't run in plain Expo Go, so development needed dev-client builds.
- Designing for a first-time app user: keeping the interface simple and fully Hindi-friendly, so someone who has never used a business app can pick it up quickly.
- Building a custom paywall: wiring purchase, restore, and entitlement state into a screen that fits the app's design, instead of using a hosted template.
Accomplishments that we're proud of
- A complete, working credit-book app that a shopkeeper can install and use today, with no signal needed.
- True Hindi/English support across the whole app, not just translated labels.
- Cloud backup that is opt-in and never touches the offline experience.
- A polished custom paywall with working purchase and restore flows through RevenueCat.
- An APK anyone can sideload, plus an open-source codebase with a full README and privacy policy.
What we learned
- Offline-first design changes how you structure everything. Treating local storage as the source of truth and the cloud as a mirror kept the app simple and reliable.
- Localization goes beyond translation: dates, numbers, and tone all matter for real users.
- Managing subscription state in one place (a single context around RevenueCat) makes entitlement checks much easier to reason about.
- Building for users who are not tech-savvy means fewer screens, clearer wording, and fewer decisions.
What's next for Udhar Kitab
- Customer Center integration for in-app subscription management.
- Export ledgers to PDF and CSV.
- Scheduled reminders, beyond manual WhatsApp and call nudges.
- More regional languages, so shopkeepers across India can use it in their own language.


Log in or sign up for Devpost to join the conversation.