
Mobile
KeepBerry Mobile App
A native-feeling experience for iOS and Android: messaging, calling, groups, stories and wallet, with offline caching and background push.
The KeepBerry Ecosystem
Four independently shippable engineering projects, running around one communication core. The clients own the experience, the console owns governance, the backend owns real time and data consistency.

Mobile
A native-feeling experience for iOS and Android: messaging, calling, groups, stories and wallet, with offline caching and background push.

Desktop
A full client redesigned for large screens and keyboards, backed by a local database, with multi-window support and dual themes.
KeepBerry

Admin
The operations centre: user and group management, communication analytics, content moderation, wallet finance and live monitoring.
Backend
A multi-tenant backend: REST API, Socket.IO realtime cluster, LiveKit calling, push delivery, object storage and CDN.
Mobile
The KeepBerry mobile app is built with Flutter, sharing one codebase and one experience across iOS and Android — from everyday messaging through to calling and the wallet.
Text, voice notes, images, video and documents, with delivery and read state, drafts and cross-device synchronisation.
One-to-one audio and video calls over LiveKit, with full-screen incoming call UI, system call screens and call history.
Group chats, friend requests, join requests, contact aliases and chat folders — relationship state resolved server-side.
Balance, top-up requests, red-envelope sending and claim history, with multi-currency support.
A local Isar database caches conversations and messages, so the app stays usable on weak networks and syncs incrementally on reconnect.
Dual FCM and APNs delivery including VoIP push, call foreground services and rich notifications.



Desktop
The desktop app is designed independently for large screens: a three-pane workspace, keyboard-first navigation, a local database, and native builds for Windows and macOS.

Light theme

Dark theme
Navigation rail, conversation list and chat pane side by side, with search, a chat info panel and detachable chat windows.
Drift (SQLite) storage keeps conversations, messages, users, stories and call logs available offline.
A full design-token system keeps both themes consistent across every surface, and can follow the system setting.
Window management, detached windows, drag-and-drop file sending, launch at startup and system-level local notifications.
LiveKit calling, incoming-call dialogs, voice recording and libmpv-backed desktop video playback.
Chinese, English and French interfaces are fully covered, switching instantly.

Desktop incoming call
Admin Console
The KeepBerry control console is the operations hub: from users and groups through to call quality, content moderation and money movement — all in one interface.



User growth, online counts, message and transaction trends across 7-day, 30-day, 90-day and 1-year windows.
Call volume, audio-versus-video split, duration distribution, success rate, peak-usage heatmap and most active users.
User profiles, internal accounts, group management, report handling, bans and the appeals workflow.
Filter users by criteria, save reusable segments, then send announcements or create chat groups from them.
Sensitive-word lists, chat management, the report queue and audit logging — every admin action is traceable.
Wallet configuration, top-up approvals, red-envelope history, payment channels and transaction records.
Backend & Infrastructure
The KeepBerry API is the single source of truth for every client. It isolates data per tenant, distributes state through a realtime cluster, and carries calling, push, media and money in one place.
A central store holds tenant registration and indexing; each tenant owns a separate business database. Tokens are issued per tenant, and cross-tenant access is rejected at the auth layer.
Socket.IO scales horizontally behind a Redis adapter, so messages, presence, typing state and call signalling broadcast reliably across instances.
Room tokens are issued through the LiveKit server SDK, while the backend records call sessions and participant logs for console analytics.
Firebase Cloud Messaging and APNs — including VoIP push — deliver per device token and can wake the app for incoming calls.
S3-compatible object storage carries images, audio, video and documents, served through a CDN and cached locally by each client.
A sync-event model with cursors drives incremental client pulls, keeping conversation state eventually consistent across every surface.
Capabilities
Every capability below is implemented in the repositories and running on real clients.
Text, emoji, voice notes, images, video, documents and link previews, with replies, forwarding and reactions.
One-to-one audio and video calling, incoming-call screens, call history and in-call controls.
Group creation and management, member permissions, join requests, public and private groups.
Publishing and viewing time-limited stories, with story management available in the console.
Online heartbeats, last-seen, delivery and read receipts, and typing indicators.
Balance, top-up, transaction history and red envelopes, with multi-currency support.
Friend requests, blocking, contact aliases and nicknames — relationship state resolved server-side.
System announcements, platform broadcasts, in-app notifications and cross-platform push.
Signed share links, deep-link routing and invite codes that open directly into the app.
Chinese, English and French interfaces, sharing one translation structure across all clients.
Conversation, user and message search, with a dedicated in-chat search view on desktop.
Local-first storage with background sync, so the app stays usable on a poor connection and catches up when it returns.
Security & Reliability
Everything below is implemented. For safety reasons this page shows no keys, endpoint details or internal configuration.
JWTs are bound to a tenant audience — a token issued for tenant A cannot reach tenant B data.
TOTP-based 2FA with single-use recovery codes; recovery codes are stored only as hashes.
Super administrators and tenant administrators are separated, with dedicated guard middleware on admin routes.
Sensitive fields are encrypted server-side with AES-256-GCM.
Administrative actions are written to an audit log model, so key operations trace back to an operator and a timestamp.
Access tokens and device tokens are managed separately, supporting logout, login logs and per-device push control.
Technology
Every technology listed is in actual use in the current repositories.
From a single communication app to an ecosystem spanning mobile, desktop, an admin console and backend infrastructure — KeepBerry can now be told as a platform story, end to end.