{"id":2588,"date":"2020-06-07T12:57:40","date_gmt":"2020-06-07T11:57:40","guid":{"rendered":"https:\/\/new-blog.alexlamond.co.uk\/?p=2588"},"modified":"2020-07-10T13:02:42","modified_gmt":"2020-07-10T12:02:42","slug":"how-one-reddit-post-make-xtravel","status":"publish","type":"post","link":"https:\/\/blog.alexlamond.co.uk\/?p=2588","title":{"rendered":"How One Reddit Post Made xTravel Exist"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p class=\"has-drop-cap\">In September 2017 I made a post on Reddit<a href='https:\/\/index.co\/company\/reddit' data-index='' target='_blank' class='idc-hasIcon'><\/a> that, unknown to me at the time, would cause me to have a massive project on my hands.<\/p>\n\n\n\n<p>I\u2019d been living in Edinburgh for nearly a year and the <em>Transport for Edinburgh<\/em> app didn\u2019t support the Apple Watch meaning I had to take my phone out every-time I just wanted to check one bus. I had my <em><strong>\u201cHow hard can it be?\u201d<\/strong> <\/em>moment and decided I\u2019d make one for myself. A quick Google<a href='https:\/\/index.co\/company\/google-1' data-index='' target='_blank' class='idc-hasIcon'><\/a> search turned up the Transport for Edinburgh API and within a few days I had an API key.<\/p>\n\n\n\n<p>I started simple, I knew if I did it in PHP I could return JSON data to the app and make my life miles easier as I\u2019d done plenty of work with PHP. Fast forward a few evenings and my vision was coming to life<\/p>\n\n\n\n<figure class=\"wp-block-embed-imgur wp-block-embed is-type-rich is-provider-imgur\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"imgur-embed-pub\" lang=\"en\" data-id=\"5uL1XYt\"><a href=\"https:\/\/imgur.com\/5uL1XYt\" data-link=\"https:\/\/imgur.com\/5uL1XYt\" data-button=\"LinkPreview\" id=\"1\">View post on imgur.com<\/a><\/blockquote><script async src=\"\/\/s.imgur.com\/min\/embed.js\" charset=\"utf-8\"><\/script>\n<\/div><figcaption>The very first working build of EdiTravel on WatchOS<\/figcaption><\/figure>\n\n\n\n<p>The iOS app was non-existent, I was simply running the app to the Watch via Xcode, I decided to show off my achievement on Reddit and what came next I didn\u2019t expect. Comments came in telling me that it looked cool and that they\u2019d happily download the app. Problem. To launch an app on the App Store back then an iOS counterpart was necessary. I\u2019d never written an iOS app in my life and the very basic Watch app was my first venture into Swift.<\/p>\n\n\n\n<p>Let the work begin then. After a lot of research, reading <a href=\"http:\/\/stackoverflow.com\" data-link=\"http:\/\/stackoverflow.com\" data-button=\"LinkPreview\" id=\"2\">Stackoverflow<\/a> posts, a mild amount of swearing, a fair few late nights and app crashes later and on October 3rd the below screenshot was taken before being released on the iOS app store two days later.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"169\" height=\"300\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/03\/IMG_0099-169x300.jpeg\" alt=\"\" class=\"wp-image-2520 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/03\/IMG_0099-169x300.jpeg 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/03\/IMG_0099-768x1365.jpeg 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/03\/IMG_0099-576x1024.jpeg 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/03\/IMG_0099.jpeg 1242w\" data-sizes=\"(max-width: 169px) 100vw, 169px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 169px; --smush-placeholder-aspect-ratio: 169\/300;\" \/><\/figure><\/div>\n\n\n\n<p>The first ever release of EdiTravel. It\u2019s horrible, isn\u2019t it? Also, you have worked out that image correctly, I knew so little code and hadn\u2019t worked out the logic enough that you were limited to three stops \u2013 This actually stemmed from the Watch app code and logic, I originally designed the Watch app to show the three closest stops for speed and ease of use. A drastic rethink was needed, this wasn\u2019t functional nor user friendly.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"169\" height=\"300\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0249-169x300.png\" alt=\"\" class=\"wp-image-2594 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0249-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0249-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0249-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0249.png 1242w\" data-sizes=\"(max-width: 169px) 100vw, 169px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 169px; --smush-placeholder-aspect-ratio: 169\/300;\" \/><\/figure><\/div>\n\n\n\n<p>Two weeks later and I\u2019d worked out a way to show more than one stop, having a scrolling wheel at the top of the screen allowing you to get the nearest ten stops \u2013 Hey, it was better than nothing, I was in full time training for a new job and had never coded in Swift before the project. It\u2019s still not good enough though, right? Fine, let\u2019s fast forward a month to 2.0.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"169\" height=\"300\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0704-169x300.png\" alt=\"\" class=\"wp-image-2595 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0704-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0704-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0704-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_0704.png 1242w\" data-sizes=\"(max-width: 169px) 100vw, 169px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 169px; --smush-placeholder-aspect-ratio: 169\/300;\" \/><\/figure><\/div>\n\n\n\n<p>Much better right!? You\u2019ll see there\u2019s a tap for More Stops, it\u2019s not really changed much since then, it displayed a map with all the bus and Tram stops, you could select one and then view the screen above for that stop. Finally, a way to let users find a stop for themselves and not rely on some cruddy limit!<\/p>\n\n\n\n<p>I took a trip to Princes Street one day using my app and discovered a really, really big issue with this that had been there since the first release. I was looking to find out when the next 26 was.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>25 in 0 minutes\n12 in 2 minutes\n31 in 2 minutes<\/em><\/pre>\n\n\n\n<p>Hmm. \ud83e\udd14 It\u2019s in\u2026 er\u2026 oh. That\u2019s not good. Back again once more to the drawing board. The Service Updates page had been using a UITableView that would load a dynamic number of rows depending on how much data was given to it. Now there was an idea. Commence 3.0<\/p>\n\n\n\n<p>The first screenshots of 3.0 appear in early January, over two and a half months since our last one.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-1\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"576\" height=\"1024\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1468-576x1024.png\" alt=\"\" data-id=\"2596\" data-link=\"https:\/\/new-blog.alexlamond.co.uk\/?attachment_id=2596\" class=\"wp-image-2596 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1468-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1468-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1468-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1468.png 1242w\" data-sizes=\"(max-width: 576px) 100vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"576\" height=\"1024\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1469-576x1024.png\" alt=\"\" data-id=\"2597\" data-link=\"https:\/\/new-blog.alexlamond.co.uk\/?attachment_id=2597\" class=\"wp-image-2597 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1469-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1469-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1469-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1469.png 1242w\" data-sizes=\"(max-width: 576px) 100vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"576\" height=\"1024\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1488-576x1024.png\" alt=\"\" data-id=\"2598\" data-link=\"https:\/\/new-blog.alexlamond.co.uk\/?attachment_id=2598\" class=\"wp-image-2598 is-layout-flex wp-block-gallery-is-layout-flex lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1488-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1488-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1488-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_1488.png 1242w\" data-sizes=\"(max-width: 576px) 100vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Initially the plan was to return to having multiple stops from the homescreen. As you can imagine, this caused complete confusion. A 12 to Seafield in 19, 20 and 21 minutes. Scratch that. Let\u2019s go back to the idea from V2 where we had a stops map. Yep, that works, let\u2019s make them expandable if you want more information, yes, that works! This version actually was the first test for a feature that only launched in the middle of this year \u2013 Interchanges. If you were at a location where multiple routes departed from, for example the Gyle Centre, you\u2019d see all the buses leaving from the Gyle Centre and not just your nearest stop! So what happened to that feature? Why did it disappear for over a year? Changes. A lot of changes were made on the server code and database that broke this feature beyond repair at that point and the code had to be totally scratched.<\/p>\n\n\n\n<p>February 2018 saw the testing of Train Stations and getting directions to a location via the Google Maps API. March 2018 and the design had taken a drastic change for the better but still hadn\u2019t been released to the public<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"169\" height=\"300\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_2019-169x300.png\" alt=\"\" class=\"wp-image-2599 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_2019-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_2019-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_2019-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_2019.png 1242w\" data-sizes=\"(max-width: 169px) 100vw, 169px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 169px; --smush-placeholder-aspect-ratio: 169\/300;\" \/><\/figure><\/div>\n\n\n\n<p>Live locations, bus speeds, a map with their location and an Estimated flag were all added in. March saw the design of the Stops page change to the directional circles as they are today and in May the app was launched to the app store with a gleaming new design, a UICollectionView along the top, the Search now out of Beta and renamed to \u2018Get Directions\u2019 and the ability to click on a departure, view its live route and departure time to each stop on its route<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"169\" height=\"300\" data-src=\"https:\/\/new-blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_3366-169x300.png\" alt=\"\" class=\"wp-image-2600 lazyload\" data-srcset=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_3366-169x300.png 169w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_3366-768x1365.png 768w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_3366-576x1024.png 576w, https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2019\/10\/IMG_3366.png 1242w\" data-sizes=\"(max-width: 169px) 100vw, 169px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 169px; --smush-placeholder-aspect-ratio: 169\/300;\" \/><\/figure><\/div>\n\n\n\n<p>I was finally happy with the design. I was finally happy with the performance. I was finally happy with the way it worked and how simple it was to navigate. There was just one remaining niggle. Whenever a new route or bus stop was added, I had to push out a new software update, this information was stored in a file in the app build and so to update it meant needing to update the app, something which has now been fixed. Unfortunately our story goes a bit quiet at this point in terms of releases and UI changes, a bunch of bug fixes and performance improvements was all that really happened over the next year.<\/p>\n\n\n\n<p>Behind the scenes however, the biggest changes since the app launch were happening, a brand new API was being built. <strong><em>Bermane.<\/em><\/strong> Bermane is the beating heart of EdiTravel, without it the app is nothing and empty. Bermane is where all the requests from the app go to, a single, centralised API that feeds out to, at present, five different API\u2019s depending on what it is you are doing. Bermane queries the relevant API, parses the data into JSON and returns it to you, the user. The app then handles that response and deals with it as needs be. The great thing about this is none of the requests sent to the third-party API\u2019s can be narrowed down to a single user as they all come from Bermane. All the calls to Google Maps of-course provide your current coordinates if that is where you choose to come from and where you are going to but beyond that good luck using that to identify a singular person in the world. All the PHP & Server headers are going to be that of Bermane.<\/p>\n\n\n\n<p>Bermane is only just getting started, plans to build back up end points are well underway as it further geographical expansion beyond Edinburgh, London<a href='https:\/\/index.co\/company\/london' data-index='' target='_blank' class='idc-hasIcon'><\/a> and the National Rail service. Bermane is full of scripts you will never know run, it notifies me via Slack<a href='https:\/\/index.co\/company\/SlackHQ' data-index='' target='_blank' class='idc-hasIcon'><\/a> if an issue occurs with a query, if a bad response is received, it sends me a message. Like this for example<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>Bermane - Third Party Issue\nIssue is Glasgow Queen Street Low Level\nStop is GQL. \nMessage was: An error has occurred.<\/em><\/pre>\n\n\n\n<p>All I know is that someone requested Glasgow Queen Street Low Level and that the API threw a hissy fit at it. All I need to do now is simply investigate why. If my API goes down, a different service pings me a message<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>Monitor is DOWN: EdiTravel API - Reason: Connection Timeout<\/em><\/pre>\n\n\n\n<p>So, as you can see, what started out as a fun little post on Reddit to show off what I had done, turned into quite the journey over the last two years. I\u2019ve only just scratched the surface.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"has-very-dark-gray-color has-text-color wp-block-heading\">Download EdiTravel for free now on the iOS App Store \u2013 <a href=\"https:\/\/apps.apple.com\/gb\/app\/editravel\/id1291763420\" target=\"_blank\" rel=\"noreferrer noopener\" data-link=\"https:\/\/apps.apple.com\/gb\/app\/editravel\/id1291763420\" data-button=\"LinkPreview\" id=\"3\"><em><strong><span style=\"text-decoration: underline;\">https:\/\/apps.apple.com\/gb\/app\/editravel\/id1291763420<\/span><\/strong><\/em><\/a><\/h4>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>In September 2017 I made a post on Reddit that, unknown to me at the time, would cause me to have a massive project on &hellip;<\/p>\n","protected":false},"author":1,"featured_media":2784,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[385,3,6],"tags":[425,423,422,421,424],"series":[],"ppma_author":[554],"class_list":["post-2588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-personal","category-technology","tag-exist","tag-made","tag-post","tag-reddit","tag-xtravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How One Reddit Post Made xTravel Exist - Alex Lamond<\/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:\/\/blog.alexlamond.co.uk\/?p=2588\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How One Reddit Post Made xTravel Exist - Alex Lamond\" \/>\n<meta property=\"og:description\" content=\"In September 2017 I made a post on Reddit that, unknown to me at the time, would cause me to have a massive project on &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.alexlamond.co.uk\/?p=2588\" \/>\n<meta property=\"og:site_name\" content=\"Alex Lamond\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-07T11:57:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-10T12:02:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57-1024x372.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@alexlamond1\" \/>\n<meta name=\"twitter:site\" content=\"@alexlamond1\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588\"},\"author\":{\"name\":\"Alex\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"headline\":\"How One Reddit Post Made xTravel Exist\",\"datePublished\":\"2020-06-07T11:57:40+00:00\",\"dateModified\":\"2020-07-10T12:02:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588\"},\"wordCount\":1382,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Screenshot-2020-06-07-at-12.52.57.png\",\"keywords\":[\"exist\",\"made\",\"post\",\"reddit\",\"xtravel\"],\"articleSection\":[\"iOS\",\"Personal\",\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588\",\"name\":\"How One Reddit Post Made xTravel Exist - Alex Lamond\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Screenshot-2020-06-07-at-12.52.57.png\",\"datePublished\":\"2020-06-07T11:57:40+00:00\",\"dateModified\":\"2020-07-10T12:02:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#primaryimage\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Screenshot-2020-06-07-at-12.52.57.png\",\"contentUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Screenshot-2020-06-07-at-12.52.57.png\",\"width\":3360,\"height\":1222},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=2588#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How One Reddit Post Made xTravel Exist\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/\",\"name\":\"Alex Lamond\",\"description\":\"Technology &amp; Ramblings.\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\",\"name\":\"Alex\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g\",\"caption\":\"Alex\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71\"},\"sameAs\":[\"https:\\\/\\\/alexlamond.co.uk\",\"https:\\\/\\\/x.com\\\/alexlamond1\"],\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How One Reddit Post Made xTravel Exist - Alex Lamond","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:\/\/blog.alexlamond.co.uk\/?p=2588","og_locale":"en_GB","og_type":"article","og_title":"How One Reddit Post Made xTravel Exist - Alex Lamond","og_description":"In September 2017 I made a post on Reddit that, unknown to me at the time, would cause me to have a massive project on &hellip;","og_url":"https:\/\/blog.alexlamond.co.uk\/?p=2588","og_site_name":"Alex Lamond","article_published_time":"2020-06-07T11:57:40+00:00","article_modified_time":"2020-07-10T12:02:42+00:00","og_image":[{"width":1024,"height":372,"url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57-1024x372.png","type":"image\/png"}],"author":"Alex","twitter_card":"summary_large_image","twitter_creator":"@alexlamond1","twitter_site":"@alexlamond1","twitter_misc":{"Written by":"Alex","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#article","isPartOf":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588"},"author":{"name":"Alex","@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"headline":"How One Reddit Post Made xTravel Exist","datePublished":"2020-06-07T11:57:40+00:00","dateModified":"2020-07-10T12:02:42+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588"},"wordCount":1382,"commentCount":0,"publisher":{"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"image":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#primaryimage"},"thumbnailUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57.png","keywords":["exist","made","post","reddit","xtravel"],"articleSection":["iOS","Personal","Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.alexlamond.co.uk\/?p=2588#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588","url":"https:\/\/blog.alexlamond.co.uk\/?p=2588","name":"How One Reddit Post Made xTravel Exist - Alex Lamond","isPartOf":{"@id":"https:\/\/blog.alexlamond.co.uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#primaryimage"},"image":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#primaryimage"},"thumbnailUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57.png","datePublished":"2020-06-07T11:57:40+00:00","dateModified":"2020-07-10T12:02:42+00:00","breadcrumb":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.alexlamond.co.uk\/?p=2588"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#primaryimage","url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57.png","contentUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57.png","width":3360,"height":1222},{"@type":"BreadcrumbList","@id":"https:\/\/blog.alexlamond.co.uk\/?p=2588#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.alexlamond.co.uk\/"},{"@type":"ListItem","position":2,"name":"How One Reddit Post Made xTravel Exist"}]},{"@type":"WebSite","@id":"https:\/\/blog.alexlamond.co.uk\/#website","url":"https:\/\/blog.alexlamond.co.uk\/","name":"Alex Lamond","description":"Technology &amp; Ramblings.","publisher":{"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.alexlamond.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3","name":"Alex","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71","url":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","caption":"Alex"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71"},"sameAs":["https:\/\/alexlamond.co.uk","https:\/\/x.com\/alexlamond1"],"url":"https:\/\/blog.alexlamond.co.uk\/?author=1"}]}},"author_meta":{"display_name":"Alex","author_link":"https:\/\/blog.alexlamond.co.uk\/?author=1"},"featured_img":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57-300x109.png","jetpack_featured_media_url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2020\/06\/Screenshot-2020-06-07-at-12.52.57.png","coauthors":[{"link":"https:\/\/blog.alexlamond.co.uk\/?author=1","display_name":"Alex"}],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=385\" class=\"advgb-post-tax-term\">iOS<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=3\" class=\"advgb-post-tax-term\">Personal<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">Technology<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">iOS<\/span>","<span class=\"advgb-post-tax-term\">Personal<\/span>","<span class=\"advgb-post-tax-term\">Technology<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">exist<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">made<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">post<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">reddit<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">xtravel<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">exist<\/span>","<span class=\"advgb-post-tax-term\">made<\/span>","<span class=\"advgb-post-tax-term\">post<\/span>","<span class=\"advgb-post-tax-term\">reddit<\/span>","<span class=\"advgb-post-tax-term\">xtravel<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 6 years ago","modified":"Updated 6 years ago"},"absolute_dates":{"created":"Posted on 7th June 2020","modified":"Updated on 10th July 2020"},"absolute_dates_time":{"created":"Posted on 7th June 2020 12:57 pm","modified":"Updated on 10th July 2020 1:02 pm"},"featured_img_caption":"","series_order":null,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pgAAHS-FK","jetpack_likes_enabled":false,"authors":[{"term_id":554,"user_id":1,"is_guest":0,"slug":"alex","display_name":"Alex","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2588"}],"version-history":[{"count":18,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2588\/revisions"}],"predecessor-version":[{"id":3047,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2588\/revisions\/3047"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/media\/2784"}],"wp:attachment":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2588"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=2588"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fppma_author&post=2588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}