Inspiration
My uncle runs a kirana (neighborhood grocery) shop. During customer rushes he scribbles sales on a paper notepad, then spends late evenings after closing typing them into Excel. Often he only finds out an item is finished when a customer asks for it. I wanted a tool that works at counter speed and replaces the notepad.
What it does
Sopko is a mobile-first stock and sales tracker for small shops.
- Stock out: tap an item, set the quantity, tap Sell. Stock drops immediately and today's total updates.
- Oversell protection: the quantity can't go above what's in stock, and the app says "Only N left in stock".
- Stock in: log arriving goods with quantity and cost, or add a brand-new item.
- Low-stock and out-of-stock badges show what needs restocking at a glance.
- One-tap CSV exports (sales, stock in, current stock) open cleanly in Excel or Google Sheets and double as a backup.
- A sample data button loads a realistic kirana inventory for a quick demo.
It works with no server and no login. Data stays in the browser.
How we built it
I built it with the Devpost Learn skill pack in Antigravity. Instead of asking for code first, I let the AI interview me and produced scope.md, prd.md and spec.md before any code was written. The app uses React and Vite, a single storage module that keeps all data in local Storage, and custom CSS design tokens for the look. I built it in four working slices and tested each one in the browser before moving on.
Challenges we ran into
- Setting up Node and PowerShell on a new Windows laptop (PATH and script-policy errors) took longer than expected.
- Making the sell sheet stop at the available stock and explain why.
- Fixing layout overflow on small phone screens (320 to 360px).
Accomplishments that we're proud of
- A complete working loop in a few days: receive goods, sell items, see low-stock warnings, and export the data.
- Keeping the scope small on purpose. I cut logins, a backend and barcode scanning so the core could be finished and tested.
- Designing for a real person at a busy counter: big tap targets, clear status badges and one-handed use.
What we learned
Planning first changed what I built. Deciding what to cut kept the first version small enough to finish. I also learned to check each slice myself in the browser instead of trusting the output, which is how I caught layout and wording problems early.
What's next for Sopko
Voice input with a confirmation step so a shopkeeper can say "Maggi 2" instead of tapping, a 7-day sales chart, and top-seller and slow-moving item alerts.
Log in or sign up for Devpost to join the conversation.