Our Tech Stack Decisions for 2024
Why we standardized on Rust for backends, Astro for frontends, and Cloudflare for everything in between.
Every year we re-evaluate our stack. Not to chase trends, but to ensure we're using the best tools for the problems we solve. Here's where we landed for 2024.
Backend: Rust
We moved our performance-critical backends from Node.js to Rust. The reasons were pragmatic, not ideological:
- Memory safety without GC pauses — Our telemetry systems can't afford stop-the-world events
- Predictable performance — No JIT warmup, no surprise allocations
- Excellent WASM story — Compile once, deploy to Cloudflare Workers or the browser
- Cargo ecosystem — Dependency management that actually works reliably
Frontend: Astro
For content-heavy sites (like this one), Astro is the clear winner:
- Zero JS by default — Ship HTML, add interactivity only where needed
- Island architecture — React/Svelte/Vue components hydrate independently
- Content Collections — Type-safe content with Zod validation at build time
- 100/100 Lighthouse — Performance isn't an optimization, it's the default
Infrastructure: Cloudflare
We consolidated on Cloudflare's platform for deployment:
- Pages — Static hosting with instant global distribution
- Workers — Edge functions for dynamic operations
- D1 — SQLite at the edge for low-latency reads
- R2 — Object storage without egress fees
The Philosophy
Our stack choices share a common thread: predictability over magic. We prefer tools that are explicit about what they do, have small surface areas, and fail loudly rather than silently. This means more upfront learning but fewer surprises in production.
We'll revisit this in 2025, but so far this combination has served us well across all four of our shipped products.