Thanks for the feedback. There is a lot more UI work in progress. These design docs are really just a view into the early stages of defining a problem and how we'll tackle it, rather than the finished roadmap, design, UI etc.
so, it works with X, Y and Z, but what does it do? Is is a dashboard for data from IoT? Is it a web server/protocol ? Is it some other kind of control layer? What data does it deal with, etc. ? Not clear from the first glance.
TL;DR: two pieces: multiplatform firmware focusing very small embedded devices + hosted services that help you build your IoT solution.
---
The Smart.js firmware implements a bunch of networking protocols and a JavaScript interpreter that fits in <1KB of ram.
> Is it a web server/protocol ? Is it some other kind of control layer
We do provide a JSON+WebSocket based protocol and some tooling around it that help you build applications. It's designed to play nicely with devices that are not always online (e.g. power saving) and that might often change network.
However Smart.js it's not only that. You can use plain HTTP and plain WebSockets and (soon) MQTT and connect your device with whatever is the rest of your stack.
> What data does it deal with, etc.
We also offer a hosted service that can collect metrics, store logs, do pubsub messaging and perform unattended OTA updates of your firmware.
if Smart.js contains a new kind of JavaScript runtime for embedded devices, that might be interesting to put more into focus (and compare e.g. with Tessel or Espruino projects).
The protocols: HTTP, WebSockets, MQTT are pretty standard now. What is their relationship with Smart.js? Why e.g. are Arduino libs not used?
For high-level system design, Node-Red seems to gain traction, what is the difference between Node-Red and Smart.js ?
Both of those projects are independent and have some traction on their own; but you're right that we should make it more explicit.
Mongoose is out there since 2004 and is a quite popular embedded http server. We added many other protocols to it, including also COAP and DNS.
Arduino libs are not used because they are not async and not portable.
Honestly I don't know about node-red, sounds interesting; however node's V8 VM is too heavyweight for the smallest devices we aim to support. Smart.js does expose a nodejs-compatible core API wherever possible, so it might be possible to port node-red to it.
If you consider the cost of land (in Ireland) you'll still spend a fortune and end up with a pretty small place. For one / two this could work, imagine having a family in there!