How we build
Circus.

Decisions, trade-offs, and honest notes from building a social platform from scratch. Architecture, tooling, and the reasoning behind the choices that matter.

Claude Code vs Cursor

Two different bets on what AI-assisted development looks like. Here's how we use both, what each one is actually good at, and how to think about the choice.

Read the full post →

Why Bun?

Every runtime decision is a bet. Here's why I chose Bun for every Circus backend service — and what it's been like running it.

Read the full post →

Why React Native?

I chose React Native for the Circus app. Here's the trade-off — cross-platform speed vs. native control — and what it looks like in practice.

Read the full post →

Choosing Infrastructure

Every infrastructure decision is a bet. Here's what I chose to run Circus on — and why microservices, PostgreSQL, and cloud-agnostic design beat the alternatives.

Read the full post →