JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://raw.github.com/wycats/handlebars.js/1.0.0-rc.3/dist/handlebars.js"></script>
<script src="https://raw.github.com/emberjs/ember.js/release-builds/ember-1.0.0-rc.1.js"></script>
<script src="https://gist.github.com/hashg/4979893/raw/a0d985c57feede20fd9cdc363d0f9d09e3cfd40f/ember-data.js"></script>
<script type="text/x-handlebars" data-template-name="application">
   <div id="top">
     <div id="container">
      {{outlet}}
     </div>
   </div>
 </script>

 <script type="text/x-handlebars" data-template-name="index">
  <div>{{name}}</div>
 </script>
 
 <script type="text/x-handlebars" data-template-name="contacts">
   <div id="sidebar">
     {{#linkTo 'contacts.new'}}<button class='btn btn-primary'>Add contact</button>{{/linkTo}}
     <ul>
       {{#each contact in controller}}
         <li>
          {{#linkTo contact contact}} {{contact.name}} {{/linkTo}}
         </li>
       {{/each}}
     </ul>
   </div>
   <div id="content">
     {{outlet}}
   </div>
 </script>
 
 <script type="text/x-handlebars" data-template-name="contacts/new">
   <form {{action save on="submit"}}>
     {{partial "contact_fields"}}
     <button class='btn btn-success' type="submit">Save contact</button>
   </form>
 </script>

 <script type="text/x-handlebars" data-template-name="contact">
   <form {{action save on="submit"}}>
     {{partial "contact_fields"}}
     <button class='btn btn-success' type="submit">Update contact</button>
     <button class='btn btn-danger' {{action destroyRecord}}>delete contact</button>
     <hr>
     <h5>Tags</h5>
     {{#each tags}}
       <li>{{name}}</li>
     {{/each}}
     <h5>Addresses</h5>
     {{#each addresses}}
       <li>{{street}}, {{country}}</li>
     {{/each}}
   </form>
 </script>

 <script type="text/x-handlebars" data-template-name="_contact_fields">
   {{view Ember.TextField valueBinding="name" id="name" placeholder="name" required="true"}}<br />
 </script>

CSS

#container {
 width: 100%;
}
#sidebar {
 float: left;
 width: 300px;
}
#content {
 margin-left: 300px;
}
h5{
    margin: 0px;
}
}

JavaScript

(function(){
  window.App = Ember.Application.create();
  

  App.Router.map(function(){
   this.resource('contacts', function() {
     this.route('new');
     this.resource('contact', {path: ':contact_id'}, function(){
     });
   });
  });
  
  App.IndexRoute = Ember.Route.extend({
    redirect: function(){
      return this.transitionTo('contacts');
    }
  });

  App.ContactsRoute = Ember.Route.extend({
   model: function() {
    return App.Contact.find();
   }
  });

  App.ContactsNewRoute = Ember.Route.extend({
   setupController: function(controller) {
    controller.newRecord();
   }
  });

  App.ContactController = Ember.ObjectController.extend({
   save: function() {
     this.get('store').commit();
     this.get('target.router').transitionTo('contacts.index');
   },
   destroyRecord: function() {
     if (window.confirm("Are you sure you want to delete this project?")) {
       this.get('content').deleteRecord();
       this.get('store').commit();
       this.get('target.router').transitionTo('contacts.index');
     }
   }
  });

  App.ContactsNewController = Ember.ObjectController.extend({
   newRecord: function() {
    this.set('content', App.Contact.createRecord({name: "new name"}));
   },
   save: function() {
     this.get('store').commit();
     this.get('target.router').transitionTo('contacts.index');
   }
  });

var attr = DS.attr, belongsTo = DS.belongsTo, hasMany = DS.hasMany;


App.Store = DS.Store.extend({
  revision: 12,
  adapter: 'DS.FixtureAdapter'
});

App.Contact = DS.Model.extend({
  name: attr('string'),  
  tags: hasMany('App.Tag'),
  addresses: hasMany('App.Address')
});

App.Address = DS.Model.extend({
  street: attr('string'),
  country: attr('string'),
  contacts: belongsTo('App.Contact')
})
App.Tag = DS.Model.extend({
  name: attr('string'),
  contacts: hasMany('App.Contact')
});

App.Contact.FIXTURES = [{
  id: '1',
  name: 'Alpha',  
  tags: ['1','2'],
  addresses: ['1']
},{
  id: '2',
  name: 'Roger',  
  tags: ['2','3'],
 ...