Invoice & inventory platform
Asset Vault
Project 01 · Seif Osman
The problem
Invoicing, stock control and multi-store operations usually live in three disconnected tools — invoice totals that don’t match the books, stock counts that drift, and no single view of the business.
What I built
A full-stack platform with end-to-end type safety: React 19 talking tRPC 11 to a NestJS 11 API on PostgreSQL (TypeORM, 50+ migrations), with Stripe subscription billing, Clerk auth, Puppeteer-rendered PDF invoices, offline-first IndexedDB sync and Docker self-hosting.
The result
v2.0.0 shipped — invoices, inventory, store-to-store transfers and analytics in one self-hostable app; the type-safe flagship of three sibling invoicing builds (React/Express and Flutter) exploring the same product across stacks.
Stack
React 19NestJS 11tRPC 11PostgreSQLStripeTypeScript