Logistics SaaS
Billing and operations software for a family transport business. Staff manage lorry receipts, GST and TDS billing, payments, and expenses. Customers can look up shipments and statements in their own portal.
- Role
- Solo engineer
- Year
- 2025 - now
- Stack
- Next.js · Postgres · Puppeteer
Overview
- Problem
- Move lorry receipts, billing, and payment records out of paper books and spreadsheets while keeping the business’s existing accounting workflow.
- What I built
- Staff tools for receipts, bills, payments, expenses, tax reports, PDFs, and accounting sync, alongside a customer portal.
- Result
- Staff use one system for daily shipments, billing, receivables, and reports. Customers can check their bills, shipments, and statements without asking staff to send them.
Background
Naveen Logistics uses the system daily to write lorry receipts, create bills, allocate payments, record expenses, and check receivables and profit.
Lists, dashboards, reports, and statements use the same financial-year context. The customer portal carries opening balances forward and shows each account its shipments, bills, dues, and payment requests.
I spent much of the work on concurrent payment updates, tax rules shared by GSTR-1 reports and Zoho exports, and PDFs that match the existing paper forms. Keeping those forms familiar helped the business use the generated documents in its daily work.

Systems
Consistent database lock order
Removed Postgres 40P01 deadlocks in billing/payment flows by enforcing one global row-lock order, then revalidating data-dependent lock sets after acquisition.
Shared customer ledger
The staff view, customer portal, statements, and reports share ledger calculations for payment attribution, proportional TDS, advances, and opening balances.
GST and TDS calculations
GTA reverse-charge GST and Section 194C dual-threshold TDS with PAN-type rate detection, behind one validated place-of-supply resolver (IGST vs CGST/SGST) shared by the GSTR-1 report and the accounting sync.
Payment and billing safeguards
Credit is restored before dependent records are deleted. Bill status accounts for reversed payments, row locks prevent double-billing, and allocations allow for rounding differences.
Customer self-service portal
Read-only, group-aware access gives customers their shipments, bills, payment requests, and financial-year statement without exposing staff CRUD screens.
Document and accounting pipeline
Printable receipts, bills, ledgers, rate cards, and reports match the business’s forms. Cached PDFs and Zoho imports and exports use the same tax and ledger rules.