The idea is that each user has their own Sandstorm instance and can install web apps on it through a web interface, like installing apps on a phone or desktop. Be sure to try the demo -- it takes 30 seconds:
https://demo.sandstorm.ioApps require a little bit of porting, but not much. Sandstorm implements a native-code sandbox, so it can run any tech stack that works on Linux (no need to rewrite in a new language). The main things you have to do to "port" an app are:
* Packaging (gathering dependencies, specifying metadata).
* Removing your authentication/authorization systems and relying on Sandstorm's instead.
* If your app communicates with the outside world or publishes public web content, it has to use the APIs for that, since by default apps are isolated for security reasons.
There's some (work-in-progress) docs about how to port on the wiki: https://github.com/sandstorm-io/sandstorm/wiki
The current catalog is at: https://sandstorm.io/apps/
Generally Sandstorm is meant for apps that deal with a single user's personal data and which act in federation with other users' personal servers. It can also work for data owned by a small group, but generally won't work well for anything that needs multiple machines' worth of resources (we'll support that eventually; it's just not the main focus right now).
Sandstorm is currently in alpha testing, with a first production-quality release expected early next year. We're also running a crowdfunding campaign: http://igg.me/at/sandstorm