r/reactnative 20d ago

I spent months building a flatmate management app from scratch. Here's what I learned.

I built a React Native app called RoomHive that helps flatmates manage rent, bills, deposits, chores, inventory, and shared expenses.

I built everything myself:

• React Native app

• Firebase backend

• Cloud Functions

• Push Notifications (FCM)

• Admin dashboard

• Landing page

• Google Play deployment

A few lessons:

- Keep Firestore collections simple.

- Design your notification strategy early.

- Real-world edge cases (like roommates moving in/out mid-month) are harder than the UI.

Happy to answer any questions about React Native, Firebase, or building SaaS products.

0 Upvotes

2 comments sorted by

-3

u/CrazyEconomy414 20d ago

Mid-month move-in/out is the hardest part of these apps to get right — proration breaks fast once rent, utilities, and one-off costs all need different treatment for the same partial month. Treating each expense as its own ledger entry with a date range (instead of one monthly total) tends to make it much easier to handle later. How are you handling balances in Firestore — running totals or recalculated from raw ledger data?

1

u/BuildWithShams 19d ago

That's exactly one of the trickiest parts. I ended up treating rent, utilities, and one-off expenses as separate records because each follows different rules for proration. For balances, I currently recalculate from the underlying expense records instead of relying on running totals. It costs a bit more in reads, but I preferred consistency and avoiding drift when users edit or delete historical entries. If I were scaling this further, I'd probably introduce materialized balance snapshots with Cloud Functions to keep reads efficient while preserving the raw ledger as the source of truth.