Skip to main content
All projects
Personal projectCommunication · Real time

Cyclone

A full-stack community platform combining channels, direct messages, audio and video calls, presence, and screen sharing in a responsive experience.

Preview of Cyclone
Scope
An independent personal project designed as a public full-stack demonstration. Both the repository and the deployed application are available online.
My role and contribution
Product design, interface design, and full-stack developmentI scoped the product, modeled roles and permissions, built the responsive interface, and integrated the APIs, real-time data, and audio-video communication.
Main stack
Next.jsTypeScriptClerkSupabaseLiveKit

Case study

From context to design decisions

01

Context

Cyclone starts with a simple problem that is difficult to execute well: bringing text conversations and audio-video communication into one product without losing consistency across permissions and navigation. It is neither client work nor affiliated with Discord.

02

Challenge and constraints

Synchronize messages, presence, and media in real time while keeping identity, application data, and audio-video transport clearly separated.

03

Approach

I assigned each responsibility to the most suitable service: Clerk for identity, Next.js for APIs and access control, Supabase for data and private events, and LiveKit for media using short-lived server-generated tokens.

04

Decisions and tradeoffs

This separation keeps media traffic out of Next.js and makes responsibilities easier to understand. The tradeoff is coordinating several services, secrets, permissions, and connection states.

05

Observable outcome

The deployed version covers text and voice channels, direct conversations, webcam, screen sharing, roles, moderation, and responsive navigation. I do not claim usage metrics that have not been measured.

Key points

What the project demonstrates

Real time

Shared state

Messages, presence, and conversations update without reloads, with private channels aligned with each member’s permissions.

Architecture

Clear boundaries

Authentication, data, and media transport remain decoupled so that each layer has a focused responsibility.

Product

A complete experience

The journey covers creating a space, chatting, moderation, and moving naturally from text to audio or video.

Critical perspective

Limitations and next steps

Current limitation

Cyclone remains a demonstration: automated test coverage needs expanding, rate limiting is stored in memory, and some presence states are refreshed periodically.

Next step

Add automated multi-account user journeys and move rate limiting to shared storage before considering distributed load.