-
Demos should not only illustrate a neat prototype of some functionality or feature, they should be like tutorials which walk the user through the steps of building the thing. As such it's important to not do anything too advanced or clever-- the focus should be to illustrate how quick and easy it is to pick up this language for real work in modern contexts/applications.
-
It should be easy for user to understand what each demo is and what it does. You don't want to have to do a lot of explaining just to ground the user as to what the value of the demo is. Ideally the user will understand the problem statement in one or two sentences.
-
The demo should have relatively broad appeal. I.e., the demo should not be something very niche-driven or applicable only to a small subset of programmers. For example, I do not believe that an initial demo should focus on Dialects. Better to show the ease/simplicity of basic features, and later an advanced demo which shows a practical example of tying together code in an easier syntax or abstraction layer, and "oh, by the way that's called a dialect, which has it's roots in an old but powerful concept called Domain Specific Languages, yadi yada yada..."
-
Ideally, we should try to "chunk" each demo into different proficiency levels. An initial 5-10 minute demo would be very basic and introduce the language in the simplest terms possible. A level-up enhancement would take a deeper dive and add valuable features. And an advanced version of the demo would include features which are unique to Ren-C, such as dialecting, and perhaps integrating/tying-in other demos on the site.
-
It's highly desirable if different demos complement one another or connect/relate in some way (as in a suite of features or functionality). For example, there might be a demo of a simple To-Do list, which runs in the interpreter. There will be a different demo of Ren-C running something simple in the browser. It would be great if a third demo connects these, so that the tiny inital demo can be brought to life in a browser or cloud environment. This brings continuity to the demos and allows us to mix and match these so that there is a progression, like a form of training program.