All selected work

01 / Full-stack SaaS · Product

BizManager

Running a small business from one workspace.

A browser-first business platform that brings sales, invoices, inventory, purchasing, expenses, reports and team permissions into isolated workspaces.

My role
Product architecture, full-stack development & deployment
Technology
Next.js 16 / React 19 / TypeScript / PostgreSQL / Drizzle / Auth.js / Razorpay / Docker Compose

The problem

Small teams often split sales, stock, purchasing and access control across disconnected tools. Moving an existing desktop product to the web also requires strict tenant boundaries and a safe path for customers' local SQLite data.

What I built

I built the web product with Next.js, TypeScript, PostgreSQL and Drizzle. Auth.js handles credentials and Google sign-in; workspace memberships enforce roles on the server; Razorpay manages trials and subscriptions; and the application covers sales, invoice PDFs, inventory, purchasing, expenses and reports.

The challenge

Keeping business data isolated by workspace while applying permissions, trial expiry and paid-plan access consistently across every read and mutation.

Implementation approach

Server Components read directly through Drizzle, while validated Server Actions handle mutations. Central workspace guards enforce permissions. Docker Compose runs PostgreSQL, migrations, the web app and scheduled jobs, with an optional Cloudflare Tunnel for HTTPS self-hosting.

Workflow overview

Running a small business from one workspace.

BizManager
  1. 01Sign-in & workspace
  2. 02Sales, stock & purchasing
  3. 03Roles, trial & billing
  4. 04Reports, PDF & deployment

A simplified view of the product workflow.

BizManager — capture of the live product sign-in experience.
BizManager — capture of the live product sign-in experience.

The result

A browser-first operations product with multi-tenant records, team roles, audit history, subscription controls, PDF output and a staged importer from the retained Electron client.

Next projectBulkBees