Description
CyberChat 2.2.0
Demo
See CyberChat in operation here, https://chat.tyclifford.com
Support
This purchase includes six months of support for installation, and priority response. Checkout Codebase Support for higher tier support such as enhancements.
https://git.tyclifford.com/snick/chat
—
CyberChat 2.2.0 is the current baseline release. It is a framework-free PHP, SQLite, JavaScript, and HTML5 chat application with text and voice messaging, configurable service tiers, Stripe subscriptions, Mailgun email verification, private archives, resilient queued polling, an administrator dashboard, and optional FFmpeg and MySQL/MariaDB integrations.
Current Capabilities
Chat and Interface
- Authenticated public chat with text and voice messages
- Reply-to controls for text and voice with configurable thread depth
- Chronological message reconciliation with the newest message at the bottom
- Single-worker cursor polling with catch-up batches, deduplication, request timeouts, retry backoff, and immediate wake-up after sending
- Poll recovery when the browser returns online or the tab becomes visible
- Configurable poll interval, timeout, maximum retry delay, batch size, and browser message limit
- Online-user count and connection-status indicator
- Configurable message and username length limits
- Automatic link detection for HTTP and HTTPS URLs
- Dark cyberpunk interface with neon green, blue, purple, pink, red, and orange accents
- Saved light-mode toggle
- Configurable application title, subtitle, and username color palette
- Embeddable frontend through
CyberChat.init()
Voice and Audio
- Browser microphone recording with a configurable duration and upload-size limit
- Per-tier recording and FFmpeg output bitrate from 48 to 320 kbps
- WebM/Opus recording by default on supported browsers
- MP4/AAC and AAC recording fallback for Safari and iPhone
- Upload validation for WebM, WAV, MP4/M4A, and AAC
- Recording preview with explicit send and discard controls
- Configurable automatic voice sending by tier
- Configurable recording-status indication by tier; entitled users can both send and see the
is recording...status - Configurable sequential playback of newly received voice clips by tier
- Saved per-browser automatic-play preference
- Automatic-play queue recovery and a user notice when browser autoplay policy blocks playback
- Custom cyberpunk audio player for chat and archives
- Audio play/pause, seek bar, elapsed and total time, mute control, playback animation, and single-active-player behavior
- MIME-aware
<source>elements and inline mobile playback - Voice duration, MIME type, source filename, and storage path tracking
- Administrator playback, filtering, manual archiving, deletion, file-size display, and missing-file indication
- Optional FFmpeg transcoding with a configurable executable, bitrate, timeout, output profile, and source fallback
- Recommended AAC-LC audio in an M4A container for iPhone, Safari, Android, and desktop playback
- Optional MP4 profile with a small H.264 baseline video track and AAC-LC audio
- Original browser recording retained when transcoding is disabled
- Existing voice files remain unchanged when transcoding settings are enabled or modified
Accounts and Security
- Registration with username and password; email is not required
- Case-insensitive unique usernames using letters, numbers, underscores, and hyphens
- Bcrypt password hashing with a configurable cost
- Successful logins automatically terminate the same user’s older session
- Administrator session locks that pin an account to one session token and IP until unlocked
- Optional IP binding for every active session
- Configurable session lifetime with HTTP-only, strict SameSite cookies and the secure flag under HTTPS
- Email verification by six-digit code or verification link
- Verified email required only before premium checkout
- Unique verified email addresses
- Mailgun-based email delivery through a reusable cURL mailer
- Tier-configurable email two-factor authentication
- Six-digit login challenges with expiration and attempt limits
- Registration/login-only internal arithmetic CAPTCHA
- Invisible registration/login honeypot fields that reject bot-like submissions
- Optional Google reCAPTCHA v2 checkbox or v3 score/action verification
- Account view for email verification, 2FA, plan details, billing, and current feature entitlements
- Tier-configurable custom username colors
- Administrator user creation, username/color/password editing, session termination, and deletion
- CSRF protection on administrator actions
Plans and Subscriptions
- Fully configurable plans, prices, currencies, billing intervals, descriptions, ordering, and active status
- Dashboard creation of additional tiers
- Per-tier feature toggles and archive retention
- Current configurable entitlements:
- Voice messages
- Voice bitrate
- Recording-status sending and viewing
- Automatic voice send
- Automatic voice play
- Custom username color
- Text archive retention
- Text export
- Voice archive access
- Voice export
- Email 2FA
- Stripe Price ID assignment per paid tier
- Stripe Checkout with promotion-code support
- Stripe Billing Portal for payment details and plan management
- Subscription cancellation at the end of the billing period
- Signed webhook verification and duplicate event protection
- Stripe customer, subscription, status, plan, billing-period end, and cancellation-state synchronization
- Paid statuses include active, trialing, and past due
- Global subscription visibility switch
- New plans and checkout are hidden when subscriptions are disabled
- Existing Stripe customers retain billing-management and cancellation access while new subscriptions are hidden
- Administrator tier overrides that grant features without payment and take precedence over Stripe
- Subscriber table showing email verification, effective plan, status, period end, cancellation state, and Stripe customer ID
Archives and Exports
- Automatic prior-day SQLite archival during chat activity
- Configurable archive path using year, month, and day placeholders
- Authenticated personal archive; users can access only their own messages
- Minimum text retention of 30 days, configurable upward by tier
- Search across live and archived personal messages
- Voice history included only when the tier has voice archive access
- JSON and CSV exports when the tier has text export access
- Voice URLs included in exports only when the tier has voice export access
- Administrator archive-day browser with user and message filters
- Administrator editing and deletion of archived messages
- Manual movement of live voice clips into the appropriate daily archive
- Whole-day archive deletion with associated voice-file cleanup
- Legacy public archive browser redirects to the authenticated personal archive
Administrator Dashboard
- Password-protected dashboard with configurable administrator password
- Overview totals for users, live messages, voice clips, daily messages, sessions, and active users
- Recent-message and recent-user panels
- Searchable live-message management by user, text, day, and message type
- Edit displayed sender and message text
- Individual, bulk, day-level, and full live-message deletion
- Dedicated voice library covering live and archived clips
- Voice filters by user, date, and source
- Voice playback, format, duration, file-size, archive, deletion, and missing-file status
- Archive list with message totals and database file sizes
- User creation and account editing
- Manual tier assignment without Stripe payment
- User kicking and deletion
- Active and expired session inspection
- Individual, expired, and all-session termination
- Plans, pricing, Stripe, Mailgun, FFmpeg, subscription visibility, and MySQL configuration
- Subscriber tracking and 30-day event totals
- Live
config.jsoneditor with JSON validation and formatting - Manual MySQL mirror action
Storage, Statistics, and Integration
- SQLite is the required primary database
- Automatic schema creation and additive migrations
- SQLite WAL mode and foreign-key enforcement
- Dynamic/searchable records stored in SQLite
- Runtime/service settings stored in dashboard-editable JSON
- Optional MySQL/MariaDB mirror of the main and archive SQLite databases
- Configurable automatic mirror interval and manual mirror execution
- Visitor and feature event tracking with salted IP hashes and truncated user agents
- Statistics can be disabled globally
- Apache and Nginx examples include protected internal paths and audio MIME mappings
- Diagnostic endpoint for PHP, SQLite, JSON configuration, storage permissions, and session support
Groups and group navigation have been removed from the application and plan system.
Requirements
- PHP 8.1 or newer
- PHP extensions:
pdo_sqlite,curl, andfileinfo - PHP functions
proc_openandproc_terminatewhen FFmpeg transcoding is enabled - A web server with HTTPS for production
- Write access to
db/,archive/,uploads/voice/, andconfig.json - A modern browser with
MediaRecorderfor voice recording - Optional: FFmpeg with AAC support
- Optional: FFmpeg compiled with
libx264for the H.264 profile - Optional: PDO MySQL for the MySQL/MariaDB mirror


Reviews
There are no reviews yet.