Great start!
One small thing: I’m confused about who the intended audience is.
If it’s people who have previously coded, the explanation of “widget” should be rewritten. This one from Android world is good
A BRIEF TANGENT: TILES VS WIDGETS
Although Tiles have been becoming more like widgets, and pressing a ST tile does send an action request, I think the use of the term Tiles as is probably makes more sense. These look like Tiles and it’s a standard GUI term.
Tiles imply a specific rectangular format, a typical margin size, the display of a very small amount of information, often only a label, and a minimal amount of processing resources, all of which ST tiles have.
It could be argued either way, but for simplicity’s sake I think I’d just call Tiles Tiles.
BACK TO THE AUDIENCE
If the audience is technical, I really like the official definition of smartapps at the following link:
Similarly, if the audience is technical, I see no reason to avoid mention of web services, which is what the section about “external applications” seems to be trying to do. IFTTT, Ubi, Sonos, etc are web services, behave like web services, and should be familiar to most people who are coders.
I understand “web services” is a term which tends to confuse the heck out of nontechnical people, and I applaud a desire to not confuse them–but once you’ve thrown in discussion of oauth and REST API I think we’re well over that line, right? Which is why defining the audience is so important.
just some thoughts…