Vladimir HlobchastyiSoftware Engineer
Back to work
Case Study

FlyChat

Realtime chat product built with React, TanStack Router/Query, Zustand, Supabase and WebSocket-driven messaging.

Role

Frontend Engineer

Focus

JWT auth, realtime dialogs, message sync, unread/read flow, online presence, role-based routes and mobile-first product structure.

Stack

React 19TypeScriptViteSupabaseWebSocketTailwind CSSTanStack RouterTanStack QueryZustandPWA
Preview & Screenshots
01 / 04
FlyChat — image 1
FlyChat — image 2
FlyChat — image 3
FlyChat — image 4

Overview

FlyChat is a realtime chat application built with React, Vite, Zustand, TanStack Router/Query, Supabase and a WebSocket backend. The product covers more than a single chat screen: authentication, dialogs, unread counts, typing states, online presence, profile management, role-based user/admin areas and PWA preparation for desktop and mobile usage.

Challenge

Realtime product UI has to stay understandable while data changes constantly. Dialog order, unread counters, typing signals, read states, presence and infinite message history all need to stay synchronized without breaking navigation or making the interface feel unstable on mobile and desktop.

Outcome

The result is a structured chat product with real application depth: JWT auth, synchronized messaging, role-aware routes, searchable user flows, profile editing and PWA-ready frontend foundations. It demonstrates product thinking and realtime state handling, not just isolated messenger visuals.

Responsibilities

03 areas
01

Realtime messaging

Implemented chat flows around WebSocket updates, typing states, unread counters, read events and synchronized message ordering.

02

Auth and app state

Worked with JWT auth, persisted Zustand state, TanStack Query data flow and route-level role separation for user and admin areas.

03

Product surfaces

Built dialogs, active chat, profile management and data-management screens in a mobile-first layout prepared for PWA installation.