How to Build a Real-Time Global Analytics Dashboard with Node.js, Redis, and MongoDB
Build a live analytics dashboard that tracks clicks, stores historical trends, and streams events to the browser over WebSockets.
Target searches: host nodejs app free, deploy redis mongodb stack,
realtime websocket hosting, alternative to vercel backend.
The Stack
- Node.js with Express and Socket.io
- MongoDB for historical events
- Redis for active counters and pub/sub
- Adios runtime with a long-running Node process
Why This Feels Like a Superpower
WebSocket apps need a process that stays alive. Serverless functions can be awkward for long-lived connections because they are designed around short requests. On Adios, the Node.js server runs as a persistent runtime, while the platform handles routing, TLS, logs, and managed service connections.
1. Build the App
Ask the Adios AI agent:
Build an Express and Socket.io analytics dashboard. Track click events, store
them in MongoDB, publish live counts through Redis, and show a realtime chart in
the browser. Add /healthz.
2. Add adios.yaml
name: realtime-analytics
region: de
replicas: 1
routable: true
build_cmd: npm install
start_cmd: node server.js
runtime:
name: node@24
port: 3000
health_path: /healthz
memory_mb: 1024
secrets:
MONGODB_URI: secret://MONGODB_URI
REDIS_URL: secret://REDIS_URL
requires:
- mongo
- cache
Create a MongoDB resource named mongo and a Redis resource named cache, or
set the two URLs as secrets if you already have managed services.
3. Deploy
adios up
adios logs --runtime
4. Test It
Open the dashboard from a laptop and a phone, click around, and watch both clients receive the same live stream. Then inspect runtime logs and MongoDB rows to confirm the app is handling both live and historical paths.