Ermine#
Ermine is a refined, Discord-inspired web client for stoat.chat.
It prioritizes clarity, hierarchy, and a cleaner interaction model while preserving core Stoat/Revolt functionality.
This project is experimental and under active development.
Interface#
Structured Layout
- Space rail
- Channel sidebar
- Timeline + composer
- Member panel
Interaction Model
- Reduced visual noise
- Sharper spacing and hierarchy
- Controlled frost-toned color system
App Chrome Adjustments
- “Preferences” instead of “User Settings”
- “Direct” instead of “Friends”
- “Live” instead of “Active Now”
Familiar structure. Cleaner execution.
Functionality#
Core Stoat/Revolt capabilities:
- Session login (credentials or token)
- API root configuration discovery
- Realtime events over WebSocket
- Message sending and timeline updates
- Profile popout modal
@melanding experience
Configuration#
Default endpoints:
API: https://api.stoat.chat
WebSocket: wss://stoat.chat/events
CDN: https://autumn.revolt.chat
Overrides are available under:
Advanced connection configuration
Local Development#
Entry point:
src/App.jsx
Run using your existing React + Tailwind setup.
Deployment (Vercel)#
Includes vercel.json SPA rewrite support so deep links resolve to /.
Optional environment variables:
VITE_STOAT_API_URL
VITE_STOAT_WS_URL
VITE_STOAT_CDN_URL
Values are injected at build time. Manual overrides remain available from the login screen.
Privacy#
- Session continuity is maintained using browser cookies:
ermine_session_tokenermine_user_idermine_api_url
- Ermine does not store user content outside configured stoat.chat endpoints.
- Network communication is limited to selected API, WebSocket, and CDN endpoints.
- See
privacy-policy.htmlfor the user-facing notice.
Direction#
Ermine is the composed, winter-coated interface layer for the stoat.chat ecosystem — familiar in structure, sharper in execution.
Stoat.chat, distilled.