How jshmillvc/late-sh works
late.sh is a terminal-first social clubhouse reached primarily over SSH, with a browser frontend and companion CLI. The main workflow is an SSH user connecting to the server, using the terminal app to reach chat, news, profiles, games, and shared activity, while domain services use shared core models and PostgreSQL. Audio streams through Icecast/Liquidsoap and can be played or visualized locally by the CLI; the web app provides landing, connect, and paired-client experiences. README capabilities guide unsampled areas; wiring is shown only where documented or evident in sampled entry points.
Main entry points: app/mod.rs Terminal UI · main.rs Companion CLI · pages/mod.rs Web pages · svc.rs Domain services
Components 25
Access clients
- SSH server
late-ssh/src/main.rs - Web frontend
late-web/src/lib.rs - Web pages
late-web/src/pages/mod.rs - Companion CLI
late-cli/src/main.rs - Paired sessions
late-ssh/src/session.rs - Browser pairing
late-web/src/pages/connect/mod.rs - Stream page
late-web/src/pages/stream.rs
Terminal app
- Terminal UI
late-ssh/src/app/mod.rs - Dashboard
late-ssh/src/app/dashboard/mod.rs - Chat
late-ssh/src/app/chat/mod.rs - News feed
late-ssh/src/app/chat/news/mod.rs - Notifications
late-ssh/src/app/chat/notifications/mod.rs - Profiles
late-ssh/src/app/profile/mod.rs - Arcade games
late-ssh/src/app/games/mod.rs - Bonsai
late-ssh/src/app/bonsai/mod.rs - Chat bots
late-ssh/src/app/ai/mod.rs
Shared domain
- Domain services
late-ssh/src/app/chat/svc.rs - Shared models
late-core/src/models/mod.rs - PostgreSQL
late-core/src/db.rs
Audio system
- Audio runtime
late-core/src/audio.rs - Icecast stream
late-core/src/icecast.rs - Liquidsoap
Other components
- SSH user
- Browser user
- CLI user
Connections 25
- SSH user → SSH server: connects via SSH
- SSH server → Terminal UI: starts sessions
- Terminal UI → Dashboard: renders
- Terminal UI → Chat: renders
- Terminal UI → News feed: renders
- Terminal UI → Notifications: renders
- Terminal UI → Profiles: renders
- Terminal UI → Arcade games: renders
- Terminal UI → Bonsai: renders
- Terminal UI → Chat bots: hosts
- Chat → Domain services: calls
- Domain services → PostgreSQL: reads and writes
- Domain services → Shared models: uses
- Chat bots → PostgreSQL: reads and writes
- Browser user → Web frontend: visits
- Web frontend → Web pages: routes
- Web pages → Browser pairing: serves connect flow
- Web pages → Stream page: serves stream page
- CLI user → Companion CLI: runs
- Companion CLI → Icecast stream: fetches audio
- Companion CLI → Paired sessions: sends paired controls
- Paired sessions → Companion CLI: delivers controls
- Audio runtime → Icecast stream: streams audio
- Liquidsoap → Icecast stream: provides stream
- Browser pairing → Paired sessions: pairs client