Skip to main content

Web Frontends

LOKLOK's web presence spans several generations of frontends, all pointing at the same broadcast:

  1. Classic Socket.io pages under public/ — the original web app: home/ player, live radio, chat, studio, and monitoring dashboards.
  2. Installable PWA — the primary radio player (HLS + OGG), installed as an app from the browser, with push notifications and an offline shell.
  3. Next.js player under radio-web/ — a modern HLS player app (Next.js 16 / React 19).
  4. Go Live page — mobile WebRTC broadcast (/go-live on the WHIP server).
  5. Flutter app — a native Android player (media_kit/mpv) with a premium branded UI: live now-playing + listener counts, a full on-air queue, chat, and vibe voting. Built under ~/loklok_radio_app on the production box (see Flutter app).

Page inventory

PageFilePurpose
Home / playerpublic/index.html"LOKLOK FM | Social Broadcast Network" — landing + player + comments + vibe votes
Remote livepublic/index_remote_live.html"LOKLOK — Live Radio" — amber/glass live player with wave canvas
Chatpublic/chat.htmlThemed chat rooms
Studiopublic/lok.html"LOKLOK Studio | Broadcast Network"
Pro injectorpublic/studio.html"LOKLOK STUDIO | Pro Live Injector" — live injection push buttons + on-air sign
Social studiopublic/social.htmlStudio UI for the social platform (submit/vote/approve)
Dashboardpublic/dashboard.html"LOKLOK AI | Brain Dashboard" — Chart.js telemetry
Monitorpublic/monitor.html"NETWORK OVERWATCH" — timeline + queue + stats
Labpublic/lab.html"Neural Telemetry Lab" — Chart.js + JetBrains Mono lab views
Player appradio-web/Next.js HLS player (SSR + client HLS)
PWA (primary)html/index.html (remote)Installable radio player: HLS + OGG fallback, artist backdrop, push, offline
Go Livego-live.html (remote)Mobile WebRTC broadcast page served by the WHIP server

Shared infrastructure

  • public/app.js — Socket.io client helper: lists channels, join_channel, tuneIn, refreshes every 8s.
  • public/visualizer.js — canvas Web Audio Analyser visualizer over the audio stream.
  • sw.js / manifest.json / icons/ / offline.html — PWA assets served with the remote player.

Serving model

  • The classic pages are served by server.js (Express + Socket.io on the same origin).
  • The PWA + docs are served by the Go server (:8093, static) at api.mediahubnetwork.net; the PWA polls HTTPS …/v3/paths/list (an alias of the :19353 listener proxy) for the live listener count and streams HLS + OGG with OGG fallback.
  • The Next.js player is a separate service (dev :3456, prod :4477) streaming HLS via MediaMTX.
  • Live chat + presence are served by chat-server.js (files.mediahubnetwork.net:8094), a zero-dep long-poll REST companion (see Chat server).
  • The Go Live page is served by the WHIP server (10.10.8.230:8089).

Read on: Next.js player, Classic pages, PWA.