Inspiration
Many small traders in Nigeria still run their business from a notebook, phone notes and WhatsApp chats. Sales get written down late or not at all. Nobody knows exactly who owes what, late payers are chased from memory, and money lent to customers is tracked by trust. Professional invoices and accounting software tend to be expensive, complicated, or built for bigger businesses. We wanted a tool that a shop owner could open on a phone and use without sign-ups, training or monthly fees.
What it does
Invoices and receipts: build a numbered, branded document with a live preview, then print it or send it by WhatsApp or email. Payments: record full or part payments, and TradeBook issues a linked receipt automatically. Dashboard: shows total sales, money received, who still owes you, a 7-day sales chart, and a banner that opens overdue invoices. Clients: repeat customers fill in automatically, with billing history and account balances. Loans: lend money to a client with interest added every minute, reminders, repayments, and recovery from the client’s account at the due date. Cash control: the app tracks cash available, and refuses any loan or purchase larger than it.
How we built it
TradeBook is a client-side web app in plain HTML, CSS and JavaScript, with no framework and no backend. Data lives in the browser’s local storage, so it works offline after the first load and costs nothing to host. We split the code into a core file (script.js) and add-ons for invoice financing, seller pricing, and purchases and profit and loss. The add-ons wrap the core functions instead of rewriting them. The app is deployed on Vercel from GitHub, and its interface adapts to phones, with tables turning into cards on small screens.
Challenges we ran into
One small mistake broke a lot: a misplaced block in index.html removed two form fields. The script then crashed on load, which stopped the loan buttons, the interest clock and the dark-mode toggle all at once. Debugging the wrong file: fixes kept appearing to fail because the live Vercel site was still serving an old deployed copy. Money rules: deciding what counts as cash available, and not double-counting a sale and the receipt for its payment, took careful rules. Realistic seller pricing: we built an item-based price table with seller names, and made quotes stable for the whole day so a user can’t keep asking until a cheaper price appears. Limits of a no-server app: reminders and interest events only run while the page is open, and the loan “auto-debit” is a bookkeeping entry, not a real bank debit.
Accomplishments that we're proud of
A complete workflow in one small app, from invoice to payment, receipt, reminder, lending and profit, with no backend. Controls that stop bad decisions: no lending or buying beyond available cash, and no choosing your own purchase price. Invoice-financing features that small-business tools rarely include, such as aging buckets, concentration limits and notice of assignment. A phone-first design that works the same on a low-cost device. Clear requirements documents (BRD, PRD and scope) written from the actual code, including its known gaps.
What we learned
Script load order and element IDs matter a lot in a multi-file app, and a single null element can disable an entire page. Check the deployed site, not just the local files, before debugging. Money handling needs explicit rules written down before any code. A no-backend app is quick to ship and free to run, but it needs strong backup features and honest labels about its limits. Lending features carry real legal and ethical weight. The default interest rate needs careful review, and we flag it as a risk.
What's next for Tradebook
Fix PDF download by bundling the PDF library, and host all libraries locally. Optional accounts and cloud sync so data survives a lost phone and works across devices. A PIN lock, automatic backup reminders, and an audit trail for edits and deletions. Whole-kobo money arithmetic and automated tests for every business rule. Real payment links and payment status through providers such as Paystack. Server-side reminders that work when the app is closed, and WhatsApp or SMS sending. Live supplier prices in place of the built-in price table. Legal review and sensible caps on loan interest, before any use with real customers.
Built With
- css
- git
- github
- html
- javascript
- localstorage
- vercel
Log in or sign up for Devpost to join the conversation.