I talked to someone recently who looked at Roc a few months ago was under the impression that basic-cli and basic-webserver were toy/demo platforms because of the basic- prefix and that the "real" platforms existed somewhere else. This is understandable given that the meaning of the basic- prefix isn't explained in the docs or in the GitHub repos. This seems like an unnecessary point of confusion for new users and like it gives the wrong impression about what basic-cli and basic-webserver are.
My understanding of the idea behind the prefix is to communicate that basic-cli and basic-webserver are intended to remain simple and not support the whole kitchen sink of features that might be desired for a cli or webserver platform. Right now both platforms are certainly the most mature and robust in the ecosystem (and likely will be for a long time), but I think the basic- prefix gives the idea that they are in some way primitive or lacking important features.
I think it would be better to rename the platforms to cli and webserver and include a prominent note in the READMEs about how these platforms are intended to stay relatively simple and that niche or custom features would be better suited for a different platform all together and may not be accepted here. This would clearly communicate the intention about what the platforms should be without any sort of negative connotation that the best platforms in the Roc ecosystem are basic or primitive.
I would argue that basic-webserver is still a toy/demo platform (cause it doesn't work with async in rust leading to some very rough edges in terms of perf). Basic cli is fine on the other hand.
I also like the basic- nomenclature to help people recognize that there can be many CLI platforms and that people don't need to depend on the roc-lang version or consider it super official. But that is minor.
That was the point of the prefix in the first place, to my understanding, but until platform dev is polished and people start doing it more, we should just own that the Roc official platforms are the only ones anyone uses for the time being
I like the prefix too. My concern with removing the prefix is that now people expect these platforms to do everything and are annoyed when it doesnt.
I would guess this isn't much of an issue in practice and people should consider them alpha (like roc itself). So I think the reaction mentioned in the initial comment is mostly fine
Maybe there is a better word than basic though....especially imagine one day having a platform identical to basic CLI but safe. Probably called safe-cli or similar.
I would argue that basic-webserver is still a toy/demo platform (cause it doesn't work with async in rust leading to some very rough edges in terms of perf). Basic cli is fine on the other hand.
That's fair. Even so, it certainly doesn't intend to be a toy/demo in the long run.
My concern with removing the prefix is that now people expect these platforms to do everything and are annoyed when it doesnt.
I also suspect that wouldn't come up much in practice. I have not found myself wishing for significant new features in basic-cli through my use. It seems like it would be easy enough to communicate the intention about what the platform should be without having the prefix.
I also think basic-cli and basic-webserver may wane over time. Especially basic-webserver. I would hope that some super nice and novel platforms eventually come out that make exceptional experiences. Basic-cli and basic-webserver are filling a simple role and are not trying to do anything novel.
So I think labelling them as more battle tested and official and expansive is quite unnecessary.
Especially when roc is still this early in life
Note: this opinions are not strong. More vibes than anything anchored or heavy. Feel free to remove the prefix if that makes most sense. Just giving my rough gut feeling.
I have not found myself wishing for significant new features in basic-cli through my use.
There have been a few occasions where I've added features based on discussion from zulip where someone was confused about why it didn't exist in basic-cli/webserver.
I've also seen where people have had an assumption that because these platforms are "official" and don't include a certain feature, this must be a deliberate exclusion.
The platforms are still maturing and we are still finding ways to improve them, so they're definitely not a polished experience, and we don't really have the resources at this time to do that.
there's an argument for not having any platforms in the roc-lang/ org
I was always a bit nervous about "playing favorites"
like imagine if Rails was in the ruby repo
same design, just "official"
but then again, in the future I'd like the tutorial to walk you through building both a CLI and a webserver, which requires "playing favorites" one way or another
I wonder if renaming the prefix from "basic-" to something welcoming yet limited would better communicate their intent.
"acceptable-" / "capable-" / "decent-" / "fine-" / "good-enough-" / "okay-" :blush:
I don't think any of those capture the goals
I think the goal is to be simple/minimal. Something generic and usable, but not trying to do everything
Also, not too worried about perf
Is simple a better word?
simple-cli and simple-webserver
Or maybe minimal-
I also had simple on my mind :)
minimal feels a bit off, that seems to imply a very high threshold for adding features.
I think simple is quite good as it communicates the right idea but doesn’t have the negative connotations of basic
I like simple better too. But does it add enough value to justify the effort of renaming it in a bunch of places? There are some places where you can't rename it at all (such as videos, Zulip conversations, and posts outside the control of the ROC team). I can see how this could end up creating (new) confusion when the original goal was to remove some.
Yeah it seems like the motivation is probably not strong enough to justify the pain of renaming
If we expect this platform to remain for a long time, I wouldn't worry about the pain of breaking references. Roc's philosophy for many things has been that the future is bigger than the past, so it's worth making breaking changes. If we really do think simple-cli is a better name (I do), then as the language grows it'll just get harder to change and also more valuable to have changed.
However even if ignoring the breaking change, it's still possible it's not worth the effort, and there other more important things to spend development time on.
so the main reason I didn't go with the prefix simple- originally is that often when people name a package or framework that way, what they're advertising is minimalism. Like "this isn't including a lot of batteries, but it's also very lightweight."
That isn't really the design philosophy behind basic-cli. Rather, it's more like "this isn't trying to offer anything particularly fancy, it just kinda gives you a reasonable experience."
the best thing I could think of to convey that was "basic-" :big_smile:
also I didn't want it to convey "this is exciting and awesome and you should check it out" - more like the opposite. Something like "This is plain and ordinary, and if you want something that's really going to blow your mind, you should look to another package."
Last updated: Jun 16 2026 at 16:19 UTC