I noticed Richard just landed the explanation for headerless apps design... https://github.com/roc-lang/roc/blob/main/docs/langref/modules.md#headerless-application-modules
How do people feel about migrating our https://www.roc-lang.org/examples/ to use this instead of a basic-cli.
We can still point to the basic-cli examples as external examples -- but this would provide a simpler getting started step for people and be friendlier to support in an interactive WASM playground.
I'm tempted to add support for these headerless apps in the cli now -- my preference is to use the dev backends by default. It might be a little buggy until the fixes for those land (soon :fingers_crossed:) -- part of my logic is I want to get the whole "plugin" design figured out so we can upgrade roc glue and also start implementing roc tooling.
What do people think? Any concerns reducing the capabilities we are demonstrating in our default Examples site?
I am reading the doc and just noticed a broken link: https://github.com/roc-lang/roc/blob/main/docs/langref/types#opaque-types
First part of header-less app modules drafted here https://github.com/roc-lang/roc/pull/9206
@Richard Feldman I made some assumptions about what API we want here.
My thought is we would want to show the idiomatic approach to errors and using Try and unwrapping etc in the tutorials so I went with the more verbose version.
main! : List(Str) => Try({}, [Exit(I32), ..])
echo! : Str => Try({}, [..])
I've also decided to silently sanitise the cli args to utf-8 by replacing anything invalid with the unicode replacement character. I figure for the purpose of a tutorial people probably will never notice, and it will "just work" as they expect using Roc Str.
Ok.. this task is turning into a slightly larger scope to include a minor refactor of the cli <-> frontend <-> backend pipeline.
There's plenty of logic we can clean up in the cli which enables a nice clean abstraction for the plugins.
A message was moved from this topic to #contributing > Help Wanted : migrating the Roc Examples by Luke Boswell.
How do people feel about migrating our https://www.roc-lang.org/examples/ to use this instead of a basic-cli.
I'm worried that people may fail to discover/transition to basic-cli and so they could end up not making any real world Roc programs because they stuck to the "tutorial" platform.
I think the first time they Google "how to read file in Roc" they'd discover they need to use other platforms
I'm worried that people may fail to discover/transition to basic-cli and so they could end up not making any real world Roc programs because they stuck to the "tutorial" platform.
This is a reasonable concern that I think is mitigated by about 2 sentences of copy in the intro.
Last updated: Jun 16 2026 at 16:19 UTC