{"version":1,"pages":[{"id":"-L9htzNU4M3nnyunJo_t","title":"Introduction","pathname":"/coding-as-a-craft","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"BCc1LFaaIlnHaD9MX3rC","title":"Learning objectives","pathname":"/coding-as-a-craft/readme/learning-objectives","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-L9hu2bt3ZHJq_Cp0OJb","title":"Your first website","pathname":"/coding-as-a-craft/your-first-website","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2buAUmF7GT7HUK7","title":"ATM Challenge - Ruby basics","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2bvu-wQ__3wSVxj","title":"Step 1","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-1","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2bwLrnkLrqwOb7c","title":"Step 2","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-2","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2bxd0PSFQ8z5r01","title":"Step 3","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-3","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2bygwDE1h0DnD2G","title":"Step 4","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-4","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2bzYzm9BobGg3bI","title":"Step 5","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-5","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c-yoKO5m5WUetI","title":"Step 6","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-6","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c0Jhjuo6jdSrnB","title":"Step 7","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-7","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c1U7vZ98NrFepr","title":"Step 8","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-8","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c2pxukXcgACIto","title":"Step 9","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-9","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c3OtZyX21GtS1Q","title":"Step 10","pathname":"/coding-as-a-craft/atm-challenge-ruby-basics/step-10","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"ATM Challenge - Ruby basics"}]},{"id":"-L9hu2c4AFI1ebYsMAP1","title":"Library challenge - Advanced Ruby","pathname":"/coding-as-a-craft/library-challenge-advanced-ruby","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2c5a5xP0uz80BRR","title":"Important topics","pathname":"/coding-as-a-craft/library-challenge-advanced-ruby/important-topics","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Library challenge - Advanced Ruby"}]},{"id":"-L9hu2c66Htkpkkrnlaw","title":"Javascript Introduction","pathname":"/coding-as-a-craft/javascript-introduction","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2c7987VfEVTTVFh","title":"Variables, objects and arrays","pathname":"/coding-as-a-craft/javascript-introduction/variables-objects-and-arrays","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2c8KSrxU71TehSG","title":"Comparisons and Manipulations","pathname":"/coding-as-a-craft/javascript-introduction/comparisons-and-manipulations","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2c9CcDXdb873z44","title":"Javascript Sample Problems","pathname":"/coding-as-a-craft/javascript-introduction/javascript-sample-problems","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2cANcMvyT8FbWoz","title":"Defining Functions","pathname":"/coding-as-a-craft/javascript-introduction/defining-functions","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2cBQ_yMmKRZ4Emj","title":"Prototypes & Classes","pathname":"/coding-as-a-craft/javascript-introduction/prototypes-and-classes","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2cC37ja3AoGOROR","title":"Miscellaneous","pathname":"/coding-as-a-craft/javascript-introduction/miscellaneous","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Javascript Introduction"}]},{"id":"-L9hu2cD79e5n7jZHqAm","title":"BMI Challenge - JavaScript basics","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cE2zHli6LWjsPn","title":"Jasmine - Set up","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/jasmine-set-up","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cFsfGhPms9ujgb","title":"First tests","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/first-tests","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cGQMde3Uzapwoh","title":"The calculator","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/the-calculator","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cHN8zEHak_CQ2D","title":"The Document-Object Model","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/the-document-object-model","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cI916N5vw-Sjzj","title":"Web interface","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/web-interface","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cJoGsQ0--yrLwR","title":"Acceptance tests","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/acceptance-tests","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cKmMjllhJJ530P","title":"Moving on","pathname":"/coding-as-a-craft/bmi-challenge-javascript-basics/moving-on","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BMI Challenge - JavaScript basics"}]},{"id":"-L9hu2cLGzHPlau2VBY-","title":"Fizz Buzz in JavaScript","pathname":"/coding-as-a-craft/fizz-buzz-in-javascript","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cMaTkMyiNOo0rg","title":"NodeJS","pathname":"/coding-as-a-craft/fizz-buzz-in-javascript/nodejs","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Fizz Buzz in JavaScript"}]},{"id":"-L9hu2cNRnw2sKvi205f","title":"Checkout challenge","pathname":"/coding-as-a-craft/checkout-challenge","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cOqBmT5agQkNe3","title":"Open Weather Challenge","pathname":"/coding-as-a-craft/open-weather-challenge","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cP7jm4xwZiybaA","title":"SlowFood challenge - OO & TDD","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cQBxs5_R0k-DOB","title":"Step 1 - Setting up the project","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-1-setting-up-the-project","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cR1L_Gf5byd4OJ","title":"Step 2 - Focus on the user experience","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-2-focus-on-the-user-experience","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cSNslrA4-27-Zn","title":"Step 3 - Entity Relationship Diagrams","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-3-entity-relationship-diagrams","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cTEF6q-SXY-Wv4","title":"Step 4 - Implementing the core features","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-4-implementing-the-core-features","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cUecBfE_FSVZZr","title":"Step 5 - Working with the database","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-5-working-with-the-database","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cVI-Q2hEb2eNR2","title":"Step 6 - Working with BDD","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/step-6-working-with-bdd","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cWjKcfLM6a-vO_","title":"Extra - Setting up RSpec & Cucumber","pathname":"/coding-as-a-craft/slowfood-challenge-oo-and-tdd/extra-setting-up-rspec-and-cucumber","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"SlowFood challenge - OO & TDD"}]},{"id":"-L9hu2cXLDN_JK6c2FVS","title":"Ruby On Rails introduction","pathname":"/coding-as-a-craft/ruby-on-rails-introduction","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cYFHRYUAekb450","title":"Static Website with Middleman","pathname":"/coding-as-a-craft/static-website-with-middleman","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cZVk4LaWNIifuI","title":"Week lab","pathname":"/coding-as-a-craft/static-website-with-middleman/week-lab","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2c_Xic7tz0mSOes","title":"Setup Middleman","pathname":"/coding-as-a-craft/static-website-with-middleman/setup-middleman","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2canpvX9BLXbJ8w","title":"HAML - HTML abstraction markup language","pathname":"/coding-as-a-craft/static-website-with-middleman/haml-html-abstraction-markup-language","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2cbA2YWaVZ5qpNC","title":"SASS","pathname":"/coding-as-a-craft/static-website-with-middleman/sass","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2cczvj8H1UKi93c","title":"Accessing data","pathname":"/coding-as-a-craft/static-website-with-middleman/accessing-data","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2cd5oK8dC1vnv4w","title":"Partials","pathname":"/coding-as-a-craft/static-website-with-middleman/partials","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2cebhhtuF3zTWb6","title":"Deploy to Github pages","pathname":"/coding-as-a-craft/static-website-with-middleman/deploy-to-github-pages","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Static Website with Middleman"}]},{"id":"-L9hu2cf7tHRZ2YXPZZC","title":"BDD with Rails","pathname":"/coding-as-a-craft/bdd-with-rails","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cgl_SHaCTsk-Nn","title":"Exercise - Implement extra features","pathname":"/coding-as-a-craft/bdd-with-rails/exercise-implement-extra-features","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"BDD with Rails"}]},{"id":"-L9hu2ch-2DbRe9I_Q_j","title":"Rails Messaging","pathname":"/coding-as-a-craft/rails-messaging","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cisXSxkB7n3PCo","title":"Working with Legacy Code","pathname":"/coding-as-a-craft/rails-messaging/working-with-legacy-code","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Rails Messaging"}]},{"id":"-L9hu2cjGAWlieCWWFPy","title":"Tips and Tricks","pathname":"/coding-as-a-craft/rails-messaging/tips-and-tricks","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Rails Messaging"}]},{"id":"-L9hu2ckj8-h6LaYMn47","title":"Mid Course Project","pathname":"/coding-as-a-craft/mid-course-project","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2clL4-D9UzW9Urn","title":"Project Schedule","pathname":"/coding-as-a-craft/mid-course-project/project-schedule","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Mid Course Project"}]},{"id":"-L9hu2cm3f-RcOuoI0gD","title":"Going mobile with Ionic","pathname":"/coding-as-a-craft/going-mobile-with-ionic","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2cnifwTn1jYMkog","title":"Setup","pathname":"/coding-as-a-craft/going-mobile-with-ionic/setup","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Going mobile with Ionic"}]},{"id":"-L9hu2cohajKhsLqi3-g","title":"Javascript Modules","pathname":"/coding-as-a-craft/going-mobile-with-ionic/javascript-modules","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Going mobile with Ionic"}]},{"id":"-L9hu2cpMJtEtfIqa4eO","title":"Introduction to Angular","pathname":"/coding-as-a-craft/going-mobile-with-ionic/introduction-to-angular","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Going mobile with Ionic"}]},{"id":"-L9hu2cq-f2qtQ5esmru","title":"Getting to Know Ionic - BMI Challenge","pathname":"/coding-as-a-craft/going-mobile-with-ionic/getting-to-know-ionic-bmi-challenge","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Going mobile with Ionic"}]},{"id":"-LJ2GXQBjfh8TGKkw5Og","title":"Ionic unit and e2e testing","pathname":"/coding-as-a-craft/going-mobile-with-ionic/ionic-unit-and-e2e-testing","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Going mobile with Ionic"}]},{"id":"-L9hu2crNQBlaZSxu3kA","title":"The Cooper test challenge","pathname":"/coding-as-a-craft/the-cooper-test-challenge","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2csuz69E6Phgpui","title":"The logic","pathname":"/coding-as-a-craft/the-cooper-test-challenge/the-logic","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2ctgwyBs-8e6N2e","title":"The Back-end","pathname":"/coding-as-a-craft/the-cooper-test-challenge/the-back-end","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2cu50ZIAX_PTnZL","title":"The Client","pathname":"/coding-as-a-craft/the-cooper-test-challenge/the-client","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2cv1D7HqKof3JIm","title":"Connecting the dots","pathname":"/coding-as-a-craft/the-cooper-test-challenge/connecting-the-dots","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2cwNiSwwjt3f0hg","title":"Saving and retrieving data","pathname":"/coding-as-a-craft/the-cooper-test-challenge/saving-and-retrieving-data","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2cxc9NK9CWvULIW","title":"Display charts","pathname":"/coding-as-a-craft/the-cooper-test-challenge/display-charts","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2cyvSOFR5DVxRz8","title":"Wrapping up","pathname":"/coding-as-a-craft/the-cooper-test-challenge/wrapping-up","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2czSQtnjxrBGN4s","title":"Results tables","pathname":"/coding-as-a-craft/the-cooper-test-challenge/results-tables","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"The Cooper test challenge"}]},{"id":"-L9hu2d-0QZFtCA69lRP","title":"News Room Challenge","pathname":"/coding-as-a-craft/news-room-challenge","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2d0SB9PDvS2ik3i","title":"Main features","pathname":"/coding-as-a-craft/news-room-challenge/main-features","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"}]},{"id":"-L9hu2d1vwx5trBYgYzu","title":"Design Sprint","pathname":"/coding-as-a-craft/news-room-challenge/design-sprint","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"}]},{"id":"-L9hu2d2bJXAKXHGktVD","title":"Pivotal Tracker","pathname":"/coding-as-a-craft/news-room-challenge/pivotal-tracker","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"}]},{"id":"-L9hu2d3GVOU9s8iccfy","title":"Guides","pathname":"/coding-as-a-craft/news-room-challenge/guides","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"}]},{"id":"-L9hu2d4MvlVlh0DOQsV","title":"i18n with Ruby on Rails","pathname":"/coding-as-a-craft/news-room-challenge/guides/i18n-with-ruby-on-rails","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2d5qkub2SAC-55Q","title":"Rails 5.2 Scaffold","pathname":"/coding-as-a-craft/news-room-challenge/guides/rails-5.2-scaffold","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2d62KpEo7NHFBz_","title":"Attachments with Active Storage","pathname":"/coding-as-a-craft/news-room-challenge/guides/attachments-with-active-storage","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2d7V9zIuHuMpzDQ","title":"Encrypted Credentials in Rails 5.2","pathname":"/coding-as-a-craft/news-room-challenge/guides/encrypted-credentials-in-rails-5.2","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2d85tfXje2PE1WZ","title":"Role-Based Authorization","pathname":"/coding-as-a-craft/news-room-challenge/guides/role-based-authorization","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2d9lYiji1ery5oV","title":"Rendering JSON objects in Rails","pathname":"/coding-as-a-craft/news-room-challenge/guides/rendering-json-objects-in-rails","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2dAL9f0KfoKLFB-","title":"Testing Ionic Applications","pathname":"/coding-as-a-craft/news-room-challenge/guides/testing-ionic-applications","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"News Room Challenge"},{"label":"Guides"}]},{"id":"-L9hu2dBMHsxp4uKO64T","title":"SlowFood API - API first or second?","pathname":"/coding-as-a-craft/slowfood-api-api-first-or-second","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2dCSxi_DYUihXnm","title":"Extras","pathname":"/coding-as-a-craft/extras","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2dDuOAs9PhR1qSp","title":"Naming Standards","pathname":"/coding-as-a-craft/extras/naming_standards","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-LJ2GXQ_VCYNYvYKV4Wp","title":"Classes vs Modules","pathname":"/coding-as-a-craft/extras/classes_and_modules","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dFDVEWQQtiYwdG","title":"Code structure","pathname":"/coding-as-a-craft/extras/code-structure","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dG1RfuF2f6gmcv","title":"Bower","pathname":"/coding-as-a-craft/extras/bower","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dH19Bmsp6Vw-Rx","title":"Code Review Instructions","pathname":"/coding-as-a-craft/extras/code-review-instructions","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dIjS_OqS1fh1uQ","title":"About README's","pathname":"/coding-as-a-craft/extras/about-readmes","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dJL0BeyJrIGh47","title":"MVC","pathname":"/coding-as-a-craft/extras/model_view_controller","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dK-0qJi9yybUpd","title":"Three-Tier Architecture","pathname":"/coding-as-a-craft/extras/three-tier_architecture","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dLPQCK_B5NBHBD","title":"Rails Scaffold","pathname":"/coding-as-a-craft/extras/rails-scaffold","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-LJ2GXQhFFd0loeWIDeP","title":"Tailwind css with Rails","pathname":"/coding-as-a-craft/extras/tailwind-css-with-rails","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Extras"}]},{"id":"-L9hu2dMNb0rwfWJ8l_S","title":"Career","pathname":"/coding-as-a-craft/career","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2dN4Yxy4lZeUkAl","title":"General Personality","pathname":"/coding-as-a-craft/career/general-personality","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dOQm4DrpRXXBKH","title":"Agile Mindset","pathname":"/coding-as-a-craft/career/agile-mindset","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dPNYewyfr-HQ0i","title":"Basic Ruby","pathname":"/coding-as-a-craft/career/basic-ruby","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dQIoMYamAMHLaQ","title":"Advanced Ruby","pathname":"/coding-as-a-craft/career/advanced-ruby","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dRuwbAequvfFhC","title":"Databases","pathname":"/coding-as-a-craft/career/databases","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dSq4lq8V3C6qYi","title":"SOLID Principles","pathname":"/coding-as-a-craft/career/solid-principles","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Career"}]},{"id":"-L9hu2dTEGgxg_u1tjNc","title":"Sinatra & SlowFood","pathname":"/coding-as-a-craft/sinatra-and-slowfood","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2dU4yZYTsyTWJRn","title":"Sinatra - an introduction","pathname":"/coding-as-a-craft/sinatra-and-slowfood/sinatra-an-introduction","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Sinatra & SlowFood"}]},{"id":"-L9hu2dVZaC-lvNsIr7G","title":"Start small","pathname":"/coding-as-a-craft/sinatra-and-slowfood/start-small","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Sinatra & SlowFood"}]},{"id":"-L9hu2dWyJZbI0bM9aOf","title":"More Hello World","pathname":"/coding-as-a-craft/sinatra-and-slowfood/more-hello-world","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Sinatra & SlowFood"}]},{"id":"-L9hu2dXtUsDdgXoNKQy","title":"Ember","pathname":"/coding-as-a-craft/ember","siteSpaceId":"sitesp_3HG7i","description":""},{"id":"-L9hu2dYO_jKnoWi5sMY","title":"Hello World","pathname":"/coding-as-a-craft/ember/hello-world","siteSpaceId":"sitesp_3HG7i","description":"","breadcrumbs":[{"label":"Ember"}]}]}