Quasolvex 4 systems in service · ap-south-1ceo@quasolvex.com
Operations software · live at 4 businesses

Four businesses are running on our software. This second.

Quasolvex builds operations software for small Indian businesses. A hostel, a yarn plant, a produce trader and a snack factory — their billing, inventory, dispatch and money math run on systems we designed, shipped and keep in service. Serverless on AWS, end to end. The board counts the time since each system went live.

4products in production
28months of combined service
35,000+yarn bags barcoded
11,00,000+kg of yarn tracked
01Om Sai HostelNashik — Hostel & mess operationsin service 271d 17:38:17

The front gate checks your dues before it opens.

A 100-student hostel that ran on paper registers and desk arguments. We replaced it with four role-based portals, a billing engine fed by actual meals eaten — and a fingerprint-controlled gate that answers to the ledger.

Ops flow
React PWA4 role portalsAPI GatewayHTTPLambdaExpress · 164 routesDynamoDB28 tables
Gate loop
Admin panelenroll / revokeWebSocket APIpush commandsESP32 gatefingerprint + relayDues checkgrace-period logic
Billing
Meal recordssource of truthSQS workerrecalculationMonthly cronbill generation
What we built
  • Admin, student, guardian and mess-only portals from one PWA codebase
  • Meal booking with deadlines, guest meals, tiffin — QR scan-to-serve at the counter
  • Pro-rated billing computed from consumed meals; bills regenerate via a queued worker on every change
  • UPI deep-link collection with admin verification and full reconciliation
  • Guardian view: gate entries and meal activity, visible from home
100
students
164
API endpoints
28
DynamoDB tables
3
meals/day verified by QR
React PWATypeScriptAWS LambdaDynamoDBAPI GW WebSocketSQSEventBridgeFirebase AuthESP32 / C++
Engineering notes

Hardware answers to the ledger

A custom ESP32 fingerprint controller sits on the physical gate. Every scan asks one question — are this student's dues clear? Paid or in grace period, the relay opens. Enrollment is pushed to the device over an AWS WebSocket, live from the admin panel.

One Lambda, 164 routes — on purpose

A single serverless Express app instead of one function per route: deploys dropped from ~15 minutes to ~2, the artifact from gigabytes to 22 MB.

Bills that survive rate changes

Each bill locks the fee structure it was generated under. A monthly cron recomputes every student's dues-clear flag — the same flag the gate reads.

02Rama PolythreadYarn manufacturer — Manufacturing ERPin service 226d 17:38:17

35,000+ bags of yarn. Zero guesswork at dispatch.

A polyester yarn plant tracking production in Excel, with dispatch that ran on memory. Now every bag is barcoded at the plant, findable in the warehouse, and scanned onto the truck — over eleven lakh kilograms tracked so far.

Production
Bag entryoperator PWALabel printCODE128 + QRWarehouserow-level stock
Fulfilment
Ordertarget weightOptimizerbounded-window FIFODispatch scancamera / USB gunBuyer emailcron Lambda
Platform
React PWAAmplifyLambdaExpressSupabase PGPrisma + triggers
What we built
  • Keystroke-minimal bag entry for plant operators, with instant barcode label printing
  • Live warehouse across tens of thousands of bags — grade, denier, colour drill-downs, Tally-ready exports
  • Order fulfilment by FIFO, LIFO or manual selection against a target weight
  • Dispatch scanning by phone camera or USB barcode gun — nothing leaves unscanned
  • Cron-driven buyer email notifications when dispatch completes
35,000+
bags tracked
11,00,000+
kg tracked
13
master-data dimensions
1
scan per bag loaded
React PWATypeScriptAWS AmplifyAWS LambdaSupabase PostgresPrismaEventBridgebwip-js
Engineering notes

The bag-selection algorithm

'Send this buyer 5,000 kg of 210-denier white' — the system picks the exact physical bags. A bounded-window optimizer walks the FIFO queue, then searches around the crossing point for the single bag that lands closest above target. Near-knapsack results, O(n) cost.

Dashboards that never scan tables

Database triggers maintain daily dispatch and warehouse aggregates. The dashboard reads a handful of rows, not 35,000 bags.

Print quality is a feature

Labels render CODE128 straight to canvas after field tests showed image-based barcodes printed soft and slowed the scan guns.

03Pushpa MushroomsProduce trading — Supply-chain ledgerin service 240d 17:38:17

The khata book, rebuilt.

A vegetable trading business whose farmer credits, buyer dues and driver advances lived in handwritten khata books. Now every batch moves farmer → transit → grading → sale with an approval at each step, and every rupee lands in a running ledger no one argues with.

Goods
Farmer pickupdriver appIn-transitapproval queueGradingA / B / C / wasteSaleadvisory-locked
Money
Khata engineoutstanding recomputePDF statementPDFKit → S3WhatsAppnative share plugin
Platform
React PWA+ Capacitor AndroidLambdaExpressSupabase PGPrisma
What we built
  • Full pipeline: driver pickup → in-transit batch → warehouse grading → priced sale → payment
  • Running khata for every farmer, buyer and driver — 'you will give / you will get'
  • Multi-line invoicing with per-grade pricing, auto stock deduction, outstanding recalculation
  • Server-generated PDF statements, shared to a WhatsApp contact in one tap
  • Admin-composed dynamic roles — permissions, widgets, menus, themes per user
3
khata types — farmer, buyer, driver
3,500+
stock items
4
grades per lot (A/B/C/W)
2
platforms — web + Android
React PWATypeScriptAWS AmplifyAWS LambdaSupabase PostgresPrismaAWS S3PDFKitCapacitor
Engineering notes

Why there's a native app at all

The business shares statements to specific WhatsApp contacts — a web app can't. So: a Capacitor Android build with a custom native plugin that hands the PDF straight to the chosen contact. Exactly as much native as needed, no more.

No overselling, ever

Concurrent sales of the same vegetable and grade serialize on Postgres advisory locks inside the transaction. Two clerks cannot sell the same crate.

One number everyone trusts

Every purchase, approval, sale and payment recomputes the partner's outstanding through a single shared routine. The number on screen is the number.

04Sanyu VenturesNamkeen manufacturer — Factory ERP · fleet · voicein service 95d 17:38:17

The owner runs this factory by talking to it.

Procurement, production costing, billing, receivables — the whole conveyor belt — plus a live fleet map and a Marathi voice assistant powered by Claude that the owner uses every day. He asks; it answers with real numbers. He confirms; it raises the bill.

Factory
ProcurementFIFO raw lotsProductionper-packet costingBillinginteger paiseLedgerpayables / receivables
Voice
Speech-to-textMarathi audio → textClaude26 tools · confirm-then-commitERP actionsserver-gatedText-to-speechspoken reply
Fleet
Driver appnative background GPSCapability URLtokenized ingestTrip analysisroutes · stops · varianceLive mapMapLibre GL
What we built
  • Procurement → FIFO raw lots → production sessions with per-packet costing → billing → ledger
  • Owner's dashboard: 12-month revenue, margin, yield trends, distributor Pareto
  • Fleet: drivers start trips on phones; GPS survives screen-off and app-kill; live map for the owner
  • Voice assistant in Marathi powered by Claude — speech-to-text → Claude → text-to-speech; briefs the owner, executes confirmed actions
  • Offline-first PWA; Capacitor apps for Android and iOS
165/165
tests passing
26
voice actions
15
backend modules
24/7
GPS trip recording
React 19TypeScriptAWS AmplifyHono on LambdaSupabase PostgresDrizzleAWS CDKClaude APIMapLibre GLCapacitor
Engineering notes

Voice with a safety catch

The owner speaks in Marathi; speech is turned into text, Claude reads it and picks from 26 ERP tools, and its answer is spoken back. Claude is called only from our backend — the API key never reaches the device. Every mutating tool is hard-blocked server-side unless Claude read the exact ₹ amount back and got a verbal yes. Confirm-then-commit, enforced twice.

Auth built like it matters

Argon2id hashing, algorithm-pinned JWTs, refresh tokens rotating on every use — a replayed stolen token burns the whole session family. Login backoff computed DB-side for stateless Lambda.

Money in integers

All monetary math in integer paise through one shared module — client previews and server invoices cannot drift a rupee. Production costs consume lots FIFO in milli-units.

GPS that survives the pocket

A forked native background-geolocation plugin posts fixes from native code to a per-trip capability URL. Server-side analysis rebuilds routes, flags GPS-vs-odometer variance, detects stops.

How we build

One platform philosophy, proven four times over.

a.

Serverless by default

React frontends on AWS Amplify. Node.js backends as single Lambda applications behind API Gateway — measured against per-route functions and chosen deliberately. Postgres on Supabase; DynamoDB where the access patterns earn it. No servers to babysit; cost scales with actual use.

b.

Built for the person typing

Plant operators, wardens, warehouse staff, drivers. Installable PWAs that work offline; barcode guns and fingerprint sensors where paper used to be; WhatsApp and UPI where the business already lives. The software adapts to the floor — never the other way around.

c.

Correctness is a feature

Money computed in integer paise. Stock guarded by database locks so it can't sell twice. Refresh tokens that detect theft and burn the session family. Test suites against real Postgres. The boring rigor that keeps a system trustworthy long after launch.

d.

AI that asks before it acts

We build AI features on Claude. In the Sanyu factory app the owner speaks Marathi; speech becomes text, Claude works out the request and picks from a fixed set of server-checked ERP tools, and the answer is spoken back. Claude proposes; the server and the owner decide.

Team

Five people in Nashik, building and keeping it in service.

Prajwal Shete

Founder & CEO

Sanskruti Hirve

Tech

Parag Mahajan

Tech

Sarthak Palde

Tech

Ashutosh Bhagat

Sales