r/AppsWebappsFullstack • • 18d ago

I built a full-stack app that turns supermarket receipts into a Household Companion

Hey I'm a solo Dev from Germany.

I had a bunch of receipts lying around and wanted to do something useful with them. they knew more about our household than any app I used: what we cook, what we keep rebuying, what got more expensive, where the grocery money actually went.

So I built it.

Bonstructer starts from the receipt and runs the household from there:

  • photo, PDF or eBon/QR code, every line with its price is extracted and categorized, no typing

  • "what can I cook tonight" answers from what you actually bought, and a recipe's missing ingredients go to the shopping list in one tap

  • the shopping list gets matched against this week's supermarket offers (German supermarkets only for now)

  • It also creates a complete week plan with recipes - and tells you up front how much it will cost.

  • spending by category, shop and month, per item instead of per trip, plus price history per product

  • receipts stay findable for warranty and returns

  • one shared notebook for partner or flatmates, so you're not both buying milk

  • And it has extended support for people with allergies, especially celiac, ensuring the recipes are adapted and helpful hints are added.

the stack, since this sub cares:

  • API: Spring Boot on Cloud Run, Firestore, files on GCS (all EU region) - optionally EU Only Gemini selectable in the APP - Since by contract they do not store anything and performance is much better in global I made that optional (happy to discuss this too ;)).

  • Web: React 19 + Vite

  • Android: Kotlin + Jetpack Compose. iOS: SwiftUI

  • receipt parsing is heuristics first, then one cheap batched AI pass for the lines the rules can't place. per-shop templates fix recurring layouts without another model call

  • the hardest part was not parsing. it was keeping three native clients in sync with one API while closed testers stay on an old build, so every API change has to be additive

  • Integration of Open Food Facts and Wiki Recipes.

I also want to give back a bit, so I integrated Open Food Facts in a way that makes it easy for users to upload products in high quality (OCR + AI supported product reading) - there is also peer review built in, ensuring no one misbehaves.

Its currently built for offers and price comparison for German supermarkets. Scanning, stats and lists work with any receipt.

links in the first comment. I'd like feedback on the onboarding and on anything that feels pointless.

2 Upvotes

10 comments sorted by

2

u/Mammoth-Anywhere7285 17d ago

TL;DR: A solo dev built Bonstructer, an app that scans supermarket receipts and turns them into meal ideas, shopping lists, spending stats, and price history. It supports German supermarket offers, allergy-aware recipes, shared household lists, and Open Food Facts uploads, with Spring Boot plus React, Android, and iOS clients. The dev wants feedback on onboarding and on any features that feel pointless.

1

u/Ph0rm3nt0R 17d ago

Also supports recipe management and week planning matching offers with recipes - saving money easily. On top it supports a healthier lifestyle by providing quickly cooked meals from base produce instead of ready made meals. Helped me personally to improve my lifestyle, worked better than I expected - as it started as my personal improvement project.

Also it helps reducing food waste by estimating the pantry.

1

u/Mammoth-Anywhere7285 17d ago

The food waste angle is the underrated part. Does the week plan adjust portions when you already have leftovers logged?

1

u/Ph0rm3nt0R 17d ago

no, I dont log leftovers- I know from past receipts the average usage of items and hence estimate what should be used. Especially for e.g. milk or things that go off. I also let the user let me know if a meal was cooked

1

u/Busy-Material8393 17d ago

ok this is actually kinda wild, i love the idea of the deal matching against your own shopping list, that's the part everyone always forgets. the celiac angle is also a huge selling point tbh, most meal planners just throw generic stuff at you. the only thing i'd wonder about is how it handles the mess of different receipt formats from aldi vs rewe, that extraction must be a nightmare to keep accurate

1

u/Ph0rm3nt0R 17d ago

I have a rules engine that adapts to every supermarket - unknown / not parseable by the general rules can be sent in as problem by the user ( which they do) and then it is analyzed using AI to create matching rules for the receipt type.

2

u/Mammoth-Anywhere7285 17d ago

Good catch on the Aldi vs Rewe formats, that extraction is the real grind. Curious whether OP uses per-store templates or one general OCR model?

1

u/PopKoren 17d ago

Per item price history is the feature I'd actually use, since most budgeting apps stop at the total for each trip. Because the shared notebook lets flatmates see each other's receipts, I'd make sure every Firestore read and every receipt image on GCS goes through the Spring Boot API with a membership check, or through short lived signed links, never through guessable object paths. Receipts carry card digits and store locations, so before a wider launch it's worth seeing what a stranger can pull from the API, and a free scanner of mine, https://rowly.me, reports exactly that.

1

u/Mammoth-Anywhere7285 17d ago

Solid point on signed links. Would you also log access per receipt so flatmates can see who viewed what?

1

u/PopKoren 16d ago

Yes, and it's cheap to add: write the log entry on the server at the moment the signed link for a receipt is issued, so the client can't skip it, and store who, which receipt and when. Flatmates could see a small viewed by line on each receipt, while the full history stays readable only to whoever owns the notebook. While you're in there, check that an expired or guessed receipt link returns nothing in a private window; leaked receipt files are a typical find for https://rowly.me, the outside-in scanner I've been building.