SPChat is a complete real-time chat for web radio operators and communities. All features are included in every plan. A live demo instance is available at chat.spchat.eu.
Chat and Messages
Real-Time via Server-Sent Events
Server-Sent Events deliver new messages directly. HTTP polling is available as a fallback. SPChat does not require a WebSocket port, Node.js, or Redis.
Private Messages and Inbox
Direct messages between users with a separate inbox. Chat windows can be docked, similar to classic messengers. Permission-controlled via group settings.
Text Formatting
- Font size selectable up to 40 px
- Bold, Italic, Code, Blockquote, Links, Images
- Over 150 CSS text animations for individual messages
Reactions and Emojis
- Emoji reactions on individual messages
- Full Microsoft Fluent Emoji set, locally bundled
- Emoji Mixer: combine existing emojis into new variants and insert them as images
- GIPHY integration for quick GIF search (server-side proxy, no direct browser requests to third parties)
Dictation
Speech is converted to text via the Web Speech API. Microphone permission denied? Clear toast-based error feedback.
Multiplayer Dice Game
An integrated minigame for chat rooms: start a dice round with a countdown. The player with the highest roll wins and is celebrated with an overlay at the end of the round.
Read Receipts and Typing Indicator
- Read receipts with avatar display (configurable per group)
- Real-time typing indicator in rooms
- Link previews: automatic preview tile for posted URLs
Edit and Delete Messages
Users can edit or delete their own messages. Edited messages show a full edit history. Admins can pin messages.
Invisible Mode
Users can hide their online status. Disabled by default, configurable per group.
Audio, Video and Media
WebRTC: Video and Audio Chat
SPChat includes full WebRTC functionality for video and audio chat directly in the browser. No external software, no plugin required. WebRTC can be disabled entirely via the admin panel if needed.
STUN and TURN Servers
Custom STUN and TURN servers can be configured for improved connection quality.
WebRTC Connection Diagnostics
Detailed troubleshooting for voice and video connections. A diagnostic logger saves connection status locally to a rotating log file (webrtc.log) for quick admin review.
Radio Streams in Chat
Administrators define streams that users can play directly within the chat interface. The radio player is optimized for mobile devices too.
Media Uploads
- Images, audio files, generic files
- Server-side MIME validation
- Stored outside the webroot (no direct browser access)
- Local storage or S3-compatible (AWS S3, Cloudflare R2, MinIO)
Performance Display
An FPS display can be activated for video connections when needed.
User Groups and Permissions
More Than 30 Granular Permissions per Group
Instead of rigid roles, SPChat uses freely configurable user groups. Per group, you can control among other things:
- Upload files
- Use text animations
- Use the dictation function
- Create temporary rooms
- Clear chat history
- Send private messages
- Edit or delete own and others’ messages
- Report anonymously
- Appear in read receipts
- Use invisible mode
Dynamic Ranks and Badges
Each group can have a custom rank with its own icon, color, and short name. These badges are shown in the chat and the user list.
Member Management
Group membership assignment and management is handled entirely through a graphical interface in the admin panel.
Rooms
- Permanent rooms: created and managed by admin (e.g. “Requests”, “Off-Topic”)
- Temporary rooms: user-created with configurable lifetime
- Password protection per room
Security
- Argon2id password hashing
- 2FA via TOTP (Google Authenticator, Aegis, Authy, etc.)
- CSRF tokens on every state-changing operation
- Content Security Policy (configurable)
- Rate limiting per IP for authentication endpoints
- Optional Cloudflare Turnstile on registration
- XSS protection system-wide
- Single active session: each account can only have one active session. Logging in on a new device terminates the old session immediately.
- Auto-logout on inactivity: configurable timeout
- DoS protection against array manipulation attacks
- GIPHY endpoint hardened against SSRF/LFI
- HTTP polling fallback: if SSE is unavailable, the chat switches automatically to asynchronous HTTP polling
Admin Panel
Dynamic Control Panel
The admin panel opens as a window directly from within the chat. No separate tab required.
Visual Page Builder & CMS (GrapesJS)
Design and edit custom pages and landing pages directly in the admin panel with the integrated GrapesJS drag-and-drop editor. No coding required.
Module & Addon Catalog
Extend SPChat with additional features. The admin panel features a catalog from which addons can be downloaded asynchronously, verified, and installed with a single click.
Dashboard
Real-time stats: users, messages (today/yesterday), open reports, rooms, active IP bans, storage usage, database size, cron status.
Moderation
- Ban (temporary or permanent, automatic IP ban included)
- Kick (immediate)
- IP ban (manual or automatic)
- Word filter (block or replace, logged in audit log)
- Spam protection: room and message limits to prevent overload and spam
- Report system (anonymous reporting via group permission)
Configuration
- All settings editable in the admin panel
- Custom CSS and JS editable directly in browser
- Config backup automatic (up to 10 versions)
- SMTP configuration (password reset, notifications)
- S3 or local storage selectable
- STUN/TURN servers for WebRTC configurable
- WebRTC can be disabled entirely if needed
- Design tab: redesigned interface with tabs (not accordions), premium variables for deep visual customization
System Data Tab
Sensitive credentials, app keys and secrets stored securely in a read-protected tab, quickly accessible.
Cronjob Management
Built-in background jobs for system maintenance. Logs and retention periods configurable directly in the admin panel.
Audit Log
Filterable log of all admin actions. Export as CSV or Excel.
Scheduled Messages
Automated messages at planned times (cron-driven). Useful for recurring announcements during web radio broadcasts.
Online Status
Improved online status tracking with a precise “last seen X ago” timestamp.
Interface
Responsive Design
The interface adapts to any screen size. Sidebars can be collapsed. Mobile-optimized reactions, dropdown menus, and the radio player.
Dark Mode and Light Mode
The theme can be switched between dark and light.
Accessibility
- WAI-ARIA tags for screen readers
- Easy keyboard navigation
- Dictation via Web Speech API
Personalization
- Configurable links on the login page
- Freely adjustable notification sounds
Languages and Localization
The entire frontend and backend are based on native language files. German and English are integrated and synchronized. Additional languages can be added by providing new language files.
Website, Streaming and Custom Design
SPChat runs as a standalone web application. Its chat URL connects it to your website or streaming software without a separate native plugin.
Connect SPChat to Your Website
Place a clear chat link in the navigation, player or broadcast page. An iframe can be used when the frame policy of your SPChat installation explicitly allows your website. The standalone chat URL remains the default route.
Use SPChat as an OBS Browser Source
OBS Studio can load the chat URL as a browser source. Set the viewport size and crop in OBS. Its Custom CSS field can hide navigation and input controls that are not needed in the stream overlay.
Moderate During a Broadcast
Moderators can kick users, add temporary or permanent bans, set IP bans and handle reports. The word filter and spam protection follow your configuration. Admin actions are recorded in the filterable audit log.
Match Your Own Branding With Custom CSS
Adjust colors, spacing and interface elements with custom CSS. CSS and optional JavaScript are edited in the admin area. Configuration backups retain up to ten earlier versions.
Deployment and Licensing
Web Installer
Browser-guided installation: PHP check, database setup, migrations, admin account creation. No SSH required.
Download After Release
Once available, SPChat is provided as a ZIP package in the STREAMPANEL customer center. Download, upload via FTP, run the installer.
Domain License
The license is bound to your domain. If you change domains, the license can be updated at any time in the STREAMPANEL customer center at no extra cost.
Shared Hosting
PHP 8.2+ and MySQL are sufficient. No VPS, no root access, no Redis, no Node.js.
Updates
Updates are available for download in the customer center.