StackMSP
A live platform for managed service providers. Each MSP gets a subdomain for clients, contracts, invoices, proposals, support, and device management, with a Go Windows agent that checks in, runs jobs, and installs patches.
- Role
- Sole engineer (contract)
- Year
- 2025 - Present
- Links
- stackmsp.com
- Stack
- React
- Vite
- Redux Toolkit
- Node.js
- TypeORM
- MySQL
- Go
- Redis
- BullMQ
- Stripe
- Docker

Context
MSPs were running client management, billing, and endpoint work across disconnected tools. Onboarding a client or a device meant repeating the same steps in every system, with no shared view of contracts, invoices, or the machines under management.
What I built
A Node.js, Express, and TypeORM API on MySQL, with Redis and BullMQ for background work and Socket.io for live updates. The tenant and customer portals are React 19 and Vite with Redux Toolkit; the marketing site is Next.js. The RMM agent is Go: it enrolls a Windows machine, signs every request, runs jobs, and reports Windows Update state. Stripe handles subscriptions; QuickBooks is connected over OAuth with tokens encrypted at rest.
Details
- Subdomain-per-tenant PSA: clients, contracts, invoices, proposals, a customer portal, and a platform admin console
- Go Windows agent with per-request RSA signatures, signed jobs, and Windows Update scan and install, including a patch-policy and audit trail
- Workflows for onboarding and offboarding, a script catalog tenants can clone, and Ingram Micro product sync
- Stripe billing, QuickBooks OAuth, tenant-scoped RBAC, and a 170-test API suite covering auth, tenancy, and agent signing
Status
Live at stackmsp.com. Ongoing contract; I am the only engineer across the API, portals, landing site, and agent.