This morning I've been drafting an experience report on using Roc. Since it's in markdown, I'm gonna stream it to here so that folks can comment.
During September 2026 I used my agent (Claude, mostly Opus 5) to "produce" over 100k lines of Roc code into my roc-apps repository, which is currently a hodgepodge of experimental code. We produced Roc code as follows:
As I write this, Roc has not even released version 0.10 of their software. None of my Roc code is used in anything that even remotely be called "production" yet. I am, however, confident enough in Roc's stability to publish my Roc demos here.
I filed four upstream issues during my recent Roc work. The most significant bug was something that I had my own Claude produce a PR to fix, and the fix was merged within a day or two. The second important issue was addressed by Richard himself. A third issue no longer reproduces. The fourth issue is still open, but it's a feature request, not a bug (see https://github.com/roc-lang/roc/issues/11334). I would say that Roc is more than reliable given its modest promise (not even on a numbered version yet).
One disclaimer is that I am not using Roc yet for any kind of mainstream business application or anything at scale. There are no CRUD apps in my repository, for example.
For a young programming language that targets both native platforms and the browser, a good litmus test is how easily you can write simple arcade games like Snake, Pong, and Breakout. More broadly, how well does it support browser-based canvas apps in general? I found that Roc is great for canvas apps. Even though arcade games have mutable state, it's very natural to implement core game logic and rendering logic as pure functions, and Roc is great for that. Luke Boswell's roc-ray repo had several apps that already worked as roc-ray native apps. I was able to create slightly modified versions of his programs that also ran inside the browser. I was also able to port my own Safari screensaver in the opposite direction: it was originally a non-Roc app, and then it was a Roc app that ran in the browser, and then it also became a Roc app that ran natively via roc-ray. See the Safari Screensaver code here and demo here.
For another project, I successfully implemented a BASIC interpreter in Roc. Yes, by BASIC, I mean the 1964 programming language called BASIC (Beginner's All-purpose Symbolic Instruction Code). It's pretty straightforward to have an AI agent produce a correct BASIC interpreter in Roc, but it's more difficult to create a performant interpreter in Roc. You can find my BASIC REPL described here and running here. As with most or maybe all of my Roc browser-based projects, the bulk of the logic is in Roc, but there is also a thin layer of JS to run the actual UI piece of the REPL. Roc is not an ideal platform for interpreting a mutable language like BASIC, unless you are content with memory allocations that are hard to predict. On the other hand, it's perfectly capable for prototyping.
(that's it for now.)
Thanks for the kind words @Steve Howell :)
Last updated: Sep 24 2026 at 15:59 UTC