Jiss TechStart a project
Kalamna app icon

Case study · iOS social networking

Building a Real-Time Social Voice Platform

Kalamna is a group voice-chat app made by Jiss Tech — live rooms, drop-in hangouts, private messaging, follows, and communities built around spontaneous conversation. It's our own product, designed, engineered, and shipped to the Apple App Store entirely in-house.

Live on the App StoreGroup voice roomsCommunities & DMs

Business / product problem

Real-time voice is the hardest kind of consumer app.

A text app can hide a slow backend behind a spinner. A live voice room can't hide anything: audio has to arrive instantly, presence has to be coherent across clients, and dropped connections require clear recovery behavior. Every layer — mobile client, real-time infrastructure, social graph, notifications — has to work together at conversation speed.

Kalamna was also a full product exercise, not just an engineering one: onboarding, room discovery, hosting tools, moderation, App Store review, and the polish a consumer social app needs to feel inviting rather than empty.

Product overview

Voice rooms for real connection.

Live voice rooms

Anyone can open a room and talk. Audio has to feel instant — real-time voice is unforgiving of latency in a way text never is.

Drop-in hangouts

Spontaneous conversation over scheduled calls: see a live room, drop in, leave when you want. Presence has to update everywhere, immediately.

Follows & communities

A social graph — follows, hosted sessions, recurring groups — turns one-off conversations into communities that come back.

Private messaging

Direct messages alongside live audio, so conversations continue after the room closes.

Kalamna app promotion showing how to create a voice space
Kalamna app promotion showing a live group voice room
Kalamna app promotion showing drop-in hangouts
Kalamna app promotion showing a hosted group session

Verified architecture

A social product split across application, real-time, and media layers.

The deployed ProjectX generation uses Flutter clients and a React 17 admin against a TypeScript/Express backend. GraphQL carries the primary application contract, WebSockets carry room and presence events, and LiveKit handles voice media rather than forcing audio through the application API.

Rendering verified architecture…

Technology

The stack, without the résumé padding.

Every technology below is tied to the audited project source—not to a company-wide capability list.

Mobile

FlutterDartRiverpodGraphQL clientWebSocketsLiveKit

Admin

React 17TypeScriptApollo ClientGraphQL codegenLiveKit

Backend

Node.jsTypeScriptExpressGraphQLWebSocketsAdminJS

Data & events

PostgreSQLRedisNATSTransactional outbox

Media & delivery

LiveKitFirebase Cloud MessagingTelnyxKlipy

Application controls

HelmetCORSMorganZodJWTDocker Compose

Constraints

What the system had to respect

  • Voice media, room state, microphone state, chat, and presence have different latency and delivery requirements.
  • Mobile and admin clients need one coherent contract across profiles, rooms, feeds, moderation, economy, and games.
  • External services for voice, push, OTP, identity, storage, GIFs, and purchases must fail without collapsing unrelated product flows.

Solution

Engineering decisions that answer those constraints

  • Use GraphQL for the primary client contract and WebSockets for room, chat, microphone, and presence events.
  • Keep PostgreSQL as durable state, Redis as ephemeral infrastructure, and event publication behind a NATS-capable bus.
  • Issue media and integration credentials from backend-controlled utility routes instead of embedding privileged access in clients.
  • Treat moderation, bans, reports, device tokens, and purchase records as first-class backend domains.

Engineering challenges

Separate media from application state

LiveKit carries voice sessions while GraphQL and WebSockets handle durable application data and fast-changing room events.

Keep event delivery recoverable

A PostgreSQL-backed outbox records event state and retries publication through NATS, with an in-memory driver available for reduced local operation.

Unify a broad product domain

Profiles, follows, rooms, messages, feeds, reports, gifts, purchases, and games share one backend contract instead of becoming isolated feature silos.

Integrations

External systems with defined jobs

  • LiveKit for voice-room media and participant tokens.
  • Firebase Cloud Messaging for device push delivery.
  • Telnyx for SMS-based OTP delivery.
  • Google, Apple, and Facebook token verification for social sign-in.
  • Cloudflare R2-compatible object storage with backend/local fallback behavior.
  • Klipy GIF search and Apple/Google purchase-verification endpoints.

Reliability & security

Controls visible in the source

  • A transactional outbox keeps event retry state alongside durable application data.
  • The event bus can use NATS or a local in-memory driver without changing domain callers.
  • Helmet, CORS configuration, Zod validation, JWT checks, bans, reports, and moderation controls are present in the backend source.
  • Storage and notification modules expose explicit disabled/fallback behavior when provider configuration is unavailable.

Outcome

What the verified implementation demonstrates

Kalamna reached the Apple App Store as a working social voice product. The verified ProjectX implementation demonstrates end-to-end mobile delivery, a real-time social backend, voice infrastructure, administration, moderation, notifications, identity integrations, and store commerce in one product.

Lessons learned

  • Real-time voice works best when media transport and application state have separate, explicit responsibilities.
  • An event bus is more useful when durable retry state exists before an event leaves the database transaction boundary.
  • Complex social products need moderation, reporting, and operational tooling designed alongside user-facing features.

What this proves

We can carry a product from idea to the App Store.

Kalamna is the full arc — concept, design, real-time engineering, backend, App Store launch, and operation — executed by the same small team that does client work. When we build a mobile app or a web application for you, it's with the judgment that only comes from shipping and running your own.

Building something real-time or social?

Voice, presence, live data, communities — we've shipped it at consumer polish. Tell us what you have in mind.