Production ClojureDart for iOS, Android, and macOS
Burin Choomnuan
Over the past twelve months a tiny team has used ClojureDart (Clojure compiled to Dart, running on Flutter) to build more than a dozen production apps for iOS, Android, and macOS, most deployed internally and several bound for the app stores. The apps include a document scanner with on-device OpenCV, a transit tracker with realtime GTFS, a venture-capital deck triager with on-device LLM evaluation, a notes app with on-device sentence embeddings, a marketplace, an encyclopedia, a financial charting app, and several more. This experience report distills the patterns that survived the trip from prototype to production: a single-atom-plus-:watch architecture that replaces Riverpod and BLoC, a curated catalog of cljd-flutter pitfalls (each one a lost afternoon you don't have to spend), and a reusable scaffold for new apps. Attendees will leave with a grounded view of where ClojureDart is strong, where it still has sharp edges, and a checklist of decisions to make on day one.
Burin Choomnuan
With over two decades of experience in software development, Burin Choomnuan has evolved alongside the technology landscape, moving from Java to Ruby to Clojure, then on to ClojureScript, and most recently to ClojureDart for mobile and desktop work. Over the past year he has shipped a fleet of production ClojureDart apps for iOS, Android, and macOS, alongside Clojure backends and ClojureScript single-page apps that share a single mental model end-to-end.
His current interests are the convergence of functional programming with AI-assisted development, building maintainable agentic workflows in Clojure, and sharing the patterns and pitfalls a tiny team learns by shipping at pace. When he isn't coding, he's writing experience reports for fellow developers who appreciate the art of elegant, productive engineering.