{"id":893,"date":"2015-05-18T17:57:50","date_gmt":"2015-05-18T17:57:50","guid":{"rendered":"https:\/\/gosqeng.test\/?p=893"},"modified":"2019-11-28T11:51:28","modified_gmt":"2019-11-28T11:51:28","slug":"may-hack-day","status":"publish","type":"post","link":"https:\/\/www.gosquared.com\/blog\/may-hack-day","title":{"rendered":"May Hack Day"},"content":{"rendered":"<p>Every once in a while, we love to hold a hack day at GoSquared. It\u2019s an important part of our company culture &#8211; it gives everyone on the team, both technical and non-technical, the chance to spend a day working on anything that piques their interest.<\/p>\n<p>Our last hack day took place last week on Friday 15th May and I wanted to showcase the excellent hacks that were produced on the day &#8211; we saw some real gems!<\/p>\n<h3 id=\"gosquared-for-apple-watch\"><a class=\"headeranchor-link\" href=\"#gosquared-for-apple-watch\" name=\"user-content-gosquared-for-apple-watch\"><\/a>GoSquared for Apple Watch<\/h3>\n<p>By <a href=\"https:\/\/twitter.com\/HughHopkins\" target=\"_blank\" rel=\"noopener noreferrer\">Hugh<\/a><\/p>\n<p><img decoding=\"async\" class=\" aligncenter\" src=\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg\" alt=\"\" \/><br \/>\n<em>Above: James gleefully checking GoSquared on Apple Watch.<\/em><\/p>\n<p>That\u2019s right, you heard it! GoSquared running on Apple Watch.<\/p>\n<p>Hugh\u2019s hack saw him getting his hands dirty with WatchKit development in Swift using Xcode. Using data from the <a href=\"https:\/\/www.gosquared.com\/docs\/\">GoSquared API<\/a>, he created an Apple Watch app which displays the number of people online on your website.<\/p>\n<p>Being the only member on the team to own an Apple Watch so far, James was keen to get up and running with the app. We verified the app successfully ran natively on Apple Watch and, much to his delight, James now has a new excuse to demonstrate his shiny new wearable to everyone in the office yet again!<\/p>\n<h3 id=\"speed-date\"><a class=\"headeranchor-link\" href=\"#speed-date\" name=\"user-content-speed-date\"><\/a>speed-date<\/h3>\n<p>By <a href=\"https:\/\/twitter.com\/floopily\" target=\"_blank\" rel=\"noopener noreferrer\">JT<\/a><br \/>\nAvailable on <a href=\"https:\/\/www.npmjs.com\/package\/speed-date\" target=\"_blank\" rel=\"noopener noreferrer\">npm<\/a> and <a href=\"https:\/\/github.com\/gosquared\/speed-date\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>.<\/p>\n<pre><code class=\"language-javascript\">\nvar speedDate = require('speed-date');\nvar theDate = new Date(2006, 1, 3, 12, 34, 56);\nvar formatter = speedDate('YYYY-MM-DD HH:mm:ss');\n\nformatter(theDate); \/\/ '2006-02-03 12:34:56'\n<\/code>\n<\/pre>\n<p>JT\u2019s inspiration for his hack stemmed from our ever-lasting frustration with date handling in JavaScript &#8211; specifically the slow performance of formatting Date objects as strings in <a href=\"http:\/\/momentjs.com\" target=\"_blank\" rel=\"noopener noreferrer\">Moment.js<\/a>. He decided enough was enough and took this opportunity to write a super-fast date formatting module called <a href=\"https:\/\/www.npmjs.com\/package\/speed-date\" target=\"_blank\" rel=\"noopener noreferrer\">speed-date<\/a>.<\/p>\n<p>Speed-date is designed to help you optimise formatting lots of date objects into strings. So if your application stringifies many date objects with the same format over and over again, this\u2019ll improve performance considerably. In fact, it\u2019s ~15-20x faster than Moment.js with repeated use of the same formatter function. See the <a href=\"https:\/\/github.com\/gosquared\/speed-date\/blob\/master\/benchmark\/results.txt\" target=\"_blank\" rel=\"noopener noreferrer\">benchmarks<\/a>.<\/p>\n<p>Our API formats a huge number of date objects per second, so this is our primary use case.<\/p>\n<h3 id=\"new-homepage-and-pricing-page\"><a class=\"headeranchor-link\" href=\"#new-homepage-and-pricing-page\" name=\"user-content-new-homepage-and-pricing-page\"><\/a>New Pricing pages<\/h3>\n<p>By <a href=\"https:\/\/twitter.com\/jamesjgill\" target=\"_blank\" rel=\"noopener noreferrer\">James<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_pricing.png\" \/><\/p>\n<p>James dusted off his designer hat and created a fresh new look for our <a href=\"https:\/\/www.gosquared.com\/plans\/\" target=\"_blank\" rel=\"noopener noreferrer\">pricing<\/a> pages.<\/p>\n<p>Cranking through the process incredibly quickly, he managed to design, code, and deploy the new pages all within the one day! The cleaner, simpler pages more clearly demonstrate our pricing tiers in a more visually comprehendable way.<\/p>\n<h3 id=\"eventador\"><a class=\"headeranchor-link\" href=\"#eventador\" name=\"user-content-eventador\"><\/a>Eventador<\/h3>\n<p>By <a href=\"https:\/\/twitter.com\/thedeveloper\" target=\"_blank\" rel=\"noopener noreferrer\">Geoff<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_eventador.png\" \/><\/p>\n<p>The goal of my hack was to bring powerful event-based analytics to GoSquared. Codenamed \u201cEventador\u201d, the project is a web UI backed by a custom-built API for querying event data en-masse in seconds, and visualising the results graphically.<\/p>\n<p>The UI (obviously) looks pretty terrible, but the focus of the project first and foremost was on functionality and powerful querying of the data, and it works!<\/p>\n<p>I built the MVC web app and its server backend from scratch with the help of a few frameworks: <a href=\"http:\/\/expressjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">express.js<\/a> for the server, <a href=\"http:\/\/getbootstrap.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bootstrap<\/a>, <a href=\"https:\/\/jquery.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery<\/a>, <a href=\"http:\/\/d3js.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">d3.js<\/a>, <a href=\"http:\/\/www.embeddedjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ejs<\/a> and <a href=\"http:\/\/lesscss.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">less<\/a> for the frontend. I used <a href=\"http:\/\/babeljs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Babel<\/a> which handles the es6-to-es5 transpilation allowing me to write ES6 JavaScript on both client-side and server-side. We use Babel for GoSquared\u2019s web apps and I must say it works excellently and offers <a href=\"https:\/\/kangax.github.io\/compat-table\/es6\/#babel\" target=\"_blank\" rel=\"noopener noreferrer\">wide coverage of ES6 features<\/a>.<\/p>\n<h3 id=\"prox\"><a class=\"headeranchor-link\" href=\"#prox\" name=\"user-content-prox\"><\/a>Prox<\/h3>\n<p>By <a href=\"https:\/\/twitter.com\/simon_tabor\" target=\"_blank\" rel=\"noopener noreferrer\">Simon<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_prox_embed.png\" \/><\/p>\n<p>On many occasions, we\u2019ve seen our users wanting to display GoSquared data on their sites using widgets, or using the data publicly on their sites. Since the data comes from our API, this can be a problem if a high volume of visitors view the page and exceed the API key\u2019s rate limit by periodically requesting data for each visitor. Not to mention the API key would be publicly visible if the data wasn\u2019t going via a proxy backend.<\/p>\n<p>Simon solved these problems by building prox, a secure, highly-available, cached reverse-proxy for the GoSquared API. It works by allowing users to create a key through which they can share data from certain API endpoints. Prox can serve up the raw data from the API, and can even serve a selection of pre-built static widgets, similar to those on our <a href=\"https:\/\/www.gosquared.com\/labs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Labs page<\/a>, ready for embedding straight into a page.<\/p>\n<p>On top of all that, prox is <em>fast<\/em>. It\u2019s cached on multiple levels, starting with a CDN to cache data globally, then a process-level LRU and Redis-backed cache using our <a href=\"https:\/\/www.npmjs.com\/package\/node-stash\" target=\"_blank\" rel=\"noopener noreferrer\">node-stash<\/a> module. All of this caching means you can throw as many requests to prox as you want and it\u2019ll reliably respond with lightning speed. No more API limits! And even though it&#8217;s cached, the data updates regularly so you\u2019ll still get it in near real-time.<\/p>\n<h3 id=\"summary\"><a class=\"headeranchor-link\" href=\"#summary\" name=\"user-content-summary\"><\/a>Summary<\/h3>\n<p>So there you have it &#8211; a fruitful range of hacks from Watch apps to open source modules to API proxies. Another productive hack day!<\/p>\n<p>Hugh\u2019s Watch app isn\u2019t available in the App Store yet, but please let us know if you\u2019d like to see it there. If you\u2019re coding in node.js you can already use JT\u2019s <a href=\"https:\/\/www.npmjs.com\/package\/speed-date\" target=\"_blank\" rel=\"noopener noreferrer\">speed-date<\/a> module as it\u2019s open source and up on npm. Finally, anyone can use Prox, but you\u2019ll need to <a href=\"https:\/\/www.gosquared.com\/support\/\" target=\"_blank\" rel=\"noopener noreferrer\">get in touch<\/a> with us to request access first.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every once in a while, we love to hold a hack day at GoSquared. It\u2019s an important part of our company culture &#8211; it gives everyone on the team, both technical and non-technical, the chance to spend a day working on anything that peaks their interest.<\/p>\n<p>Our last hack day took place last week on Friday 15th May and I wanted to showcase the excellent hacks that were produced on the day &#8211; we saw some real gems!<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1452],"tags":[101,103,622,832],"class_list":["post-893","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-api","tag-app","tag-module","tag-speed"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.6 (Yoast SEO v19.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>May Hack Day - GoSquared Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.gosquared.com\/blog\/may-hack-day\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"May Hack Day\" \/>\n<meta property=\"og:description\" content=\"Every once in a while, we love to hold a hack day at GoSquared. It\u2019s an important part of our company culture - it gives everyone on the team, both technical and non-technical, the chance to spend a day working on anything that peaks their interest. Our last hack day took place last week on Friday 15th May and I wanted to showcase the excellent hacks that were produced on the day - we saw some real gems!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.gosquared.com\/blog\/may-hack-day\" \/>\n<meta property=\"og:site_name\" content=\"GoSquared Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GoSquared\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-18T17:57:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-28T11:51:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TheDeveloper\" \/>\n<meta name=\"twitter:site\" content=\"@GoSquared\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geoff Wagstaff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\",\"name\":\"GoSquared\",\"url\":\"https:\/\/www.gosquared.com\/blog\/\",\"sameAs\":[\"https:\/\/instagram.com\/gosquaredteam\",\"https:\/\/www.linkedin.com\/company\/go-squared-ltd.\",\"https:\/\/www.facebook.com\/GoSquared\",\"https:\/\/twitter.com\/GoSquared\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png\",\"contentUrl\":\"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png\",\"width\":1270,\"height\":250,\"caption\":\"GoSquared\"},\"image\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#website\",\"url\":\"https:\/\/www.gosquared.com\/blog\/\",\"name\":\"GoSquared Blog\",\"description\":\"Turn visitors into customers.\",\"publisher\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.gosquared.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage\",\"url\":\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg\",\"contentUrl\":\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage\",\"url\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day\",\"name\":\"May Hack Day - GoSquared Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage\"},\"datePublished\":\"2015-05-18T17:57:50+00:00\",\"dateModified\":\"2019-11-28T11:51:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.gosquared.com\/blog\/may-hack-day\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.gosquared.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"May Hack Day\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage\"},\"author\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448\"},\"headline\":\"May Hack Day\",\"datePublished\":\"2015-05-18T17:57:50+00:00\",\"dateModified\":\"2019-11-28T11:51:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage\"},\"wordCount\":863,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg\",\"keywords\":[\"API\",\"App\",\"Module\",\"Speed\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.gosquared.com\/blog\/may-hack-day#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448\",\"name\":\"Geoff Wagstaff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g\",\"caption\":\"Geoff Wagstaff\"},\"sameAs\":[\"https:\/\/twitter.com\/TheDeveloper\"],\"url\":\"https:\/\/www.gosquared.com\/blog\/author\/echo\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"May Hack Day - GoSquared Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.gosquared.com\/blog\/may-hack-day","og_locale":"en_US","og_type":"article","og_title":"May Hack Day","og_description":"Every once in a while, we love to hold a hack day at GoSquared. It\u2019s an important part of our company culture - it gives everyone on the team, both technical and non-technical, the chance to spend a day working on anything that peaks their interest. Our last hack day took place last week on Friday 15th May and I wanted to showcase the excellent hacks that were produced on the day - we saw some real gems!","og_url":"https:\/\/www.gosquared.com\/blog\/may-hack-day","og_site_name":"GoSquared Blog","article_publisher":"https:\/\/www.facebook.com\/GoSquared","article_published_time":"2015-05-18T17:57:50+00:00","article_modified_time":"2019-11-28T11:51:28+00:00","og_image":[{"url":"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg"}],"twitter_card":"summary_large_image","twitter_creator":"@TheDeveloper","twitter_site":"@GoSquared","twitter_misc":{"Written by":"Geoff Wagstaff","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.gosquared.com\/blog\/#organization","name":"GoSquared","url":"https:\/\/www.gosquared.com\/blog\/","sameAs":["https:\/\/instagram.com\/gosquaredteam","https:\/\/www.linkedin.com\/company\/go-squared-ltd.","https:\/\/www.facebook.com\/GoSquared","https:\/\/twitter.com\/GoSquared"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png","contentUrl":"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png","width":1270,"height":250,"caption":"GoSquared"},"image":{"@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.gosquared.com\/blog\/#website","url":"https:\/\/www.gosquared.com\/blog\/","name":"GoSquared Blog","description":"Turn visitors into customers.","publisher":{"@id":"https:\/\/www.gosquared.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gosquared.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage","url":"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg","contentUrl":"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg"},{"@type":"WebPage","@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage","url":"https:\/\/www.gosquared.com\/blog\/may-hack-day","name":"May Hack Day - GoSquared Blog","isPartOf":{"@id":"https:\/\/www.gosquared.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage"},"datePublished":"2015-05-18T17:57:50+00:00","dateModified":"2019-11-28T11:51:28+00:00","breadcrumb":{"@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gosquared.com\/blog\/may-hack-day"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gosquared.com\/blog"},{"@type":"ListItem","position":2,"name":"May Hack Day"}]},{"@type":"Article","@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#article","isPartOf":{"@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage"},"author":{"@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448"},"headline":"May Hack Day","datePublished":"2015-05-18T17:57:50+00:00","dateModified":"2019-11-28T11:51:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#webpage"},"wordCount":863,"commentCount":0,"publisher":{"@id":"https:\/\/www.gosquared.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.gosquared.com\/blog\/may-hack-day#primaryimage"},"thumbnailUrl":"https:\/\/static.gosquared.com\/images\/engineering\/15_05_18_gosquared_watch.jpg","keywords":["API","App","Module","Speed"],"articleSection":["Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.gosquared.com\/blog\/may-hack-day#respond"]}]},{"@type":"Person","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448","name":"Geoff Wagstaff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g","caption":"Geoff Wagstaff"},"sameAs":["https:\/\/twitter.com\/TheDeveloper"],"url":"https:\/\/www.gosquared.com\/blog\/author\/echo"}]}},"wps_subtitle":"Apple Watch app, pricing page designs, modules and more\u2026","_links":{"self":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts\/893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/comments?post=893"}],"version-history":[{"count":0,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts\/893\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/media?parent=893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/categories?post=893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/tags?post=893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}