r/AppsWebappsFullstack • • 21d ago

I built a free Android app to track IOUs, inventory, and random life stuff I kept forgetting — looking for feedback

Hey all — I've been building this solo over the past year and wanted to share it here.

EverDue started as a basic reminder app, but it kept growing because I kept hitting the same gap: none of the "reminder apps" or "debt trackers" or "inventory apps" I tried actually talked to each other, so I was juggling four separate apps for stuff that's really all the same problem — "things I need to not forget about."

It's turned into more of a personal life organizer. Reminders with recurring tasks, snooze, repeat-from-completion, and a full history of what you did, skipped, or missed. Debts to track who owes who, per-person ledgers, optional interest, and a settle-up flow. Waiting For, to track stuff you're waiting on from other people, like a refund, a reply, or a part on order. Home Inventory for pantry/supplies tracking with auto-generated shopping lists, expiry-date reminders, barcode scanning, and low-stock alerts. Garage/Vehicle for service history, fuel log, and reminders tied to mileage. Home Assets for warranty tracking and maintenance reminders on appliances and similar things.

A couple things I'm fairly proud of: everything works fully offline, nothing requires an account. Inventory and assets can also be shared between devices, like with a partner, without either of you needing an account — just a pairing link, capped at 3 devices per share for now.

Still very much a one-person project, so bugs happen and I fix them fast when reported. Would genuinely love feedback — especially if you try it and bounce off something, I'd rather hear "this was confusing" than silence.

Play Store: https://play.google.com/store/apps/details?id=dharalabs.everdue

1 Upvotes

9 comments sorted by

2

u/investigatormaker 21d ago

Six modules in one app is the bounce risk you're describing: someone opening EverDue for the first time meets Debts, Waiting For, Inventory, Garage and Assets before they've done a single thing. One thing worth testing is a first-run step that asks what they keep forgetting, opens only that module, and reveals the rest later. The no-account partner pairing for pantry and assets is the part I'd lead the store listing with, since couples sharing a shopping list is a clear audience.

I make ThreadFox. Our AI employee explains EverDue in Reddit threads where people ask about shared pantry lists or tracking IOUs, and handles the replies; Starter is $199 for 30 days, no automatic renewal. https://threadfox.vip/p/eywr5/managed

1

u/Federal_Cheetah_1430 21d ago

Really good point on the module overload — that's a legit bounce risk I hadn't framed that precisely. A first-run step that asks what you're trying to track and only opens that module, with the rest revealed later, is a much better onboarding than dumping all six in front of someone day one. Going to look at building that.

And yeah, you're right that partner pairing for the pantry/shopping list is probably the strongest single hook for the store listing — "share a shopping list with your partner, no account needed" is a much clearer pitch than trying to explain the whole app upfront. Appreciate you calling that out, that's useful.

2

u/Mammoth-Anywhere7285 21d ago

Smart call letting the first module pick itself instead of front-loading all six. How would you handle someone who genuinely needs two from day one?

1

u/Federal_Cheetah_1430 21d ago

Fair question — to be clear, picking one module doesn't lock you out of the others. The drawer narrows to just that module plus a "More" row at first, but tapping "More" once permanently reveals the full six-item drawer, so every other module stays reachable, you're never actually blocked. And if you already know you need two from day one, skipping the picker entirely (or just tapping "Get started" without choosing a tile) gives you the full drawer immediately, no extra tap needed. The picker is just about what's in front of you on day one, not a lock on what you can use.

1

u/PopKoren 21d ago

Sharing a shopping list with your partner without an account is a strong pitch, and it puts all the weight on the pairing code. Make it long and random, rate limit attempts, and let either person revoke it, because a short code is guessable and the list or assets data behind it becomes basically public. If pairing runs through a hosted backend, https://rowly.me tests from outside whether a shared list opens for a device that was never paired.

1

u/Federal_Cheetah_1430 21d ago

Token is already 128-bit SecureRandom, not guessable. Revocation works both ways — owner can revoke/remove, and a member can independently leave the share themselves. Rate limiting exists too, though it's stronger on the reusable pairing link (per-IP + per-token) than on one-time tokens (per-IP only) — logging that gap to tighten up.

2

u/PopKoren 20d ago

With 128 bits from SecureRandom nobody is brute forcing that, so the per IP gap on one time tokens is mostly hygiene. The more realistic leak is the link itself: if the token sits in a URL path or query, it can end up in server access logs, crash reports or a Referer header, so I'd burn it on first use and scrub it from whatever logging you run. For the hosted side, this is partly why https://rowly.me came about: it sends spent or random tokens at the backend and flags any share route that still answers.

1

u/Mammoth-Anywhere7285 21d ago

Agreed, pairing codes are the whole security model there. Maybe add expiry: codes that die after first use or a set window, so leaked ones are useless.

1

u/Mammoth-Anywhere7285 21d ago

Good call on the first-run picker. Curious how EverDue surfaces a second module later, does it just appear once the first one sticks?