Answer a readiness probe, and run two pods
This deployment had no readiness probe, so a pod counted as Ready the instant its container process started. With maxUnavailable 0 Kubernetes reads that as "the...
Put asking for control on the screen it would control
The feature worked, and almost nobody would have found it. The only way to ask was an item in a thumbnail's overflow menu β hover the right person in the filmst...
The control helper installs itself, so there is one file to get
Setting the helper up meant downloading two files, opening a terminal and running a script with sudo. That is a flow people abandon, and an abandoned install is...
Hand mouse and keyboard control of a shared screen to someone else
Wires the fork's dormant remote-control feature to the companion agent, and fixes the things that would have made it unusable even once it was reachable. The r...
A companion agent that can actually move the remote mouse
The fork already carries Meet's whole remote-control feature, and none of it has ever been reachable. The receiver half waits on a PostMessage transport for a h...
Resolve the lobby's org from the room or ?org=, not the host
/api/config and /api/branding read the organization from the hostname. On the shared meet host that is the platform organization for every tenant, so each of th...
Paint the org logo as a solid silhouette when asked
An org can now choose a solid colour for the pre-meeting logo, set from kamo-internal's Branding settings and applied here. This side never sees the token voca...
Org background slideshow, and honour the shuffle setting
The welcome page already rotated the org's themed backgrounds; it now reads backgroundOrder from the same config.json so an org that picked shuffle gets a fresh...
Require-password gate for anonymous guests (members bypass)
When an org enables requirePassword, anonymous link visitors must enter the room password; authenticated members are never prompted. - sidecar: no anonymousdom...
Auto-record + recording watermark from org settings
overrides.js loadOrgMeetSettings now, when recording is enabled: - watermarkOnRecordings β shows an org "REC" watermark overlay while a recording is active (J...
Dynamic title and description from org config.json
Inline JS in title.html derives the themed CDN path from the hostname, fetches config.json, and sets the title to "Meets - {siteNameShort}" and description meta...
Add Powered by KamoCRM backlink to /welcome landing page
The actual meet.{domain} landing page is welcome/index.html β a static HTML page served directly by nginx that handles the pre-auth flow (capture display name /...
Add subtle KamoCRM backlink to welcome and in-meeting UI
Mirrors the PoweredByKamo pattern shipped in kamo-login and kamo-register to the KamoMeet (Meet fork) web surfaces. Each client's KamoMeet deployment serves on ...
Add public webinar cancellation page with org-branded styling
Adds /cancel?inv={token} page for public attendees to cancel webinar registrations. Includes sidecar API proxy endpoints, nginx routing, and a fully branded can...
Derive display name from first/last name and construct avatar URL from session
Use memberFirstName and memberLastName from *** session to build proper display names instead of falling back to usernameAlias. Construct full avatar URL from t...
Integrate org-level settings into Meet config and branding
Sidecar fetches OrgMeetConfig from backend and maps all settings: - Audio/video mute defaults - Lobby/waiting room mode - Guest access and display name requirem...
Preserve original room name (no capitalization/spaces), add copyable meeting URL field
1. Disabled safeStartCase() which was converting 'myroom123' to 'Myroom 123' with capitalization and random spaces. Room names now display exactly as ente...
Restyle settings dialog with glassmorphism design and horizontal tab bar
Full settings modal with Devices/Sounds/More/Shortcuts tabs, display name on main card, primary color overlay
- Display name is now a required field on the main card above the room input, not in settings. Users must enter their name before joining. - Settings modal ha...
Validate room existence before anonymous join, add settings modal with device selection
Anonymous users must enter a valid meeting room name - the welcome page checks /api/meet/exists/{roomName} before allowing join. If the meeting doesn't exist or...
Add custom welcome page with org-themed backgrounds, glassmorphism card, and room name input
Replaces Meet's default welcome screen with a custom landing page that: - Loads org backgrounds from MinIO theme with carousel transitions - Shows org logo and ...
Add K8s manifests for KamoMeet deployment, service, and Traefik routing
Add nginx config with BOSH/WS proxy, sidecar API routing, and SPA fallback
Add dynamic org branding system with MinIO theme resolution
Loads org logos, CSS color variables, favicon, and site name from MinIO-hosted theme assets at runtime via branding/overrides.js, and wires the branding data in...
Strip all Meet branding from user-visible UI
Remove static Meet branding to prepare for dynamic org-based theming: - Replace "Meet Meet" app name with generic "Meeting" in configs - Clear Meet watermark, l...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.