Getting Started

The Sandbox programming model is designed to leverage your existing web development skills. Here we explain some of the finer points of our test container.

The Sandbox philosophy is to make the security model as unobtrusive as possible. As such, we focused on modeling the environment on top of traditional HTML documents. By basing our approach on existing web development methodologies, we are able to avoid writing an SDK. Instead, we will focus on the finer points of the security model and constraints of the technology. Next to each sample, we included a “Try it” button. This will open a new window executing the sample within the Sandbox. Within the Sandbox experiment page you can create multiple instances of the same or unique code and they all will stay isolated.

We also have sample pages that are already executing very simple code samples. Our challenge to you is to find a way to break out of the Sandbox to access or break the surrounding environment. Also, try to break the isolation boundaries by creating conflicts across multiple gadgets. Ensuring security is properly designed is a huge challenge and we can’t do it properly without your help.

Also, we expect the documentation to be living documents with frequent updates and additions. Please use our discussion forums to ask questions, provide feedback, or suggest topics we should cover.

Hello World

Since all tutorials start with a canonical Hello World example, below is your Hello World HTML document:


You will quickly notice that in most cases, your code will not only run safely within our Sandbox, but also will run properly as a stand-alone web page. This allows you to leverage your favorite tools for development, debug your page against the browser, and in most cases, feel comfortable the code will run unmodified within the Sandbox.

Let's have more fun

This next demo is a DHTML-based game. This is a great example to see the how the Sandbox goes well beyond just providing security. All gadgets automatically support cloning as well as being paused and then later resumed. When you run this sample, be sure to try both of these features.