Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hacienda.io - A New Approach to Content Management

Managing content today can be fast, slick and extensible. When it came to handling content on the thoughtworks.com website, we wanted to discard the shackles of a bloated, off-the-shelf CMS solution and come up with something lightweight but powerful, that could cope with translations and keeping track of content status. Now open sourced, Hacienda.io is the product of this idea, and this talk explores our journey in developing Hacienda.io, our approach to handling content using Git, and what we’ve learned along the way.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Hacienda.io - A New Approach to Content Management

  1. 1. HAÇIENDA.IO A New Approach to Content Management Alina Băluşescu & Mircea Moise
  2. 2. WHO ARE WE? 2 Alina Băluşescu Mircea Moise
  3. 3. THE PROBLEM With so many different forms of content, how do we (easily) manage it all? 3
  4. 4. THE SOLUTION? 4
  5. 5. A web content management system (WCMS) is a software system that provides website authoring, collaboration, and administration tools designed to allow users with little knowledge of web programming languages or markup languages to create and manage website content with relative ease. 5 – Mike Johnston
  6. 6. CONTENT MANAGEMENT SYSTEMS 6
  7. 7. 7
  8. 8. 8
  9. 9. THE ALTERNATIVE – 9 BUILD OUR OWN!
  10. 10. OUR APPROACH •  Content-as-a-Service •  Good development practices •  Avoid locking in a solution from the start •  Easy for content editors and devs to use 10
  11. 11. 11 haçienda.io
  12. 12. CONTENT MANAGEMENT != CONTENT EDITING 12
  13. 13. 13 thoughtworks.com edit.thoughtworks.com Read Write/Update/Delete
  14. 14. DEMO
  15. 15. THE DETAILS 15
  16. 16. HAÇIENDA.IO Data is not Presentation 16
  17. 17. DATA IS NOT PRESENTATION 1717 {  ”name”: “Aman Bhutani”,  ”job_name”: “SVP of Worldwide Engineering”,  ”job_description”: “Aman Bhutani leads the engineering team… ” }
  18. 18. HAÇIENDA.IO RESTful Interface 18
  19. 19. RESTFUL INTERFACE 19 Action HTTP Verb URL Header Retrieve draft GET /:type(/:id) Accept-Language: :locale Retrieve public GET /:type(/:id)/public Accept-Language: :locale Create POST /:type/:locale - Publish POST /:type/:id/:locale - Update PUT /:type/:id/:locale - Delete DELETE /:type/:id/:locale -
  20. 20. HAÇIENDA.IO Translations as Content Negotiation 20
  21. 21. TRANSLATIONS AS CONTENT NEGOTIATION 21 Action HTTP Verb URL Header Retrieve draft GET /:type(/:id) Accept-Language: :locale Retrieve public GET /:type(/:id)/public Accept-Language: :locale Create POST /:type/:locale - Publish POST /:type/:id/:locale - Update PUT /:type/:id/:locale - Delete DELETE /:type/:id/:locale -
  22. 22. HAÇIENDA.IO Authentication not Authorization 22
  23. 23. HAÇIENDA.IO Git as storage mechanism 23
  24. 24. GITHUB AS SINGLE SOURCE OF TRUTH 24
  25. 25. DEMO
  26. 26. THE FUTURE •  Get to v1.0 •  Get to a stable API •  Leverage more Git •  More modular system •  translation logic can be swapped •  user has more control over authentication •  Want to get involved? Fork the repo 26
  27. 27. THANK YOU Further reading/sources: http://hacienda.io/xconf.html abaluses@thoughtworks.com mmoise@thoughtworks.com

×