PYTHON · STREAMLIT · SQLITE · LLM · Own product
Vinted TrackerVinted Tracker — Reselling Analytics & AI Sales Agent
I resell vintage, streetwear and shoes on Vinted. Spreadsheets stopped working once stock ran into the hundreds, so I built the tool I wanted: every item from purchase to sale, true profit after fees, and an agent that turns a handful of photos into a ready-to-list draft.
- 780+ automated tests, every page in both themes
- 194 orders tracked across 183 inventory items
- Local-first SQLite on disk, no data leaves the machine
- Value 194 Orders in the ledger
- Time Photo → draft Listing workflow
- Effort Solo Designed, built, used daily
- Quality 780+ Tests
- Step 01 One record per item, purchase to sale
- Step 02 Analytics that answer real questions
- Step 03 An assisted sales agent
- Gate Tested like production software
- Output 194 Orders in the ledger
01 — Context
The problem.
Reselling looks profitable until fees, shipping and slow-moving stock are counted. With hundreds of items, a spreadsheet could no longer say what was actually making money.
Listing is the bottleneck: photographing, writing and pricing each item by hand takes longer than sourcing it.
02 — Method
The approach.
The build, in the order it happened.
-
One record per item, purchase to sale
Inventory, costs, fees and sales live in SQLite, so every chart is computed from the same ledger.
-
Analytics that answer real questions
P&L, sell-through, time-to-sale and category performance — what to buy more of and what to stop buying.
-
An assisted sales agent
The agent drafts title, description and suggested price from photos. Publishing stays manual in Vinted’s own form — no reverse-engineered writes.
-
Tested like production software
780+ tests, including rendering every page in Streamlit’s real runtime in both themes against seeded and empty databases.
- Sources PythonStreamlitSQLite
- Step 01 One record per item, purchase to sale
- Step 02 Analytics that answer real questions
- Step 03 An assisted sales agent
- Gate Tested like production software
- Output 194 Orders in the ledger
03 — Outcome
What changed.
- 194 orders and 183 items in one ledger — a single source of truth for stock, cost and profit.
- Listing drafts produced from photos, reviewed and published by me.
- 780+ automated tests guarding every page and calculation.
04 — Screens
What it looks like.
Generated from the write-up rather than captured from a client's screen — the shape of the thing, not a leaked one.
A local-first analytics app for my own vintage reselling business: inventory, P&L, market research, and an AI agent that drafts listings from photos.
194 orders across 183 items, guarded by 780+ tests.
The listing workflow: photos in, a draft out, reviewed and published by me in Vinted’s own form.
05 — Stack & role
Built with.
- Python
- Streamlit
- SQLite
- Pandas
- LLM vision API
- pytest
- Role
- Owner — product, engineering and data
- Duration
- 2026, ongoing
- Client
- Own product
- Period
- 2026
06 — Questions
The questions I get asked about this one.
No, deliberately. The agent drafts; I confirm and publish in Vinted’s own sell form.