Here in the Sandstorm developer hub, you will find to resources to help you build new apps on top of Sandstorm, package existing apps, and understand how apps and Sandstorm fit together.

Sandstorm apps can be in any language so long as it runs on Linux (PHP, Python, Node.js, Ruby, etc.). The app bundles its dependencies so it runs in a consistent environment. Sandstorm handles user management and mitigates 95% of security issues. App authors don't have to run servers since users run your app on their own servers. Sandstorm's "grain" model allows developers to rely on Sandstorm for supporting multiple instances/documents rather than writing that code in the app. Read more on the developer features page.

Creating an app package

How to leverage the community

The Sandstorm ecosystem is full of people who want to promote your app, give you feedback, and use it.

All about grains

When a user runs an app within Sandstorm, they create one or more grains of the app. Read about how grains work and how they affect your app.

App sharing, publishing, & permission levels

Each app instance (aka "grain") is private by default to the user who created it. Read these documents to learn how access control works.

Network access

By default, Sandstorm runs each app instance with no network access. Read these documents to configure an app to get access to services on the Internet or to each other.

  • Supported protocol: SMTP (email)
  • Other protocols: Work in progress.
  • Inter-app communication: Work in progress.

Raw Sandstorm packaging

Most Sandstorm packages use sandstorm-http-bridge and vagrant-spk. However, these tools are independent and optional.

Powerbox & raw Sandstorm APIs via Cap'n Proto

To make components easier to isolate while retaining high performance, most communication in Sandstorm occurs using Cap'n Proto. Cap'n Proto files in the Sandstorm source repository contain useful design or implementation details. Note that Sandstorm typically depends on the unreleased git master of capnproto. Configuration files such as sandstorm-pkgdef.capnp use Cap'n Proto as their file format.

Documentation on how to contribute to Sandstorm

To see all the ways to contribute to Sandstorm, read the Sandstorm community page.

To learn about contributing code to Sandstorm itself, read how Sandstorm works and the GitHub wiki.