{"version":1,"pages":[{"id":"-LBPk9IcXgk0eJkpI9UI","title":"Introduction","pathname":"/docs-shoppinpal-com","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGOjH68eFgY7ahAs","title":"1. The Ideal Workspace","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGOkD05EKTaKUu4d","title":"The Perfect Machine","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/the-perfect-machine","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"}]},{"id":"-LBPkGOlBXleHiKiTEVA","title":"For Biz Team","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/the-perfect-machine/for-biz-team","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"The Perfect Machine"}]},{"id":"-LBPkGOmEF5BC-nCb92G","title":"For Developers","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/the-perfect-machine/for-developers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"The Perfect Machine"}]},{"id":"-LBPkGOnH-FDov_KC5cn","title":"For Designers","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/the-perfect-machine/for-designers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"The Perfect Machine"}]},{"id":"-LBPkGOopNUfLJ8WyMC7","title":"Setup a machine in the cloud","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"}]},{"id":"-LBPkGOpcefHBP0JUgCw","title":"Solution","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/solution","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"}]},{"id":"-LBPkGOq6l3ciBKVl31-","title":"Setup box on Azure","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-azure","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"}]},{"id":"-LIEPhj7-QoIlyBzSRD0","title":"Create a machine on Azure","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-azure/create-a-machine-on-azure","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on Azure"}]},{"id":"-LGEgDVQmDCBdb-VeZob","title":"Test drive your remote machine","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-azure/test-drive-your-remote-machine","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on Azure"}]},{"id":"-LBPkGOrGOIY8vEMq9km","title":"Setup Dropbox On Azure","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-azure/setup-dropbox-on-azure","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on Azure"}]},{"id":"-LBPkGOsAKYq8Y9PpHGI","title":"Setup box on DigitalOcean","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"}]},{"id":"-LBPkGOt6jB_qpB8w3ur","title":"Setup UI","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/setup-ui","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"}]},{"id":"-LBPkGOuL7SluMxTBTkP","title":"Shared FileSystem","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/shared-filesystem","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"}]},{"id":"-LBPkGP1DNP7IHzo-aRL","title":"Dropbox","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/shared-filesystem/dropbox","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"},{"label":"Shared FileSystem"}]},{"id":"-LBPkGP2aegBq31KAIZs","title":"Use locally developed node modules in another project","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/shared-filesystem/dropbox/use-locally-developed-node-modules-in-another-project","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"},{"label":"Shared FileSystem"},{"label":"Dropbox"}]},{"id":"-LBPkGP3_8_EnSjsp2ot","title":"sshfs","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/shared-filesystem/sshfs","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"},{"label":"Shared FileSystem"}]},{"id":"-LBPkGP4KS7VczH8ZZ8D","title":"Long Running Sessions","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/setup-box-on-digitalocean/long-running-sessions","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"},{"label":"Setup box on DigitalOcean"}]},{"id":"-LBPkGP5igYqx-RgUIZO","title":"Feedback","pathname":"/docs-shoppinpal-com/1.-the-ideal-workspace/setup-a-machine-in-the-cloud/feedback","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"1. The Ideal Workspace"},{"label":"Setup a machine in the cloud"}]},{"id":"-LBPkGP6Udd_gZ0BQNQ1","title":"2. Learning Git","pathname":"/docs-shoppinpal-com/2.-learning-git","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGP7UfRFiUOyksbl","title":"Static Code Analysis","pathname":"/docs-shoppinpal-com/2.-learning-git/static-code-analysis","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"2. Learning Git"}]},{"id":"-LBPkGP8NCkzE84rhuWI","title":"3. The Backend","pathname":"/docs-shoppinpal-com/3.-the-backend","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGP9l5c6odku3zYK","title":"Use Containers","pathname":"/docs-shoppinpal-com/3.-the-backend/use-containers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPA1uPJr9sMliQ7","title":"Setup a loopback project","pathname":"/docs-shoppinpal-com/3.-the-backend/setup-a-loopback-project","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPBOYBpQeMmXzSJ","title":"Lockdown","pathname":"/docs-shoppinpal-com/3.-the-backend/lockdown","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPC1VD92eidVHb7","title":"Build a better mousetrap","pathname":"/docs-shoppinpal-com/3.-the-backend/build-a-better-mousetrap","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPDRXJ_eevTNCuk","title":"The abyss stares back","pathname":"/docs-shoppinpal-com/3.-the-backend/the-abyss-stares-back","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPEJegCH9zLH7IV","title":"Built-in models","pathname":"/docs-shoppinpal-com/3.-the-backend/built-in-models","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPFCmikxS9DVtfV","title":"Extending built-in models","pathname":"/docs-shoppinpal-com/3.-the-backend/extending-built-in-models","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPGRWYBxwLvqX0M","title":"Understanding UserModel","pathname":"/docs-shoppinpal-com/3.-the-backend/understanding-usermodel","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPHhqt5D6O5_RS7","title":"Boot Scripts","pathname":"/docs-shoppinpal-com/3.-the-backend/boot-scripts","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPII7B6knJ58ay-","title":"Promises","pathname":"/docs-shoppinpal-com/3.-the-backend/promises","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPJjfdIlZBeTL6z","title":"Find roles for current user","pathname":"/docs-shoppinpal-com/3.-the-backend/find-roles-for-current-user","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPK8FEt5RreYLv6","title":"Loopback Console","pathname":"/docs-shoppinpal-com/3.-the-backend/loopback-console","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPLyVcEofYp75ss","title":"Current User","pathname":"/docs-shoppinpal-com/3.-the-backend/current-user","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"3. The Backend"}]},{"id":"-LBPkGPMf5qJFB9gQYNO","title":"4. Multi-tenancy With Loopback","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPNPXhkYIGoF8tk","title":"What is Multi-Tenancy","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/what-is-multi-tenancy","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPOPP0t-StaWy5Z","title":"Architecting with Loopback","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/architecting-with-loopback","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPPhrVyA-21xBOz","title":"Define scope for Roles","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/define-scope-for-roles","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPQjBkElxLZcmLe","title":"Role Resolvers","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/role-resolvers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPRCnNGJNUnV138","title":"Access Control For Tenants","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/access-control-for-tenants","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPSOUbiDX_rhlxP","title":"Better Programming with multi-tenancy","pathname":"/docs-shoppinpal-com/4.-multi-tenancy-with-loopback/better-programming-with-multi-tenancy","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"4. Multi-tenancy With Loopback"}]},{"id":"-LBPkGPTI82HMiCTNnQ8","title":"5. The Frontend","pathname":"/docs-shoppinpal-com/5.-the-frontend","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPUsnhTt2gH7USD","title":"The Browser","pathname":"/docs-shoppinpal-com/5.-the-frontend/the-browser","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"}]},{"id":"-LBPkGPVULJDkdKLYwM3","title":"Unit Testing","pathname":"/docs-shoppinpal-com/5.-the-frontend/unit-testing","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"}]},{"id":"-LBPkGPW8XO5PP0tpODT","title":"Motivation behind this blog","pathname":"/docs-shoppinpal-com/5.-the-frontend/unit-testing/motivation-behind-this-blog","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"},{"label":"Unit Testing"}]},{"id":"-LBPkGPXK5XPM2AGzEMm","title":"How to write a test","pathname":"/docs-shoppinpal-com/5.-the-frontend/unit-testing/how-to-write-a-test","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"},{"label":"Unit Testing"}]},{"id":"-LBPkGPYkVAUuEdMPFTa","title":"Karma and Jasmin","pathname":"/docs-shoppinpal-com/5.-the-frontend/unit-testing/karma-and-jasmin","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"},{"label":"Unit Testing"}]},{"id":"-LBPkGPZqILzs3Ux1nit","title":"Writing Tests","pathname":"/docs-shoppinpal-com/5.-the-frontend/unit-testing/writing-tests","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"},{"label":"Unit Testing"}]},{"id":"-LBPkGP_JtCPXA4eguzZ","title":"End-2-End Testing","pathname":"/docs-shoppinpal-com/5.-the-frontend/end-2-end-testing","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"}]},{"id":"-LBPkGPa6rcNgfjGyiIg","title":"Angular 1.x","pathname":"/docs-shoppinpal-com/5.-the-frontend/angular-1.x","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"}]},{"id":"-LBPkGPbZ3vmndIY7V7O","title":"Angular 2","pathname":"/docs-shoppinpal-com/5.-the-frontend/angular-2","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"}]},{"id":"-LBPkGPcjCCNz8Bvv1-e","title":"Testing","pathname":"/docs-shoppinpal-com/5.-the-frontend/angular-2/testing","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"5. The Frontend"},{"label":"Angular 2"}]},{"id":"-LBPkGPdotpmCcXCDsh8","title":"6. ElasticSearch","pathname":"/docs-shoppinpal-com/6.-elasticsearch","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPewYzyDLdHIOKB","title":"Better Search with NGram","pathname":"/docs-shoppinpal-com/6.-elasticsearch/better-search-with-ngram","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"6. ElasticSearch"}]},{"id":"-LBPkGPf-0TMxs-Rs6-2","title":"NGram with Elasticsearch","pathname":"/docs-shoppinpal-com/6.-elasticsearch/ngram-with-elasticsearch","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"6. ElasticSearch"}]},{"id":"-LBPkGPgyo_O1C7VOB5x","title":"Fun with Path Hierarchy Tokenizer","pathname":"/docs-shoppinpal-com/6.-elasticsearch/fun-with-path-hierarchy-tokenizer","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"6. ElasticSearch"}]},{"id":"-LBPkGPhZY-IYLVqLUme","title":"Working with Mappings and Analyzers","pathname":"/docs-shoppinpal-com/6.-elasticsearch/working-with-mappings-and-analyzers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"6. ElasticSearch"}]},{"id":"-LBPkGPikJ7lPBtJ14ct","title":"7. Promises","pathname":"/docs-shoppinpal-com/7.-promises","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPjvgNyPOoYsfjf","title":"What are Promises","pathname":"/docs-shoppinpal-com/7.-promises/what-are-promises","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"7. Promises"}]},{"id":"-LBPkGPkepmUqRScY-nh","title":"Promise Implementations","pathname":"/docs-shoppinpal-com/7.-promises/promise-implementations","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"7. Promises"}]},{"id":"-LBPkGPl4AcKlljsvMr4","title":"Nuances","pathname":"/docs-shoppinpal-com/7.-promises/nuances","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"7. Promises"}]},{"id":"-LBPkGPmL8vEK-5lN-n7","title":"What should we use","pathname":"/docs-shoppinpal-com/7.-promises/what-should-we-use","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"7. Promises"}]},{"id":"-LBPkGPnXnd5uFi4-Bqb","title":"8. Learning Docker","pathname":"/docs-shoppinpal-com/8.-learning-docker","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPow2tQph0rtq59","title":"Docker Swarm","pathname":"/docs-shoppinpal-com/8.-learning-docker/docker-swarm","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"8. Learning Docker"}]},{"id":"-LBPkGPpiBSVcIhO30jL","title":"9. Queues & Workers","pathname":"/docs-shoppinpal-com/9.-queues-and-workers","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPqPbZtM_GDIBQq","title":"PHP workers in AWS EBS","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/php-workers-in-aws-ebs","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"}]},{"id":"-LBPkGPr7ZzgOHawo_hG","title":"NodeJS workers in AWS EBS","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/nodejs-workers-in-aws-ebs","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"}]},{"id":"-LBPkGPsLnl1_5QOPrZE","title":"SQS Daemon by AWS","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/nodejs-workers-in-aws-ebs/sqs-daemon-by-aws","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"},{"label":"NodeJS workers in AWS EBS"}]},{"id":"-LBPkGPtWG2ATZc4NPMa","title":"SQS Daemon in NodeJS","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/nodejs-workers-in-aws-ebs/sqs-daemon-in-nodejs","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"},{"label":"NodeJS workers in AWS EBS"}]},{"id":"-LBPkGPuSjh4N7Y9kJmT","title":"SQS polling by worker","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/nodejs-workers-in-aws-ebs/sqs-polling-by-worker","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"},{"label":"NodeJS workers in AWS EBS"}]},{"id":"-LBPkGPvFldj7ltL2UNY","title":"Gearman","pathname":"/docs-shoppinpal-com/9.-queues-and-workers/gearman","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"9. Queues & Workers"}]},{"id":"-LBPkGPwupMEEnkehI7y","title":"10. Docker","pathname":"/docs-shoppinpal-com/10.-docker","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPxle0WIuQLSTx1","title":"Capabilities","pathname":"/docs-shoppinpal-com/10.-docker/capabilities","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"10. Docker"}]},{"id":"-LBPkGPyKPmEUNU4ZC7d","title":"Appendix","pathname":"/docs-shoppinpal-com/appendix","siteSpaceId":"sitesp_vDvcp","description":""},{"id":"-LBPkGPz-JmR97oYhuNj","title":"Bug in WebStorm deployments","pathname":"/docs-shoppinpal-com/appendix/bug-in-webstorm-deployments","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ-tzpai0P1jsH-","title":"The Perfect Terminal","pathname":"/docs-shoppinpal-com/appendix/the-perfect-terminal","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ0XEVwWdqXbMA7","title":"Scalable App Deployment with AWS","pathname":"/docs-shoppinpal-com/appendix/scalable-app-deployment-with-aws","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ1GBLLm1Bcg9Be","title":"Chrome Tips & Tricks","pathname":"/docs-shoppinpal-com/appendix/chrome-tips-and-tricks","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ2eizP0lvQ1fJx","title":"Host your own Gitbook","pathname":"/docs-shoppinpal-com/appendix/host-your-own-gitbook","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ3DURde3WVnH7l","title":"Gitbook Tips & Tricks","pathname":"/docs-shoppinpal-com/appendix/gitbook-tips-and-tricks","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ4BAbBZj1GFB3G","title":"How to handle support incidents","pathname":"/docs-shoppinpal-com/appendix/how-to-handle-support-incidents","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ5sh2L-5jB9T-b","title":"Dev Resources","pathname":"/docs-shoppinpal-com/appendix/dev-resources","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ6OWGAnnIS5jtC","title":"Debug e2e Tests on CircleCI","pathname":"/docs-shoppinpal-com/appendix/debug-e2e-tests-on-circleci","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ7VW02JmOq1cda","title":"Logging","pathname":"/docs-shoppinpal-com/appendix/logging","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ8s9oxI1EuZQr1","title":"Authentication Principles","pathname":"/docs-shoppinpal-com/appendix/authentication-principles","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQ9Lxh3ytkEpUcR","title":"Mac","pathname":"/docs-shoppinpal-com/appendix/mac","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQALU29-WE_XDJK","title":"nvm","pathname":"/docs-shoppinpal-com/appendix/nvm","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQBi3H5KtpnAX8m","title":"Unify testing with npm","pathname":"/docs-shoppinpal-com/appendix/unify-testing-with-npm","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQCI8UAikJM6uP1","title":"Debugging Mocha","pathname":"/docs-shoppinpal-com/appendix/unify-testing-with-npm/debugging-mocha","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"},{"label":"Unify testing with npm"}]},{"id":"-LBPkGQDECN2XhjDErgE","title":"Sequence Diagrams","pathname":"/docs-shoppinpal-com/appendix/sequence-diagrams","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQEMcMVhtawrq44","title":"Project Sync via IDE","pathname":"/docs-shoppinpal-com/appendix/project-sync-via-ide","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQFzjFPY2qQSIrt","title":"SFTP with WebStorm","pathname":"/docs-shoppinpal-com/appendix/project-sync-via-ide/sftp-with-webstorm","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"},{"label":"Project Sync via IDE"}]},{"id":"-LBPkGQGDyXBbCmEZ7Pd","title":"SFTP with Visual Studio","pathname":"/docs-shoppinpal-com/appendix/project-sync-via-ide/sftp-with-visual-studio","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"},{"label":"Project Sync via IDE"}]},{"id":"-LBPkGQHOYp6iSFCcR5-","title":"Soft Linking","pathname":"/docs-shoppinpal-com/appendix/soft-linking","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQIY8-rFW-z-BQT","title":"NodeJS Profiling","pathname":"/docs-shoppinpal-com/appendix/nodejs-profiling","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]},{"id":"-LBPkGQJpYXu4l8feD-U","title":"How to find node.js performance optimization killers","pathname":"/docs-shoppinpal-com/appendix/nodejs-profiling/how-to-find-node.js-performance-optimization-killers","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"},{"label":"NodeJS Profiling"}]},{"id":"-LGEgDWnuXilXeiM6Ufj","title":"Setup Packer on Azure","pathname":"/docs-shoppinpal-com/appendix/setup-packer-on-azure","siteSpaceId":"sitesp_vDvcp","description":"","breadcrumbs":[{"label":"Appendix"}]}]}