I built an app for a shopkeeper who wanted a notebook
What my first "customer" taught me about startups, and why the code was the easy part.
Kabir Joshi11th Sample
21 Sept 2026 ยท 5 min read

Photo: Minh Nguyen ยท CC BY-SA 4.0 ยท via Wikimedia Commons
There is a small general store at the corner of my lane. The owner, whom I'll just call uncle, has known me since I was in nursery. Every month I go there to buy things for my mom, and every month he complains about the same thing: "Bhai, kabhi stock khatam ho jaata hai aur pata hi nahi chalta."
Which roughly means: he runs out of things and finds out only when a customer asks for them and he has to say no.
I was fourteen-going-fifteen, I had just learned enough Python to be dangerous, and I thought: I can fix this. This is the story of how I built something he didn't want, and what I learned from it.
The plan (the part I was proud of)
Here is what I imagined. A small app on a cheap phone. Uncle scans a barcode, the app subtracts one from the stock. When something goes below a limit, a notification pops up: "Order sugar." Maybe a nice dashboard with a graph. I even picked a name. (I'm not telling you the name. It was bad.)
I spent about three weekends on it. I built a database, a screen for adding items, a screen for selling items. I tested with my own fake data: 40 items, random quantities. It worked on my laptop. I was extremely pleased with myself.
The part where I finally spoke to him
Then I took it to uncle and showed him. He looked at it for around ninety seconds, very politely, and said: "Accha hai. Par mera register kahan jaayega?"
Which is: "Nice. But where does my register go?"
It turned out that:
- He did not have time to scan anything. When three customers are standing at the counter he just says the price from memory, takes the money, and keeps going.
- He did not have a barcode on most items, and half the items he sold were loose: rice, dal, sugar by weight.
- He trusted his notebook. He had been using one for twenty years. It had his own shorthand. His brother could read it, nobody else could.
- The problem was real, but it wasn't "I don't have software". The problem was "I don't have a moment in my day to look at what's finishing."
I had solved a problem he never described. I had built the thing I found interesting to build.
What I did next (and this is where it got useful)
I sat in his shop for two Saturday afternoons. Didn't touch my laptop. Just watched. I noticed that every evening around 8pm, when it got quiet, uncle flipped through the register and made a list of what to order, on the back of a bill, using his thumb and a pen.
So the actual problem was: a 10-minute task every evening, done from memory and a messy register. That's something I could help with, but not with a barcode scanner.
I made one tiny change. I asked him to write item name, current quantity, and "order when below" in a single page of the register once, a one-time setup. I typed it into a CSV file, and wrote a very small script that takes today's quantities and prints a shopping list.
import csv
with open("stock.csv") as f:
for row in csv.DictReader(f):
qty = int(row["qty"])
limit = int(row["reorder_at"])
if qty <= limit:
need = limit * 2 - qty
print(f'{row["item"]}: order about {need}')
That's it. Fifteen lines with the file handling. The rule "order enough to double the limit" was uncle's own thing, he said it out loud and I just wrote it down. Every evening he reads the quantities off his shelves (not the register, he said shelves don't lie), I type them in, and a printout comes out. He sticks it near the till.
He uses it three or four days a week. Not every day. I stopped being upset about that.
What this taught me about startups
I keep hearing the word "startup" in videos as if it means "a company with a cool app and investors". After uncle's shop I think the core of it is much smaller:
- Find a person with a real problem. Not a market. One person.
- Watch them do the task. Don't ask what they want. People describe solutions they've heard of, not the thing that actually bothers them.
- Build the smallest thing that removes one pain. My version removed his 10-minute evening struggle. Nothing else.
- Be ready for them to not use it the way you imagined. Uncle prefers the paper printout to any phone. Fine.
I think the most "startup" thing I did was the two Saturdays of sitting there doing nothing. Zero lines of code. That was the real work.
Honest confession
I did also think, for about one week, "what if I make this for ten shops and charge them โน200 a month?" Then I did the maths on how many shops I could visit while also doing class 11 and I stopped. Ten shops means ten registers, ten different handwritings, ten people who all want something slightly different. Software scales. Sitting in ten shops for two Saturdays each doesn't.
Which is maybe the actual hard part of business, and I'm not sure how companies solve it. I'd love to hear from anyone who has thought about it.
For now, uncle has a printout, I got a free packet of biscuits every time I come by, and my mom thinks I am wasting time on "that shop thing". I'm okay with that deal.
11 responses
Sign in to join the conversation.
[+][โ]Tushar PawarDropperSampleยท 28d ago
"Shelves don't lie" is the best requirements document I have ever read ๐
Real talk though, this is what hackathons never teach. We build for judges, not for an actual uncle with a register. Respect for sitting there for two Saturdays. Most devs skip that part.
[+][โ]Kabir Joshi11thSampleยท 28d agoAuthor
Hackathon me would have shipped the barcode thing and gotten a certificate. Shop me got biscuits. I think the biscuits win.
[+][โ]Dev Agarwal12thSampleยท 28d ago
Bro I felt this in my bones, my family's shop has the exact same register issue. One thing: the "scale" problem you mention is real. Companies that do this usually don't visit every shop in person. They find the 80% of things that every shop shares (the reorder rule, the evening list) and make that part standard, then let each shop adjust a bit. The first ten shops you do by hand, though. That's normal.
[+][โ]Kabir Joshi11thSampleยท 28d agoAuthor
okay that makes sense. so the first ten are manual and ugly on purpose and you learn what is common. Noted.
[+][โ]Arjun Nair12thSampleยท 28d ago
Small technical note:
limit * 2 - qtyassumes the person actually reads the shelf correctly and that "double the limit" makes sense for every item. For things with a shelf life like milk or bread, it would overorder. Maybe a per-item "usual order" column would be safer. Not a criticism, the project is lovely, just thinking out loud.[+][โ]Kabir Joshi11thSampleยท 28d agoAuthor
Yes!! uncle actually told me this about bread last week. Added a column called
usual. Milk and bread now use that number instead of the doubling rule.
[+][โ]Vivek Mishra12thSampleยท 27d ago
My neighbour also has a small electronics repair stall and he writes everything in a diary. I didn't think about helping him till I read this. Maybe I will just sit near him one Sunday and watch how he works first. Thank you for writing this simply.
[+][โ]Rohan Sharma11thSampleยท 27d ago
the biscuits arc is the real plot twist ๐ช
[+][โ]Aarav Kulkarni11thSampleยท 27d ago
I like that you didn't make it sound like a huge success. Printout used 3-4 days a week is more believable than "he loves it now". Also made me realise I'd have built the barcode version too.
[+][โ]Kabir Joshi11thSampleยท 27d agoAuthor
same, aarav. Barcode version was more fun to build, that's the trap.
[+][โ]Ishaan Bose11thSampleยท 26d ago
Ok I'm not a coding person at all but this is the first startup thing I've read that made sense to me. Usually it's all "disrupt" and "scale" and I zone out.





