AdiosDocs

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.