{"id":105,"date":"2016-01-17T09:15:12","date_gmt":"2016-01-17T14:15:12","guid":{"rendered":"http:\/\/regionals.highedweb.org\/ne16\/\/?post_type=schedule&#038;p=105"},"modified":"2016-03-22T11:03:10","modified_gmt":"2016-03-22T15:03:10","slug":"how-vassar-home-brewed-a-headless-cms","status":"publish","type":"schedule","link":"https:\/\/regionals.highedweb.org\/ne16\/schedule\/how-vassar-home-brewed-a-headless-cms\/","title":{"rendered":"How Vassar Home-brewed a Headless CMS"},"content":{"rendered":"<div id=\"conf-sch-single-meta\"><\/div><p>&#8220;Headless&#8221; or &#8220;decoupled&#8221; CMSs may be buzzwords you\u2019ve heard recently, but the principles they follow and systems they represent are neither fads nor new\u2014they help us solve real-world problems in scalable, maintainable ways.<\/p>\n<p>It\u2019s well understood that separation of concerns is best practice, especially when applied to separating content (HTML) from presentation (CSS). The same principle applies to a CMS and its published pages. Monolithic CMSs like WordPress or Drupal attempt to be both CMS and WPT (web publishing tool), using proprietary systems and APIs to manipulate HTML templates or themes. Not only do these require specialized skill and knowledge, their results are often sub-optimal, reducing website quality.<\/p>\n<p>For four years, Vassar has been developing an integrated system for managing website lifecycles, based on a headless CMS that publishes flat files, a server-side templating layer, and centrally controlled, server-side SASS compilation. We\u2019ve found that this approach has helped us in a number of ways, including more efficient workflows, total control over markup, and nimbly adapting to change. By separating these concerns, we\u2019ve allowed our CMS, and those who use it, to focus on what it\u2019s good at\u2014managing content\u2014and tailored our presentation to reflect our standards exactly.<\/p>\n<div id=\"conf-sch-single-speakers\">\n\t\t\t\t<h2 class=\"conf-sch-single-speakers-title\">Speakers<\/h2>\n\t\t\t<\/div><script id=\"conf-sch-single-meta-template\" type=\"text\/x-handlebars-template\">\n\t\t\t\t{{#event_date_display}}<span class=\"event-meta event-date\"><span class=\"event-meta-label\">Date:<\/span> {{.}}<\/span>{{\/event_date_display}}\n\t\t\t\t{{#event_time_display}}<span class=\"event-meta event-time\"><span class=\"event-meta-label\">Time:<\/span> {{.}}<\/span>{{\/event_time_display}}\n\t\t\t\t{{#event_location}}<span class=\"event-meta event-location\"><span class=\"event-meta-label\">Location:<\/span> {{post_title}}<\/span>{{\/event_location}}\n\t\t\t\t{{#if session_categories}}<span class=\"event-meta event-categories\"><span class=\"event-meta-label\">Categories:<\/span> {{#each session_categories}}{{#unless @first}}, {{\/unless}}{{.}}{{\/each}}<\/span>{{\/if}}\n\t\t\t\t{{#event_links}}{{body}}{{\/event_links}}\n\t\t\t<\/script><script id=\"conf-sch-single-speakers-template\" type=\"text\/x-handlebars-template\">\n\t\t\t\t<div class=\"event-speaker\">\n\t\t\t\t\t{{#if title.rendered}}<h3 class=\"speaker-name\">{{{title.rendered}}}<\/h3>{{\/if}}\n\t\t\t\t\t{{{speaker_meta}}}\n\t\t\t\t\t{{{speaker_social_media}}}\n\t\t\t\t\t{{#if content}}\n\t\t\t\t\t\t<div class=\"speaker-bio{{#if speaker_thumbnail}} has-photo{{\/if}}\">\n\t\t\t\t\t\t\t{{#if speaker_thumbnail}}<img class=\"speaker-thumb\" src=\"{{speaker_thumbnail}}\" \/>{{\/if}}\n\t\t\t\t\t\t\t{{{content.rendered}}}\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t{{\/if}}\n\t\t\t\t<\/div>\n\t\t\t<\/script>","protected":false},"excerpt":{"rendered":"<p>&#8220;Headless&#8221; or &#8220;decoupled&#8221; CMSs may be buzzwords you\u2019ve heard recently, but the principles they follow and systems they represent are neither fads nor new\u2014they help us solve real-world problems in scalable, maintainable ways. It\u2019s well understood that separation of concerns is best practice, especially when applied to separating content (HTML)\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/regionals.highedweb.org\/ne16\/schedule\/how-vassar-home-brewed-a-headless-cms\/\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_links_to":"","_links_to_target":""},"event_types":["session"],"session_categories":["content","integration","programming","workflow"],"class_list":["post-105","schedule","type-schedule","status-publish","hentry","event_types-session","session_categories-content","session_categories-integration","session_categories-programming","session_categories-workflow"],"event_date":"2016-03-18","event_date_display":"Friday, March 18, 2016","event_start_time":"16:45","event_end_time":"17:30","event_time_display":"4:45 - 5:30 p.m.","event_location":{"ID":66,"post_author":"32","post_date":"2016-01-17 07:49:38","post_date_gmt":"2016-01-17 12:49:38","post_content":"","post_title":"Cleveland L1","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"cleveland-l1","to_ping":"","pinged":"","post_modified":"2016-01-17 07:49:38","post_modified_gmt":"2016-01-17 12:49:38","post_content_filtered":"","post_parent":0,"guid":"http:\/\/regionals.highedweb.org\/ne16\/\/?post_type=locations&#038;p=66","menu_order":0,"post_type":"locations","post_mime_type":"","comment_count":"0","filter":"raw"},"event_speakers":[{"ID":104,"post_author":"32","post_date":"2016-01-17 09:13:51","post_date_gmt":"2016-01-17 14:13:51","post_content":"Ray Schwartz has worked at Vassar College for the last 10 years in both the Development and Communications offices. He\u2019s a web developer with an interest in acronyms \u2013 BEM, BPs, CSS, DRY, JS, HTML5, OOP, PHP, RWD, SASS, SMACSS, SOLID, W3C, WAI, WHATWG, WPO\u2014always striving make things that work in a progressively-enhanced, future-friendly, accessible way.","post_title":"Raymond Schwartz","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"raymond-schwartz","to_ping":"","pinged":"","post_modified":"2016-01-17 15:01:11","post_modified_gmt":"2016-01-17 20:01:11","post_content_filtered":"","post_parent":0,"guid":"http:\/\/regionals.highedweb.org\/ne16\/\/?post_type=speakers&#038;p=104","menu_order":0,"post_type":"speakers","post_mime_type":"","comment_count":"0","filter":"raw","twitter":""}],"event_hashtag":"ne14","session_slides_url":"https:\/\/medium.com\/vassar-design\/slides-from-how-vassar-home-brewed-a-headless-cms-given-at-highedweb-new-england-3-18-2016-235d12753c9c#.fula2fuk6","session_feedback_url":"https:\/\/www.surveymonkey.com\/r\/FPSKNVL","_links":{"self":[{"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/schedule\/105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/schedule"}],"about":[{"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/types\/schedule"}],"version-history":[{"count":1,"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/schedule\/105\/revisions"}],"predecessor-version":[{"id":175,"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/schedule\/105\/revisions\/175"}],"wp:attachment":[{"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/media?parent=105"}],"wp:term":[{"taxonomy":"event_types","embeddable":true,"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/event_types?post=105"},{"taxonomy":"session_categories","embeddable":true,"href":"https:\/\/regionals.highedweb.org\/ne16\/wp-json\/wp\/v2\/session_categories?post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}