Smile Cast

How Smile Cast works

Honest architecture notes: what runs where, what each plan enforces, and where the limits of a shared-hosting deployment really are.

The short version

Video and audio travel directly between participants using WebRTC. This application handles accounts, meetings, permissions, chat, presence and the developer API — and it relays the small negotiation messages browsers need to find each other.

Current media transport: mesh

Each browser connects straight to every other browser in the room (a mesh). This needs no extra server process, which is why it works on ordinary shared hosting. It is efficient for small rooms and we cap it at 8 participants; beyond that a media server is the right answer.

What it is made of

Four products, under one account, and each one is a working part of the application rather than a roadmap entry:

The rest of this page is how those parts actually run: which pieces are this application, which genuinely need a separate service, and where a limit is real.

What this application does

What needs a separate service

Two things genuinely cannot run on shared hosting, so they are separate, optional services rather than pretend features:

Networks and firewalls

WebRTC needs a route between participants. Most home and office networks work with a public STUN server alone. This installation has no TURN relay configured. On restrictive networks — some corporate and campus networks — a call may fail to connect, and the room will tell you that instead of pretending everyone left. Adding a TURN server (for example coturn) in the configuration fixes it.

Email and background jobs

cPanel gives every account a working mail path, so transactional email uses mail() by default, with an SMTP driver available. There is no queue worker: webhook retries and queued email are flushed opportunistically during normal page views, and an optional cron entry is documented if you want them drained on a schedule.