Skip to main content

12 posts tagged with "architecture"

View All Tags

Bilingual by Design

· 8 min read
Dave Rapin
Dave Rapin
Founder @ Curling IO
Update: October 1, 2026

This post reflects our earlier Gleam exploration for Curling IO v3. We ultimately chose Rust and TypeScript. Why We Chose Rust for Version 3 explains that decision and what we kept from the exploration.

About this post

This is a technical architecture note about localization in Curling IO v3. It is written for software engineers and goes deeper into Fluent, compile-time translation checks, bilingual content modeling, and language routing than our usual product posts.

English and French support has to be boring. A club in Quebec shouldn't find a half-translated registration page, and an organization running national competitions shouldn't need a support ticket to catch a missing label.

Curling IO has been bilingual since Version 2, but after a decade of maintaining around 10,000 YAML translation keys, we've hit the limits of what that approach can catch: missing keys, missing translations, and unused keys that accumulate silently over time. Version 3 keeps the bilingual experience and makes more of those mistakes impossible to ship.

The Next Version of Curling IO

· 8 min read
Dave Rapin
Dave Rapin
Founder @ Curling IO
Update: October 1, 2026

This post reflects our earlier Gleam exploration for Curling IO v3. We ultimately chose Rust and TypeScript. Why We Chose Rust for Version 3 explains that decision and what we kept from the exploration.

About this post

This is an overview of the technical foundation explored for Curling IO v3. It is written for software engineers and others interested in application architecture, and goes deeper into Gleam, the BEAM, SQLite, hosting, and scaling than our usual product posts.

The next version of Curling IO should feel familiar: the same registrations, schedules, scoring, and club admin workflows, just faster and harder to break. The work is mostly under the surface, but the payoff is practical: fewer slowdowns at peak registration, better reliability during live events, and a platform we can keep improving for a long time.

This series explains what changes, what doesn't, and why we're making the bet.