Skip to content
Ver. 0.0.4
Personal Project 2025
View Project →

Flowline

A distributed systems learning project — building a real-time chat app from scratch.
TypeScriptEffectBunPostgreSQL

Flowline is a Discord-like chat application designed to scale from 1 to 10,000+ concurrent users. It's a deliberate, public study in distributed systems and Effect-ts, built to understand why patterns like consensus, sharding, and pub/sub exist, and to exercise Effect in a complex real-world domain.

Approach

Start simple, add complexity only when measured load demands it. Phases 1–13 cover the single-server MVP (WebSockets, auth, messaging, channels, presence, threads, uploads). Phase 14 stress-tests to 10k users to expose real bottlenecks. Phases 15+ introduce Redis pub/sub, message queues, and distributed patterns — each justified by a concrete failure, not speculation.

Stack

Bun · Effect-ts · PostgreSQL · SvelteKit · TypeScript monorepo

What makes it different

Every non-trivial decision is documented: a decision log captures alternatives considered and trade-offs accepted, and each phase ends with a written retrospective. The goal is a visible trail of reasoning that compounds over time — useful for future me, and honest about the mistakes along the way.

Status

See progress in the GitHub repository.

github.com/RATIU5/flowline

More Work

← All Work