This site is historical, from when Sandstorm was a startup. Sandstorm the open source project has moved to sandstorm.org. More info »

Sandstorm Blog

Ruby on Rails Porting Guide

By David Renshaw - 30 Mar 2015

One positive side effect of my work on the GitLab app is that we now have a porting guide tailored specifically for Ruby on Rails. If you have a Rails app that you’d like to package for Sandstorm, this is the place to start. The guide should quickly get you up and running, and it explains how to deal with a few quirks that are particular to how Rails and Sandstorm interact.

I invite you to read it, to try porting an app, and to tell me what you think! I am by no means an expert on anything Ruby-related, so don’t hesitate to contribute corrections, either by directly editing the wiki, by starting a discussion on the sandstorm-dev mailing list, or by emailing me.

Postcards from Boston

By Asheesh Laroia - 27 Mar 2015

After visiting Boston (well, Cambridge) for LibrePlanet, I met up with a few Sandstorm fans and prospsective users, and I snapped some photos.

Three of us met up at Clover Kendall to discuss NightScout, a free software web app for helping people share information about their blood sugar levels with family and friends.

Monday evenings are the regular meeting time for SIPB, MIT’s computing club, and some of us researched if Sandstorm could be of use to the MIT community.

I hope to see you in my future travels!

See you at LibrePlanet this weekend

By Asheesh Laroia - 19 Mar 2015

I’m a Free Software Foundation member, and I’m happy to say that I’ll be visiting Boston this weekend for the FSF’s yearly LibrePlanet conference.

You can read more about the conference from Zak Rogoff’s summary of 2013 or Shauna Gordon-McKeon’s invitation to new speakers in 2014.

If you’re in the Boston area between now and Tuesday March 24, send me an email and let’s meet up! I’m asheesh@sandstorm.io.

Packaging Laverna: localStorage within Sandstorm

By Jason Paryani - 12 Mar 2015

Last week, I packaged Laverna for Sandstorm and added it to the app list. You can now use this open source note-taking app from any Sandstorm instance with one click. In this post, I explain how a purely client-side note-taking app integrates with Sandstorm for storage.

From the Laverna devs:

Laverna is a JavaScript note-taking web application with a Markdown editor and encryption support. It’s built to be an open source alternative to Evernote.

Laverna is a fully client side app and typically stores all its data in IndexedDB/localStorage. In the case of the Sandstorm package, we configure the app to use localStorage and mirror any updates to localStorage to disk using a simple REST backend. On app start, we query the backend, and restore all the keys to localStorage.

Unfortunately (or maybe fortunately), there’s no way to monkey-patch the built-in localStorage to support this since it allows you to set keys by doing normal property access, ie. with localStorage.KEY or localStorage[KEY]. Javascript provides no way to shim over that, at least until ES6 proxies are widely implemented.

It’s also worth noting that the backend is a very lightweight C++ server that uses the raw Sandstorm API. The backend’s only jobs are to serve the index.html, handle GET/POST/PUT/DELETE requests to allow fetching/persisting the localStorage keys, and provide one GET endpoint that lists all the keys that have been stored. Its memory footprint is incredibly small, which makes it ideal for Sandstorm. You can check out the source here.

Within Laverna, it was surprisingly easy to add the automatic synchronizing. It took very little work to wire it up. You can see exactly how it works by reading my changes. If there’s some interest, let me know by emailing jparyani@sandstorm.io, and I can think about writing a nice looking wrapper around localStorage that would handle this seamlessly.

If you want to test this out, you can try Laverna on the Sandstorm demo; look at the network inspector tab in your browser as it runs.

Testing Sandstorm apps

By Asheesh Laroia - 11 Mar 2015

Have you ever wanted to try out new apps for Sandstorm before they make their way to the app list? Apps always need testing, and you can help.

Historically, the packaging process has been somewhat opaque – the App Committee would vote on apps, and new apps would magically appear in the app list. If an app’s author packages their own project, it seems to arrive all at once app list.

The truth is, someone tests these apps to make sure they work properly. App packagers have been emailing people privately to find testers.

I’m opening that testing up to the community with some new documentation.

Anyone who uses Sandstorm can test out new Sandstorm apps and features! Consider it our open beta program.

Check out the new testing doc, and subscribe to sandstorm-dev so you can hear about cool apps that are almost ready!