From Dropbox to Orchestrate

The Back Story

A couple years back I became dissatisfied with how I was keeping my “snippets”. I looked at the existing offerings but nothing was a really good fit for me. I set about writing my own, but I wasn’t going to do a lot of work to re-invent the wheel, so I just cobbled together things I had on hand.  I ended up with a JavaFX UI that stored its data in Dropbox and used Lucene for searching. It was simple, worked well, and I could use it on the various platforms I was on (Linux, OSX, Windows).

And then I changed jobs and the new company filters Dropbox…. doh.

The New Goal

I had to move my existing snippets out of Dropbox to somewhere I could access, but I didn’t want to leave my familiar UI behind.  So again, looking at what I had laying about, I came up with moving it out to the web with:

All of this was easily done and would host for free. I just needed to brush off my jQuery and learn Orchestrate.  Bonus.


Orchestrate is a hosted JSON store. You store objects in collections with a RESTful API for access. They provide a free tier to get started in and there are plenty of client implementations already out there. As an added bonus, they authenticate their web console with Persona, which I was new to but turned out to be a great solution for my app!


The app had a very simple design. A single tabbed page of JavaScript (jQuery), that pointed back at a RESTful server (Spark) which managed the data. The data store was two maps: Category, Snippet. For local testing the maps where implemented with Java HashMaps, for deployment they were backed by Orchestrate. Guice provided the dependency injection to swap stores transparently.

Authentication was via Persona, and CI and deployment via Travis-CI.

The Results

The app was quick and fun to put together. It’s simple and light weight. Minimal code. Minimal frameworks. It deploys automagically on any successful build. I’ve migrated my old data into it and now have my snippets back at work.


You can see the code at github.