GOLD Messenger Case Study: Secure Messenger for Video Calls
GOLD MESSENGER![]()
Brief description
An isolated corporate messenger with invite-only access — the admin adds profiles manually; inside is a full feature set from chat to group video calls.Task
Build a closed, secure messenger for communication inside a restricted environment, where access is controlled by an administrator and the feature set covers text, voice, and video communication.About the project
We built an isolated messenger with controlled access: new participants do not register themselves — the administrator creates and issues the profile. Inside we implemented a full messenger feature set, from direct and group chats to group video calls. The project runs on the client’s private server.Business benefits
•FULL CONTROL OVER COMMUNICATION ACCESS — ONLY PEOPLE ADDED BY THE ADMIN ARE IN THE SYSTEM: EXTERNAL REGISTRATION IS IMPOSSIBLE, OUTSIDERS ARE EXCLUDED
•LOWER LEAK RISK THROUGH PUBLIC MESSENGERS — TEAM CHAT, FILES, AND CALLS STAY INSIDE THE CLIENT’S CLOSED PERIMETER
•UP TO 70% DEVELOPMENT BUDGET SAVINGS — YOU PAY FOR CUSTOMIZATION AND ROLLOUT; THE MESSENGER’S BASE INFRASTRUCTURE IS ALREADY MARKET-PROVEN
Features
•Isolated messenger with controlled entry
•Self-registration for new users is disabled
•User profiles are created by the administrator
•The administrator grants system access to the user
•Only pre-added participants get messenger access
•Ability to limit the user circle inside the closed perimeter
•The project is deployed on the client’s private server
•Create new user profiles via the admin panel
•Assign login and credentials
•Manage user activity
•Disable or block a user
•Edit profile data
•Control the system participant list
•Manage access rights inside the messenger
•Remove users from the closed perimeter
•Personal user page
•Name, avatar, and basic information
•Edit profile data
•Profile photo management
•Privacy settings inside the system
•Private messaging between users
•Real-time text messages
•Continue a previously started dialogue
•Message delivery status
•Message read status
•Typing indicator
•Clear dialogue history
•Pin important messages in chat
•Video calls
•Audio calls
•Message reactions
•Reply to a message
•Create a discussion thread for a specific message
•Voice messages
•Create a poll
•Share location in three formats (my position on the map, live location, map marker)
•Send stickers
•Hide media file content (video and images)
•Upload files from chat (images, voice, etc.)
•Forwarded messages
•Add chat extensions
•Report messages
•Add a chat to favorites
•Create group chats
•Add participants to a group
•Remove participants from a group
•Assign a group moderator
•Manage group name and avatar, group topic, room addresses (public and local)
•Messaging between group participants
•Participant list display
•Message history inside the group
•Pin important messages
•Notification settings per group chat
•Leave a group
•Limit participant actions inside a group
•Flexible capability settings for users with different roles
•Ping a specific user by username
•Send text messages
•Edit sent messages
•Delete messages
•Reply to a specific message
•Forward messages between chats
•Copy message text
•Pin messages
•Send time display
•Message author display
•Send, delivery, and read statuses
•Links inside messages
•Emoji reactions
•Search messages inside a chat
•Send files in direct and group chats
•Send images
•Send documents
•Send archives
•Image preview display
•Download received files
•Store attachments in chat history
•File availability only for participants of a specific chat
•Restrict attachment access outside the closed system
•Separate view of sent images
•List of files shared inside a chat
•Quick jump to media from chat history
•Attachment structure preserved per dialogue
•Browse previously sent materials without manually searching the whole thread
•Start a group video call inside the messenger
•Connect multiple participants to one call
•Enable and disable the camera
•Enable and disable the microphone during a call
•Display call participants
•Leave a call
•Video calls operate inside the system’s closed perimeter
•Use calls for work meetings and internal discussions
•Notifications for new direct messages
•Notifications for new group chat messages
•Unread message count
•Notifications when added to a group
•Notifications when a video call starts
•Notification settings per chat
•Disable notifications for a selected dialogue
•New events shown inside the messenger UI
•Search users inside the closed system
•Search direct chats
•Search group chats
•Search group participants
•Quick jump to the needed dialogue
•Active chats list
•Separate direct and group conversations
•Closed architecture without public registration
•Access only for users created by the administrator
•Project hosted on the client’s private server
•Data stored inside the client’s infrastructure
•Chat access limited to participants of a specific chat
•Protect direct and group messages from public access
•User control via the admin panel
•Ability to promptly revoke a participant’s access
•Deploy the messenger on the client’s server
•Configure the server side for closed-mode use
•Store user data, messages, and files on the client’s infrastructure
•Stable operation of direct and group chats
•Video calls configured inside a dedicated server environment
•Prepare the system for further user-count scaling
•Voice messages were not part of the delivered feature set
•Circle-style video messages were not part of the delivered feature set
•The main focus was closed access, text communication, group chats, files, and video calls
Technology stack
•React 19 + TypeScript — modern typed frontend for a complex real-time UI
•Matrix SDK — real-time communication on the Matrix protocol
•End-to-End Encryption — protected messages and secure communication
•Webpack 5 + Nx Monorepo — scalable build and large frontend codebase management
•Jest + Playwright — automated UI, logic, and user-flow testing
•Swift — primary development language
•SwiftUI — modern declarative UI (used on new screens alongside UIKit)
•UIKit — base UI framework
•MVVM Architecture — app architecture
•Combine — reactive data handling
•Swift Package Manager (SPM) — dependency management
•End-to-End Encryption — message encryption (Olm/Megolm)
•VoIP & Push Notifications — voice calls and push notifications
•Kotlin — modern Android development language
•Jetpack Compose — declarative UI framework
•MVVM — separation of logic, data, and UI
•Kotlin Coroutines — async work without blocking the UI
•Kotlin Flow — reactive data and state streams
•Appyx Navigation — modern screen navigation
•Gradle Kotlin DSL — build and dependency tooling
•End-to-End Encryption — encryption for messages and calls
•Synapse (Python 3 + Twisted) — Matrix homeserver, messenger core: messages, rooms, users, federation, and E2E encryption
•Matrix — open decentralized messaging protocol
•coturn — TURN/STUN server for audio and video calls (NAT traversal for WebRTC), with TLS and shared-secret auth
•Ketesa (React + TypeScript) — homeserver admin web panel: users, rooms, media
•PostgreSQL 16 — primary Synapse database (messages, room state, accounts)
•Docker / Docker Compose — containerization and orchestration of all services
•Nginx — reverse proxy: TLS termination, proxying client and federation traffic to Synapse and the admin panel
•Let's Encrypt — TLS certificates (used by nginx and coturn)
Working with the client
*Important: this is not project delivery work — it is work with the client specifically, and it is not in the estimate or commercial proposal; it is what we do to raise the product’s chance of successWe make the client stronger — and here is what that looks likeIn this project we deliberately went far beyond the statement of work because the client’s business security essentially depended on the solution we built. Our goal was for the client to stop depending on contractors for key questions. We immersed them in product logic, unpacked the business ideology, and helped formulate meanings that resonate with the audience. Then — an honest review of all pitfalls, from legal nuances to user behavioral traps. A separate track covered working marketing steps that are relevant right now, without fluff or generic advice. The result: not just a finished product, but an owner who knows exactly what they are doing, and a team that understands how to get the most from the platform.Our goal is not just development — it is our client’s success.