Developing on Sandstorm
Sandstorm can run any web app that can run on Linux so long as the code and all the dependencies have been bundled into an SPK file. Anyone can make a Sandstorm package (SPK), such as the author of a program or someone wants to run the app on their own Sandstorm server.
If you haven't yet, now is a good time to try the Sandstorm demo! Work through the guided tour.
Creating an app package
- Tutorial: Five minute packaging tutorial
- Conceptual overview: App Developer Handbook
- Language support: Platform stacks for Meteor, Python, PHP | Other
- Code & service dependencies: Code dependencies | MySQL | Other databases & services
- Troubleshooting: Package troubleshooting
- vagrant-spk in depth: Installation | Original design | Customizing & understanding vagrant-spk
Sandstorm for systems engineers
You might enjoy learning how Sandstorm is put together.
- Technical summary: How Sandstorm works
- Minimalist packaging: Raw SPK packaging guide
- Raw packaging & integration guides: Python | Ruby on Rails | Pure client apps
- Security: Security Practices Overview
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.
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.
- Overview: Delegation is the Cornerstone of Civilization
- Login & permissions: User authentication & permissions
- Making it world-accessible: Publishing to the user's domain | Exporting HTTP APIs
Integrating various languages & libraries into raw Sandstorm
If you are curious how to integrate various languages & libraries with Sandstorm's raw APIs and raw SPK packaging, read these documents.
Note that most app developers will have an easier time using vagrant-spk
. This is intended
Further reference documentation
We call Sandstorm a platform because it provides concepts, capabilities, and APIs that apps can use. The documentation about further concepts may be found on our GitHub wiki.