JumpInChat hadn't been touched in a while. The codebase was showing its age — outdated dependencies, deprecated APIs, security issues piling up. This update brings everything current.
What changed
The entire stack was modernized:
- Node.js 22, Express 5, Mongoose 9
- All server code converted from CommonJS to ESM
- Dependencies updated across the board (200+ packages)
- Security hardening: helmet, hardened cookies, input validation
- AWS services replaced with local filesystem storage and generic SMTP
- Vendored libraries replaced with npm packages
- Test coverage expanded significantly
The homepage was rewritten from Keystone.js to plain Express, and the WebRTC integration was migrated to the current Janus Gateway track-based API.
The site may or may not be publicly hosted — either way, the code is in better shape than it's been in years.