
# curl https://i-sahulat.ner-dev.com
iSahulat
$ saas --manufacturing --multi-tenant --layered-cogs
- web
iSahulat is a full-stack SaaS for Pakistani manufacturing SMEs, sales, inventory, manufacturing batches, banking, expenses, and a real layered cost-of-sale model rolled into one multi-tenant platform.
FLAGS
- --multi-tenant
- Each client company's data is fully walled off, one company can never see another's records, even on shared infrastructure
- --layered-cogs
- Real cost-of-sale per unit sold (FIFO or Weighted Average), every stock-in records its unit cost, every stock-out pops the layer queue
- --secure-by-default
- JWT rotation, CSRF protection, rate-limit + lockout, XSS input sanitisation, prod refuses to start without strong signing keys
- --csv-everywhere
- Customers, products, invoices, orders, receipts, expenses, bank transactions, all importable from spreadsheets with multi-row line items
- --mobile-responsive
- Sidebar collapses to a hamburger drawer • forms stack vertically • tables scroll sideways instead of squishing columns
- --scheduler-ready
- Five nightly jobs run on their own, overdue marking, recurring invoices, recurring expenses, trial expiry, token cleanup
SCREENSHOTS
browsers tested: chromium 120+ • firefox 119+ • safari 17+ • edge 120+ • mobile safari 16+
MODULES
SALES & RECEIVABLES
Invoices, orders, receipts, credit notes, recurring billing, multi-invoice payment allocation, post-dated cheques.
EXPENSES & PAYABLES
Vendors with statements, hierarchical categories, multi-instalment payments, recurring bills, PDF vouchers.
INVENTORY & PRODUCTS
Variants, serial numbers, movement history, image upload, barcode/QR generation, bulk price update.
MANUFACTURING
Batches with BOM, production stages, yield + waste tracking, status workflow, stock reversal on delete.
COST OF SALE (COGS)
Layered cost queue per product, FIFO + Weighted Average, fallback flagging, forced re-valuation, inventory adjustments.
BANKING
Multi-account, running balance, single + bulk reconciliation, CSV import, expense-payment auto-debit.
CUSTOMERS & CRM
B2B contacts, communication log, credit-limit enforcement, duplicate detection, printable statement.
REPORTS
Sales, Inventory (layer-based), Financial (P&L + opex), Tax (GST/WHT/net liability), Expenses, COGS, all PDF exportable.
ADMIN PANEL
Multi-company management, subscription plans, trial toggle, platform metrics, cross-company audit log, JSON backup.
SECURITY
Short-lived JWT + refresh rotation, bcrypt, CSRF, rate limiting, account lockout, full tenant isolation, role-based perms.
and more, recurring background jobs, one-click company-wide JSON backup, custom invoice templates with company logo, mobile-responsive across every screen.
STACK
- frontend
- React 19 • Vite 8 • Tailwind 4 • React Router 7 • TanStack Query 5
- backend
- Node.js • Express 5 • Knex 3 • ES modules
- database
- PostgreSQL • Neon (serverless)
- Nodemailer • SMTP2GO (mail.smtp2go.com:2525)
- PDFKit • per-company templates + accent colours
- jobs
- node-cron (self-hosted) • Vercel Cron (production)
- infra
- Vercel • single project • serverless • GitHub branches → environments
FAQ
- q: which industries is iSahulat built for?
- a: manufacturing-first, BOMs, production batches, real cost-of-sale. also fits distribution, retail, and trading SMEs out of the box. the data model is generic; manufacturing-specific workflows light up when they're needed.
- q: how does multi-tenancy work?
- a: shared schema with company_id on every tenant table plus a tenantContext middleware that scopes every query. one platform- level super-admin can move between companies; nobody else can.
- q: how accurate is the gross-profit number?
- a: it's accurate to the rupee once you start booking purchase expenses against products and completing manufacturing batches. each stock-in records its real unit cost; each sale pops the layer queue. the COGS report shows you what fraction of period cost-of-sales came from the cost-price fallback so you can see when accuracy improves.
- q: can it self-host?
- a: yes, single Express app + PostgreSQL • 32 migrations • the scheduler runs on node-cron in self-hosted environments and on Vercel Cron in production. self-host is one container plus a managed Postgres (Neon, RDS, or any other).













