diff --git a/markdown-pages/blog/retreat-recap-2026.mdx b/markdown-pages/blog/retreat-recap-2026.mdx new file mode 100644 index 000000000..7f26fb784 --- /dev/null +++ b/markdown-pages/blog/retreat-recap-2026.mdx @@ -0,0 +1,313 @@ +--- +author: rescript-association +date: "2026-04-28" +previewImg: /blog/retreat-recap-2026-group-01.avif +articleImg: /blog/retreat-recap-2026-group-01.avif +title: ReScript Retreat 2026 Recap +description: | + Thirteen ReScript contributors met in Vienna to work on the compiler, build system, standard library, AI-assisted coding, and the wider ecosystem. +--- + +The ReScript Retreat 2026 has concluded. +This year, thirteen developers from around the world came together in Vienna to work on the ReScript compiler and ecosystem. +For three full days we worked from a large office close to the city center, focusing on the language, tooling, standard library, documentation, and the developer experience around AI-assisted coding. + +As with previous retreats, the goal was simple: give contributors uninterrupted time together. +ReScript is still built by people spread across different countries, companies, and time zones. +Meeting in person helps us unblock long-running issues, compare ideas quickly, and turn plans into working pull requests while everyone has the same context. + +## Kickoff + +On the first day, we started by discussing the current state of the ReScript compiler and ecosystem. +Before diving into working groups, Robin Ricard from [Jane Street](https://www.janestreet.com/) joined us for a presentation and a technical exchange. +We had very good discussions about JavaScript compilation challenges, and Robin showed us some of the tools he is building at Jane Street. +He also presented [OxCaml](https://oxcaml.org/) and showcased the Bonsai web framework. + + + +Those conversations were a useful reminder that, while ReScript has diverged significantly from the OCaml ecosystem over the years, we still share several goals: strong static typing, predictable compilation, and tooling that can support large codebases and agentic development workflows. + +## Working Groups + +After the kickoff, we identified blockers and improvements that would have the highest impact for ReScript users. +We then split into four working groups. + +
+
+ ReScript contributors working together during the retreat + ReScript contributors discussing implementation details at a table + ReScript contributors collaborating in the retreat office +
+
+ Contributors split into focused groups to work on the compiler, build + system, Web API bindings, iterators, and AI-assisted coding. +
+
+ +### Web API Bindings + +One group focused on the experimental ReScript Web API bindings. +Compile times had become longer than we wanted, and the package had grown broad enough that splitting it up made sense. +The group worked on moving the bindings into multiple focused packages, such as DOM, Fetch, and Storage, under a dedicated npm organization. + +This work pairs with feature-gated source directories in the build system, which let large libraries expose optional parts of their source tree only when needed. +For broad packages like Web API bindings, this is important: users should not pay compile-time costs for browser APIs they never import. +Together, these changes should make the packages easier to maintain, faster to compile, and more practical to adopt incrementally. + +### Build System + +Another group returned to the build system. +There was a long-standing issue where the build system locked its build state while a watcher was running. +That meant a second build, for example one triggered by an AI agent or another parallel tool, could fail because the lock file prevented it from proceeding. + +We prioritized this over several other build-system improvements because it directly affects modern development workflows. +The group also worked on performance improvements and better terminal output. + +### Iterators + +Another group focused on iterator and iterable support in the standard library. +The immediate goal was to make the type definitions line up better with JavaScript's iteration protocols, including generator values. +This work supports the new `for...of` and `for await...of` syntax and makes interop with iterable JavaScript APIs more predictable. + +### AI-Assisted Coding + +The final group explored how ReScript can become better suited for AI-assisted coding. +One idea was an "AI mode": a strict linter that can run as a separate phase after regular compilation and type checking. +The goal is to catch patterns that are technically valid but undesirable in generated or agent-edited code, and to give agents tighter feedback loops when working inside a ReScript project. + +We also worked on documentation and project generation improvements, since high-quality examples and predictable project structure are especially important when tools need to understand a codebase quickly. + +## Talks + +On the second day, several contributors presented work they had prepared before the retreat. +The talks covered both concrete ecosystem projects and larger compiler or language experiments: + +- Dmitry Zakharov: ReScript & Sury. + - [Slides](https://docs.google.com/presentation/d/176TePKFT6HzmLvApyvaEMpngm4poM7zW2F4Fr-wDPzM/edit?slide=id.g2ce4b81d49a_0_45#slide=id.g2ce4b81d49a_0_45) + - [Sury](https://github.com/DZakh/sury) +- Gabriel Nordeborn: ResX, PHP meets JSX and type safety. + - [ResX](https://github.com/zth/res-x) +- Jaap Frolich: Rewriting the compiler in Rust and comptime evaluation. + - [Presentation](https://gist.github.com/jfrolich/c05970987e17e46ca78996226bd318f3) +- Woonki Moon: ReScript Comptime PoC, a lighter metaprogramming alternative to PPX. + - [Design doc](https://github.com/mununki/rescript/blob/poc-comptime/docs/comptime_design.md) + - [Slides](https://rescript-comptime-ppt.pages.dev/) + - [Examples](https://github.com/mununki/rescript-comptime-poc) +- Paul Tsnobiladzé: ReScript-Shadcn, shadcn for ReScript and rescript-react. + - [Slides](https://tsnobip.github.io/rescript-shadcn-presentation) + - [Demo source](https://github.com/tsnobip/rescript-shadcn-presentation/) +- Bernardo Gurgel: Signals All The Way Down, reactive UIs with Xote and ReScript Signals. + - [Xote](https://xote.dev/) + - [ReScript Signals](https://brnrdog.github.io/rescript-signals/) + - [ReSlides](https://github.com/brnrdog/reslides) + - [Demo](https://brnrdog.github.io/reslides) + +We also live-streamed the talks on YouTube. + +