The problem
NimNim runs on-demand laundry and dry-cleaning across Boston, New York and Miami. Its six apps ran on two EC2 servers as development servers with no process manager and no memory buffer. A firewall audit found the database and internal app ports reachable from the internet, bypassing Cloudflare. When a memory spike crashed the server, every app stayed down until someone restarted it by hand.
What we built
We moved the whole stack onto one hardened server. The web apps are now prebuilt and served by Nginx instead of running as Node processes, the API restarts itself after a crash or reboot, and a swap buffer absorbs memory spikes. The firewall now allows only web traffic through Cloudflare and SSH from known addresses. We also optimised slow MongoDB queries, fixed high-priority bugs and delivered a full platform revamp, all while customers kept ordering.
What we delivered
- Closed the firewall to everything except web traffic through Cloudflare and SSH from known addresses
- Cut the memory the full stack needs from 4.4 GB across two servers to 0.66 GB on one
- Automatic restarts after a crash or reboot, so one failure no longer means a manual recovery
- Fixed rate limiting, which had treated every visitor as one user, by passing real visitor addresses through Cloudflare and Nginx
- Delivered a full platform revamp on the stabilised setup
Our responsibilities
- Security audit and firewall hardening
- Infrastructure setup and configuration
- Deployment management
- Bug fixing and hotfixes
- Feature implementation
- Performance optimisation
Tech stack
- React
- Node.js
- MongoDB
- AWS EC2
- Nginx
- Cloudflare
Related services
Same kind of problem?
Tell Us About Yours