Ledgerly
A GST invoicing tool for Indian freelancers and small businesses — named, designed, written and built, from the first sketch to the deployed site.
- Client
- Ledgerly
- Year
- 2025
- Scope
- Naming, identity, product UI, marketing site, build
- Team
- Two designers, one design engineer
- Stack
- Static HTML, CSS, vanilla JS. No framework.
Invoicing software that stops apologising for GST.
Every competitor treats Indian tax as a module bolted onto an accounting suite designed elsewhere. HSN codes hide in a settings panel. Place of supply is a dropdown nobody explains. The result is software that makes a freelancer feel like they are doing something wrong.
The brief we wrote back was one sentence: build the product around the document it exists to produce, and let the tax rules be the design language rather than the fine print.
The invoice was already a beautiful piece of information design. We stopped decorating and started listening to it. Marshmallow, project note
Ledger ink and cool paper
Indigo on a cool grey stock, white document surfaces, and exactly one gold — spent on the PAID stamp and nowhere else. Status colour encodes invoice state instead of decorating: green paid, rust overdue.
Data has its own voice
Anything a tax officer would check is set in mono — GSTINs, invoice numbers, ₹ amounts, the clock. Everything a human wrote is set in Figtree. You can tell what kind of thing you are reading before you read it.
Metadata instead of numbering
Sections are introduced by an invoice-style meta row carrying real information — all prices · INR, exclusive of GST — rather than decorative 01/02/03 chrome.
- Ledger ink · 26317C
- Cool paper · EDEFF3
- Seal gold · C9962A
- Paid · 0F7A57
- Overdue · B4451F
Five pages, embedded and usable.
This is not a video walkthrough. The whole Ledgerly site is served from this repository and framed below — click into it, raise an invoice, move the sliders.
A hero that does the work
The headline claims “under a minute”, so the hero is a live invoice assembling itself against a running clock — line items drop in, CGST and SGST compute, the total counts up, a gold stamp lands. It renders finished immediately under reduced motion.
A real tax engine
The invoice builder on the templates page checks place of supply against your own state: same state splits CGST and SGST, different state becomes IGST, outside India switches the document to a zero-rated export invoice with an LUT declaration.
₹, grouped properly
Indian digit grouping everywhere — ₹1,81,095, not ₹181,095 — and amounts in words in crore and lakh. The font subsets were cut locally because the stock Google Fonts latin subset omits the rupee sign.
-
Read the document
A fortnight with real invoices from twelve freelancers, marking every field that caused a question. The round-off row and place of supply accounted for most of them.
-
Design the vocabulary
Palette, type and the meta-row device were fixed before a single page was laid out, so every later screen had somewhere to come from.
-
Build it as we drew it
The same three people designed and shipped. The invoice builder was written first as a tax engine and only then given a UI, which is why the mixed-rate case works.
-
Leave the empty slots empty
The social-proof section ships as visible placeholders. No logos, quotes or counts were invented to fill a grid — the client will have real ones soon enough.