Most developers avoid ERP. It's complex, boring, and usually built by teams of 20+. I built one alone.
Why?
Indian small businesses run on disconnected spreadsheets, Tally, and WhatsApp. I wanted to build one clean desktop app that handles everything — finance, inventory, sales, purchase, GST, manufacturing, HRM, and reporting.
The Stack
- Electron — Desktop delivery (Windows)
- React + TypeScript — UI layer
- SQLite — Local-first data storage
- Node.js — IPC handlers and service layer
Why desktop + SQLite instead of a web app? Indian SMEs often have unreliable internet. A local-first app that just works, every time, was the right call.
What's Inside — 8 Modules
Finance: Chart of accounts, journal entries, general ledger, trial balance, P&L, balance sheet. Double-entry accounting built from scratch.
Inventory: Item master, warehouse structure, stock movement, valuations, low-stock alerts.
Sales: Customer management, sales orders, GST-compliant invoicing, receipt tracking, aging analysis.
Purchase: Vendor management, purchase orders, goods receipt, purchase invoicing, payment tracking.
Manufacturing: Bill of materials, work centers, production orders, MRP planning, job work, quality control.
HRM: Employee records, attendance, leave management, payroll, tax declarations.
GST & Compliance: E-invoice, e-way bill, GSTR reports, ITC reconciliation, HSN summaries. Built for Indian tax workflows.
Reports: Financial, sales, purchase, inventory, and GST reports with export options.
The Hard Parts
1. Domain modeling
ERP isn't one problem, it's 15 interconnected problems. A stock movement affects inventory valuations, which affects financial reports, which affects GST filings.
2. Double-entry accounting
Getting the chart of accounts, journal entries, and ledger posting right took longer than any UI work.
3. GST compliance
Indian GST rules change constantly. Building a flexible structure that handles e-invoicing, reverse charges, and ITC was the most research-heavy part.
4. Keeping it simple
The biggest temptation in ERP is feature creep. I forced myself to keep the UI clean: clear navigation, card-based actions, search-first header.
What I Learned
- Build the data model first. If your chart of accounts is wrong, everything downstream breaks.
- SQLite is underrated. For local-first business software, it's fast, reliable, and zero-config.
- ERP is a product exercise, not just a coding exercise. You need to understand business operations, not just API design.
- Ship module by module. I built Finance first, then Inventory, then Sales — each one tested before moving on.
Try It
- Live demo: sa-erp.netlify.app
- Source code: github.com/atul0016/sa-erp
- Portfolio: beimatulportfolio.tech
If you're thinking about building business software as a solo developer — do it. The domain complexity is what makes it valuable, both as a product and on your portfolio.
I'm Atul Srivastava, a full-stack developer building ERP systems, SaaS platforms, and Chrome extensions. Open to freelance and remote work. Reach me at imatulsrivas@gmail.com.
Top comments (0)