Logo

ListiMate

The Smartest mobile app to Organize Your Grocery List. No more duplicates, lost lists, or unorganized shopping.

TypeScript
ListiMate

#Why I Built ListiMate

A few months ago, I found myself in the grocery aisle, wrestling with Google Keep. My shopping list—bread, toast, tomatoes—was spiraling into chaos. Every time I "refilled" tomatoes, Google Keep cheerfully added a brand-new entry instead of re-opening the old one. Before long, I had two, then three "tomatoes" cluttering my list. By the time I found the lone unchecked tomato, I almost forgot why I was there. 🥲

I tried minimalist apps, beauty-over-function to-dos, offline-only, and all that jazz. Nothing felt just right:

  • Too many features? Overkill.
  • Not cross-platform? Useless when I switch phones.
  • Uglier than my handwriting? No thanks.

So I did what any sane developer would do: I built my own grocery-list app.

#The Tech Behind the Scenes

ListiMate is a React Native + Expo app written in TypeScript. Here's the quick rundown:

  1. Expo: Accelerates development with built-in camera, and file-pickers,.
  2. Supabase: Our real-time Postgres-based backend—perfect for syncing lists across devices without wrestling with Firebase's pricing quirks.
  3. Legend-State: A lightweight state manager to keep UI snappy and memory usage low.
  4. Offline-First: We cache your lists locally with SQLite; changes sync automatically when you're back online.
  5. Secure Sharing: Generates one-time tokens (2-hour expiration) so you never leak your groceries to random internet strangers.

Putting it all together took about two months of late nights, coffee, and more than a few moments of "What did I get myself into?" But the result is a grocery-list that finally behaves like you'd expect.

#My Development Journey

Day 1: I'll just fix that duplicate-check bug in Google Keep.
Day 7: Why am I writing a custom drag-and-drop ordering system?
Day 21: Expo updates have saved my life.
Day 45: Supabase real-time sync is magical.
Day 60: I can't believe I shipped.

Something that i learned along the way is that it doesn't matter how good your idea is it, if you do not ship it, it is not worth anything. People have to know about your idea. It isn't like once you click publish, 10K will sign up for your app. Nope. you have to ship, find bugs, get bad reviews (if you even ask from the beginning), and then you can start to improve your app and get more users.

I have made an automated script to upload media that advertises for the app on instagram TikTok and Facebook. I got more than 15K views on each channel in every week and the number is growing.

#Key Features (AKA The "Ad" Spot 😉)

After all that elbow grease, ListiMate comes packed with:

  • Smart List Behavior : When you uncheck an item, it jumps right back to the top—no more endless scrolling.

  • No Duplicates : Try to add "milk" twice? The app politely stops you (you can still add it if you want). Your list stays tidy.

  • Minimalist, Distraction-Free UI : Clean design, zero clutter—just your items and your checklist.

  • Cross-Device Sync & Offline-Friendly : Android, and iOS, whatever you use, your list is there. Offline? Changes queue and sync later.

  • Secure Shareable Lists : Share with family or roommates via a one-time link that expires in 2 hours. No more random guests.

  • Drag-and-Drop Reordering : Keep your staples—bread, eggs, coffee—at the very top with a simple hold-and-move gesture.

  • Light & Dark Mode : Because grocery shopping at midnight deserves a dark theme.

  • Move Items Between Lists : Accidentally added "screws" to your grocery list? Slide it over to your DIY list in one swipe.

  • No Forced Sign-Up : Open the app and start listing. Only sign in when you want to share or back up.

  • Full Account Control : Delete your account (and data) in one tap—no hoops to jump through.

#What's Next?

  • Recurring Items: Imagine "Milk" auto-reappearing every week. 🍶
  • Smart Suggestions: "You bought eggs three weeks ago—need more?"
  • Voice Input: "Hey ListiMate, add avocados." 🥑

#Final Thoughts

Building ListiMate scratched the itch I had for a grocery list that just "gets it." It taught me more about real-time sync, offline-first design, and user-centric UI than any tutorial could. I hope you find it as liberating as I do. No more duplicate "tomatoes," just smooth, organized shopping—one ding per item.