Case study
How ZestAMC went from spreadsheets to $10+ million in 30 days
ZestAMC went from spreadsheet-based fund operations to a production platform managing $10+ million in assets in 30 days. Five role-based portals. Automated crypto payouts. KYC/AML compliance. 179 database migrations. Zero rounding errors. This is the full build story.
Before: spreadsheets and manual transfers
ZestAMC managed crypto investment funds for 200,000+ users. The operations ran on spreadsheets. Investor allocations lived in Excel. NAV calculations sat in a shared Google Sheet. Three people edited the same file. Payouts happened through manual crypto transfers, one transaction at a time.
KYC verification was email-based. An investor would send identity documents as attachments. Someone on the team would review them, compare against requirements, and update a tracking spreadsheet. Compliance records were PDF folders organized by investor name.
The model worked at 50 investors. At 200,000+ users managing $10+ million in assets, the cracks were structural. A single decimal error in an allocation calculation could misroute thousands of dollars. Manual payouts across TRC20, ERC20, and BEP20 networks took the operations team days per distribution cycle. And when the auditor asked for a transaction history, someone spent a week assembling it from five sources.
The team needed a platform. They needed it by mid-January. They called us in mid-December.
The 30-day build
The first call was a scope session, not a sales call. We mapped ZestAMC's fund structure: how investors allocate, how distributions cascade, how KYC gates investment flows, which user roles need which views. The founder scoped the project, understood the fund mechanics, and wrote the code. Same person throughout.
The build started the next day. No three-month requirements phase. No handoff to a junior team. The scope was fixed, the price was fixed, and the deadline was non-negotiable: mid-January, live in production.
By week two, ZestAMC reviewed a live staging URL. Investor portals. Fund manager dashboards. Payout flows. They tested against real scenarios from their operations, flagged gaps, and we shipped fixes the same day. By mid-January, the platform was processing real investments with real money.
What we built
Five role-based portals
Fund managers see AUM, performance charts, and profit distribution in real time. Investors log in to check their allocation, track payouts, and download statements. Admins manage users, funds, and system configuration. Compliance officers run KYC workflows and audit queries. Support agents handle investor issues through live chat.
Five roles, five views, one codebase. Each portal shows only what that role needs. A support agent can't see fund performance. An investor can't access admin tools. The permissions model is granular and enforced at the API layer, not the UI.
Automated crypto payouts
Manual payouts across three blockchain networks took the ops team 2-3 days per distribution cycle. The automated payout engine processes distributions across TRC20, ERC20, and BEP20 as atomic transactions. If any step in a batch fails, the entire batch rolls back. No partial distributions. No manual cleanup.
The engine is currency-agnostic. Fiat rails work through the same transaction model. Adding a new payout network means adding a provider adapter, not restructuring the distribution logic.
KYC/AML compliance
Sumsub handles identity verification through SDK integration and webhook callbacks. Every investor completes KYC before their first investment. The platform creates a timestamped audit trail for every transaction, every calculation, and every data change. When the compliance officer runs a query, the results are instant; no week-long document assembly.
Financial-grade precision
JavaScript's Number type loses precision above 2^53. On a platform managing $10+ million, a rounding error isn't a bug; it's a compliance violation. ZestAMC stores every monetary value as NUMERIC(30,8) in Postgres and uses decimal.js for every calculation. 30 digits, 8 decimal places. Zero rounding errors across $10+ million in assets.
Infrastructure for production scale
React 19 + Vite 6 on the frontend. Hono on Fly.io for the API. Supabase for the database with Upstash Redis for caching and rate limiting. BullMQ for background job processing (payout batches, KYC webhook handling, audit log writes). The architecture handles 200,000+ users without the complexity of microservices.
What replaced what
| Before (manual) | After (ZestAMC platform) |
|---|---|
| Excel investor tracking | Self-service investor portal with real-time data |
| Shared Google Sheet for NAV | Automated NAV calculation with NUMERIC(30,8) precision |
| Manual crypto transfers (2-3 days) | Atomic payout engine across 3 blockchain networks |
| Email-based KYC attachments | Sumsub SDK with automated verification |
| PDF compliance folders | Timestamped audit trail with instant queries |
| Email investor statements | Investor portal with downloadable reports |
| Single admin spreadsheet | 5 role-based portals with granular permissions |
After launch: continued iteration
The 30-day build was the foundation. After launch, we shipped features as ZestAMC's operations grew:
- Tranche-based investments: Investors could enter funds in batches, each tranche tracked separately with its own performance and distribution logic.
- Referral chain automation: Multi-level referral payouts calculated and distributed automatically through the same atomic transaction engine.
- Feature flags: Progressive rollouts let ZestAMC test new features with a subset of users before full deployment.
- 179 database migrations: Each migration tested against production data snapshots before deployment. Zero data loss incidents.
The platform grew with the business. That's the advantage of owning the code: feature development happens on your timeline, at your pace, with zero vendor dependencies.
Results
- $10+ million in assets under management on the platform
- 200,000+ registered users across investor and admin roles
- 5 role-based portals serving fund managers, investors, admins, compliance, and support
- 30 days from first call to production launch
- 179 database migrations with zero data loss
- Zero rounding errors across all financial calculations
See ZestAMC in action
30-minute walkthrough of the live platform with the person who built it. Investor portals, fund dashboards, payout automation, compliance workflows.
Request a demo