For a limited time, use our exclusive coupon code KWINGSMEDIA at checkout and enjoy a special 10% discount on all of our products and services across the entire Kwings Media store
Kwings Media Logo
KWINGS MEDIA
Back to Projects
Quotations & Invoicing

Invogen

A full-stack business document platform that replaces hand-made Word and Excel paperwork with a single web app. It creates, numbers, stores and delivers quotations, invoices and bills — each rendered server-side as a pixel-faithful PDF of the company’s existing document design.

Visit the live site
Loading live preview…

Live preview of invogen.kwingsmedia.com

Overview

Invogen was built to take a business off manual paperwork without asking it to abandon the document design it already uses. The generated PDF matches the company’s existing layout exactly, complete with logo, multi-page tables, repeated headers and bank details.

Beyond generation, it manages the whole document lifecycle: an accepted quotation converts to an invoice in one click and stays linked both ways, documents can be shared by public URL with no login for the recipient, and recurring invoices issue themselves on a schedule.

What it does

Document builder

Compose quotations, invoices and bills from line items with a live preview that matches the generated PDF exactly.

Automatic numbering

Sequential, zero-padded numbers per document type with configurable prefixes, so numbering never has to be tracked by hand.

Proposals & e-signature

Rich-text proposals plus a public signing page where clients view and sign a document without creating an account.

Dashboard & settings

Revenue and document analytics, company profile, logo upload, numbering rules and admin-only user management.

Engineering highlights

No duplicate numbers under load

Numbers are allocated with a single atomic UPDATE ... RETURNING inside the creating transaction. A test drives 20 concurrent creates and asserts zero collisions and zero gaps.

Money is never floating point

Amounts are stored as Decimal(12,2) and computed in integer cents. Totals are always recomputed server-side and client-sent figures are discarded.

One layout, three documents

A single PDF renderer parameterised by labels drives all three document types, and the React preview shares the same totals module — what the user sees is what downloads.

Validated at the edge, tested where it matters

Every request body is parsed by a Zod schema before reaching a route handler, with integration tests running login through to PDF download against an isolated test database.