diff --git a/planetstack/core/xoslib/dashboards/test.html b/planetstack/core/xoslib/dashboards/test.html
new file mode 100644
index 0000000..f176ecc
--- /dev/null
+++ b/planetstack/core/xoslib/dashboards/test.html
@@ -0,0 +1,298 @@
+<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.syphon.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.wreqr.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.babysitter.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.marionette.js"></script>
+
+<link rel="stylesheet" type="text/css" href="{% static 'css/test.css' %}" media="all" >
+
+<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/test.js"></script>
+
+<p>This shows all of the things you can see using xosLib</p>
+
+<h3>Deployments</h3>
+<div id="deploymentList">
+</div>
+
+<h3>Images</h3>
+<div id="imageList">
+</div>
+
+<h3>Network Templates</h3>
+<div id="networkTemplateList">
+</div>
+
+<h3>Networks</h3>
+<div id="networkList">
+</div>
+
+<h3>Nodes</h3>
+<div id="nodeList">
+</div>
+
+<h3>Services</h3>
+<div id="serviceList">
+</div>
+
+<h3>Sites</h3>
+<div id="siteList">
+</div>
+
+<h3>Slices</h3>
+<div id="sliceList">
+</div>
+
+<h3>Slivers</h3>
+<div id="sliverList">
+</div>
+
+<!-- Deployment -->
+
+<script type="text/template" id="test-deployment-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>backend</th>
+     <th>admin_tenant</th>
+     <th># sites</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-deployment-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= backend_type %></td>
+  <td><%= admin_tenant %></td>
+  <td><%= sites.length %></td>
+</script>
+
+<!-- Image -->
+
+<script type="text/template" id="test-image-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>disk_format</th>
+     <th>container_format</th>
+     <th>path</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-image-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= disk_format %></td>
+  <td><%= container_format %></td>
+  <td><%= path %></td>
+</script>
+
+<!-- NetworkTemplate -->
+
+<script type="text/template" id="test-networkTemplate-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>description</th>
+     <th>visibility</th>
+     <th>translation</th>
+     <th>sharedNetworkName</th>
+     <th>sharedNetworkId</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-networkTemplate-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= description %></td>
+  <td><%= visibility %></td>
+  <td><%= translation %></td>
+  <td><%= sharedNetworkName %></td>
+  <td><%= sharedNetworkId %></td>
+</script>
+
+<!-- Network -->
+
+<script type="text/template" id="test-network-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>template</th>
+     <th>ports</th>
+     <th>labels</th>
+     <th>owner</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-network-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= template %></td>
+  <td><%= ports %></td>
+  <td><%= labels %></td>
+  <td><%= owner %></td>
+</script>
+
+<!-- Node -->
+
+<script type="text/template" id="test-node-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>site</th>
+     <th>deployment</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-node-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= site %></td>
+  <td><%= deployment %></td>
+</script>
+
+<!-- Service -->
+
+<script type="text/template" id="test-service-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>description</th>
+     <th>enabled</th>
+     <th>versionNumber</th>
+     <th>published</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-service-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= description %></td>
+  <td><%= enabled %></td>
+  <td><%= versionNumber %></td>
+  <td><%= published %></td>
+</script>
+
+<!-- Site -->
+
+<script type="text/template" id="test-site-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>url</th>
+     <th>enabled</th>
+     <th>login_base</th>
+     <th>is_public</th>
+     <th>abbreviated_name</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-site-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= site_url %></td>
+  <td><%= enabled %></td>
+  <td><%= login_base %></td>
+  <td><%= is_public %></td>
+  <td><%= abbreviated_name %></td>
+</script>
+
+<!-- Slice -->
+
+<script type="text/template" id="test-slice-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>enabled</th>
+     <th>omf_friendly</th>
+     <th>description</th>
+     <th>slice_url</th>
+     <th>site</th>
+     <th>max_slivers</th>
+     <th>service</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-slice-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= enabled %></td>
+  <td><%= omf_friendly %></td>
+  <td><%= description %></td>
+  <td><%= slice_url %></td>
+  <td><%= site %></td>
+  <td><%= max_slivers %></td>
+  <td><%= service %></td>
+</script>
+
+<!-- Sliver -->
+
+<script type="text/template" id="test-sliver-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>instance_id</th>
+     <th>instance_name</th>
+     <th>image</th>
+     <th>creator</th>
+     <th>slice</th>
+     <th>node</th>
+     <th>deploymentNetwork</th>
+     <th>flavor</th>
+     <th>userData</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-sliver-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= instance_id %></td>
+  <td><%= instance_name %></td>
+  <td><%= image %></td>
+  <td><%= creator %></td>
+  <td><%= slice %></td>
+  <td><%= node %></td>
+  <td><%= deploymentNetwork %></td>
+  <td><%= flavor %></td>
+  <td><%= userData %></td>
+</script>
+
+</script>
+
diff --git a/planetstack/core/xoslib/static/css/test.css b/planetstack/core/xoslib/static/css/test.css
new file mode 100644
index 0000000..3444fdb
--- /dev/null
+++ b/planetstack/core/xoslib/static/css/test.css
@@ -0,0 +1,4 @@
+.test-table td, th {
+    border: 1px solid black;
+}
+
diff --git a/planetstack/core/xoslib/static/js/test.js b/planetstack/core/xoslib/static/js/test.js
new file mode 100644
index 0000000..bc7f955
--- /dev/null
+++ b/planetstack/core/xoslib/static/js/test.js
@@ -0,0 +1,71 @@
+TestApp = new Marionette.Application();
+
+TestApp.addRegions({
+    deploymentList: "#deploymentList",
+    imageList: "#imageList",
+    networkTemplateList: "#networkTemplateList",
+    networkList: "#networkList",
+    nodeList: "#nodeList",
+    serviceList: "#serviceList",
+    siteList: "#siteList",
+    sliceList: "#sliceList",
+    sliverList: "#sliverList",
+    userList: "#userList"
+});
+
+// ---- Deployment ----
+
+TestApp.DeploymentListItemView = Marionette.ItemView.extend({
+    template: '#test-deployment-listitem-template',
+    tagName: 'tr',
+    className: 'test-tablerow',
+});
+
+TestApp.DeploymentListView = Marionette.CompositeView.extend({
+    childView: TestApp.DeploymentListItemView,
+    childViewContainer: 'tbody',
+    template: '#test-deployment-list-template',
+
+    initialize: function() {
+        this.listenTo(this.collection, 'change', this._renderChildren)
+    },
+});
+
+TestApp.on("start", function() {
+     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'node', 'service', 'site', 'slice', 'sliver'];
+
+     for (var index in objs) {
+         name = objs[index];
+         tr_template = '#test-' + name + '-listitem-template';
+         table_template = '#test-' + name + '-list-template';
+         collection_name = name + "s";
+         region_name = name + "List";
+
+         itemViewClass = Marionette.ItemView.extend({
+             template: tr_template,
+             tagName: 'tr',
+             className: 'test-tablerow',
+         });
+
+         listViewClass = Marionette.CompositeView.extend({
+             childView: itemViewClass,
+             childViewContainer: 'tbody',
+             template: table_template,
+             collection: xos[collection_name],
+
+             initialize: function() {
+                 this.listenTo(this.collection, 'change', this._renderChildren)
+             },
+         });
+
+         var listView = new listViewClass();
+
+         TestApp[region_name].show(listView);
+         xos[collection_name].startPolling();
+     }
+});
+
+$(document).ready(function(){
+  TestApp.start();
+});
+
