Voice & Calls
Voice Channels
WebRTC peer-to-peer voice built into nodes. Per-peer speaking indicators light up avatars in real time. Individual mic and speaker device selection, mute toggle, and live call timer.
DM Voice Calls
1:1 calls direct from any DM. Incoming ringtone, accept/decline modal, and automatic hang-up detection. Completed calls show duration in chat history; missed calls are clearly labeled.
Screen Share + System Audio
Share any window or full desktop with system or tab audio capture โ no relay servers, same peer-to-peer path. Auto picture-in-picture when navigating away. Sharer sees their own greyed preview.
Camera in Voice Channels
Turn on your camera in any voice channel. Video tiles fill the space and scale automatically by participant count. Camera and screen share can run simultaneously โ camera shows as a PiP bubble in your tile.
Stream Focus Mode
Click any camera or screen share stream to transform the layout โ the stream expands to a large main view with a scrollable participant strip along the bottom. Click the grid button to return.
Camera Device Selector
Pick which webcam to use directly from the voice settings drawer. Works on Windows and Mac, with graceful fallback if a selected device is unavailable.
AI Noise Suppression
RNNoise (WebAssembly) neural noise cancellation on every call by default. Per-user toggle. No additional infrastructure or subscription required.
STUN/TURN Relay
STUN for LAN connections, TURN relay for NAT traversal when needed. No dropped calls behind restrictive firewalls.
Persistent Call Bar
A call status bar sits above the user panel in both sidebars so you always know you're in a call, no matter where you navigate in the app.
Messaging
Real-Time Messaging
WebSocket chat with typing indicators, presence, message replies, edits, deletes, and unread message dividers.
Direct & Group Messages
1:1 DMs and group DMs up to 10 runners with optional names. History shows only from when you joined.
File & Image Attachments
Inline image previews and file attachments in both spaces and DMs. Upload limits configurable per instance.
Emoji Reactions
React to any message with standard or custom emoji. Live sync across all connected clients.
Markdown & Code Highlighting
Markdown rendering with syntax highlighting for code blocks. Bold, italic, inline code, and auto-linked URLs.
@Mentions & Notifications
Browser push notifications for @mentions and DMs with context copy (group name shown in group DM alerts). Sound notifications with per-user toggle.
Pins & Search
Pin important messages in any space. Search messages within a space or within a DM conversation.
GIF Search
Integrated Giphy GIF picker in every chat input โ channel and DM. Search or browse trending GIFs, save favorites with one click, and send inline. GIFs render directly in chat without opening a link.
Rich DM Notifications
In-app DM toast notifications show the sender's avatar, display name, and a message preview. Click anywhere on the toast to jump straight to the conversation.
Inline Polls
Create polls directly in any space. Runners vote without leaving chat โ results update live via WebSocket as votes come in. No bots, no third-party integrations required.
Message Edit History
Every version of an edited message is stored. Click "(edited)" on any message to see the full revision history with timestamps.
DM Read Receipts
Opt-in read receipts in DMs show when your message was seen. Configurable in Privacy settings โ you control whether others can see when you've read their messages.
Custom Nicknames
Give any DM contact a private nickname โ only you see it. Useful for distinguishing people with similar usernames or just how you think of them.
Message Bookmarks
Bookmark any message from the overflow menu and access all your bookmarks from the panel. Works across spaces and DMs. Private to you.
Message Forwarding
Forward any message to another space or DM with a preview and attribution. Useful for sharing announcements or cross-posting between communities.
DM Message Requests
Messages from runners you haven't talked to before land in a requests queue โ accept or decline before they appear in your inbox. No surprise cold messages.
Scheduled Messages
Write a message and pick exactly when it sends. Useful for announcements, reminders, or posting across time zones without staying up late.
Message Drafts
Drafts save automatically as you type and sync across all your devices. Switch spaces or close the app โ your draft is waiting when you come back.
Advanced Search Filters
Filter message search by sender, date range (before/after), and whether the message contains a file. Combine filters to find anything instantly.
Jump to Message
Click any reply quote to jump directly to the original message โ even if it's hundreds of messages up. Loads history backwards automatically and flashes the target message.
Thread Inbox
See every thread you've participated in across all Spaces in one place โ author, channel, timestamp, reply count, and message preview. Never lose track of a conversation.
Reaction Tooltips
Hover any reaction to see exactly who reacted โ names listed up to 3, then "+N more." No guessing who left that emoji.
Nodes & Community
Spaces & Categories
Space categories with drag-to-reorder. Spaces draggable between categories. Announcement spaces with restricted posting.
Private Spaces & Categories
Private channels with per-member invites, and private categories that hide entire sections from non-invited members.
Custom Roles
Granular permissions โ manage node, spaces, roles, kick/ban, private space access, message management. Role drag-to-reorder and custom color assignment.
Invite Links
Multiple invite links per node with optional labels. Usage count tracking โ see how many runners joined via each link.
Moderation Tools
Member kick, ban with reason, unban. Per-member role assignment. Message deletion by moderators.
Audit Log
Full per-node audit log with actor, action, and detail. Covers role changes, moderation actions, channel edits, and invite events.
Public Node Discovery
Opt-in public listing for nodes that want to be discoverable. Browse public nodes from the discover page.
Granular Permission System
~20 discrete per-role permissions including send_messages, manage_messages, kick_members, manage_channels, and more. Per-channel overwrites let you allow or deny any permission per role or per member for fine-grained control.
Channel Topics & @here
Set a topic on any Space โ shown in the chat header. Use @here to ping only the members currently online, without spamming everyone.
Slow Mode
Set a per-channel posting cooldown from 1 second to 6 hours. The input shows a live countdown and disables until the wait is over. Enforced server-side โ no client bypass.
Focus Mode
Toggle Focus Mode to dim every Space with no unread mentions. Cut through the noise and see only what actually needs your attention.
Node Wiki
Every Node gets a built-in markdown wiki. Create pages for rules, guides, FAQs, a roadmap โ anything your community needs. Editable by mods and owners, readable by all.
Activity Dashboard
Node owners get a built-in analytics panel โ message volume sparkline, active vs. lurker counts, top Spaces by message count, and most active members. Configurable for 7, 14, 30, or 90 days.
Identity & Customization
Custom Avatar & Banner
Upload a custom avatar with crop UI. Custom profile banner. Node icon and banner upload for community branding.
Username Color Picker
11 presets plus full custom hex color for your display name. No subscription required โ pick exactly the color you want.
Custom Emoji (GIF + PNG)
Upload up to 200 custom emoji per node โ static PNG or animated GIF. No boosts, no subscription.
Bio & Status
User bio and custom status messages visible on profile cards. Profile cards include a DM button for instant messaging.
Friends & Presence
Friend requests, a friends list with live online status, and instant DM access from any profile card.
Profile Cards
Rich profile cards with avatar glow ring (colored to your username color), custom nameplate background, bio, status, roles, and join date. Click the @username to copy it to clipboard.
Era Badges
// alpha and // beta era badges mark when runners first joined โ a permanent record of being early. All cosmetic, no privileges attached.
Federation
Cross-Instance DMs
Send and receive direct messages to runners on other V1stax instances. Ed25519 signed requests, shadow user model, and real-time delivery via WebSocket.
Federated Node Joining
Join nodes on remote instances via invite link. Your membership is tracked on your home instance โ no account switching required.
Remote Node Browsing
Browse channels and post messages to remote nodes directly from your home instance sidebar. Real-time message delivery pushed back to home via signed federation events.
Instance Admin Controls
Toggle federation on/off per instance, blocklist remote domains, and view a full federation activity log from the admin dashboard.
Administration & Security
Instance Admin Dashboard
Gated operator dashboard with node registry, per-node storage tracking, suspend/restore controls, instance-wide stats (uptime, connections, storage), and a full instance audit log.
User Management
Registered user list with online status and instance-level suspension controls. First registered user is automatically bootstrapped as instance admin.
Auth & Account Security
JWT 1-hour expiry with proactive refresh. Account recovery via encrypted recovery codes. Password reset via email link. No OAuth dependency.
Rate Limiting
Sliding-window in-memory rate limits on all auth and write endpoints โ login, register, uploads, DM creation, reactions, server management.
Automated Backups
Nightly SQLite backups with 7-day rotation. Magic-bytes file validation on uploads. No silent data loss.
Installable PWA
Add to home screen on iOS and Android. Full mobile layout with swipe navigation, keyboard-aware input, and safe-area inset support.
Webhooks & Bot Accounts
Create incoming webhooks to post from external services. Bot accounts use token auth with custom username and avatar overrides per message. No third-party bot platform required.