{"componentChunkName":"component---node-modules-narative-gatsby-theme-novela-src-templates-articles-template-tsx","path":"/blog","webpackCompilationHash":"98ad53f8c1f4a6cb2faa","result":{"pageContext":{"isCreatedByStatefulCreatePages":false,"basePath":"/blog","skip":6,"limit":6,"group":[{"node":{"id":"b8cb571e-709a-5f0c-98be-b69c2dbed477","slug":"/blog/supercharge-your-workflow-with-profiles-and-arrangements","title":"Supercharge your workflow with profiles and arrangements","author":"Marcus Wood","date":"May 23rd, 2020","dateForSEO":"2020-05-23T00:00:00.000Z","timeToRead":2,"excerpt":"If you’ve ever had to manage multiple projects, keeping up with the command line can be cumbersome. Here are a couple of hot tips on how juggle multiple projects that will save you a ton of time.","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Supercharge your workflow with profiles and arrangements\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2020-05-23T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpg\",\n  \"excerpt\": \"If you’ve ever had to manage multiple projects, keeping up with the command line can be cumbersome. Here are a couple of hot tips on how juggle multiple projects that will save you a ton of time.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"If you\\u2019ve ever had to manage multiple projects, keeping up with the command line can be cumbersome. Here are a couple of hot tips on how juggle multiple projects that will save you a ton of time.\"), mdx(\"p\", null, \"If you\\u2019re using the regular Mac Terminal, I highly recommend switching over to iTerm2 (it\\u2019s just better). More on why in a bit.\"), mdx(\"h2\", {\n    \"id\": \"ssh-aliases\"\n  }, \"SSH Aliases\"), mdx(\"p\", null, \"Sometimes, you need to SSH into a server somewhere. Sometimes you have twenty different servers you\\u2019d like to SSH into. Remembering where they live and what they\\u2019re called can be a pain.\\nTo save time, create aliases for each server in under a minute. Here\\u2019s how:\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-sh\"\n  }), \"# Open a terminal window\\nnano ~/.ssh/config\\n\\n# Fill in the following to create an alias\\nHost <Name you want to assign>\\n  Hostname <Where you want to ssh>\\n  User <User you want to login as>\\n  IdentityFile ~/.ssh/<pem file you want to use>\\n\\n# Exit and save the file\\nctrl + x\\ny\\nenter\\n\\n# Now instead of doing this to connect\\nssh -i \\\"<pem file>\\\" <user>@<hostname>\\n\\n# You can do this\\nssh name-you-assigned\\n\")), mdx(\"h2\", {\n    \"id\": \"iterm2-profiles-and-arrangements\"\n  }, \"iTerm2 Profiles and Arrangements\"), mdx(\"p\", null, \"Profiles are great and have changed my daily workflow. Sometimes your terminal looks like this:\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564962203/unnamed-terminals_qpzalq.png\",\n    \"alt\": \"unnamed terminals\"\n  }))), mdx(\"p\", null, \"The problem is, you don\\u2019t know which window you want to click. You also don\\u2019t want to close out windows, because then you\\u2019ll have to open a new window, navigate back to the correct directory, and remember the copy pasta to make it go.\\nWith profiles and window arrangements, you don\\u2019t have to worry about any of that.\\nThere\\u2019s a quick video walk through below if you get lost on any of these steps.\\nA profile enables you to open a new command line window in a certain directory and run commands automatically. Let\\u2019s make one!\\nFirst, close all open command line windows in iTerm, and start with a new command line window. Next, you\\u2019ll want to navigate to \\u201CProfiles\\u201D in the Menubar and click \\u201COpen Profiles\\u2026\\u201D\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564962202/iterm-save-profiles_hgowgv.png\",\n    \"alt\": \"save profiles\"\n  }))), mdx(\"p\", null, \"Now click \\u201CEdit Profiles\\u2026\\u201D which should bring you here:\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564962202/iterm-edit-profiles_d7t6xq.png\",\n    \"alt\": \"edit iterm profiles\"\n  }))), mdx(\"p\", null, \"Gamebyrd and Mongod are some profiles I made so don\\u2019t worry if you don\\u2019t see them\"), mdx(\"p\", null, \"Click the + sign at the bottom left side to create a new profile. Make sure to give it a name and update the directory to be the the root of your project.\"), mdx(\"p\", null, \"If you want to run commands when this profile is opened, add them in the \\u201CSend text at start:\\u201D field. One of my favorite recipes is to open up the project in my code editor and build it for development.\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-sh\"\n  }), \"# Separate commands with a semi-colon\\natom .; preact watch\\n\")), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564962202/iterm-edit-profiles-2_do5uaf.png\",\n    \"alt\": \"edit iterm profiles\"\n  }))), mdx(\"p\", null, \"Exiting out of the window will save your changes (there\\u2019s no button to do this).\"), mdx(\"p\", null, \"Next up, we need to test it out. Click on \\u201CProfiles\\u201D in the Menubar and select the profile you made to make sure it works. If you run into any issues, make sure your directory path is correct and that your commands are separated correctly.\"), mdx(\"p\", null, \"Once all that works, it\\u2019s time to create a window arrangement to easily launch the newly made profile. Make sure you don\\u2019t have any lingering terminal windows open when you do this step or they\\u2019ll be saved as part of the arrangement.\"), mdx(\"p\", null, \"In a new terminal window, click on the profile you just made. If it opens in a new tab make sure to close the \\u201CDefault\\u201D tab. Navigate to the \\u201CWindow\\u201D tab in the Menubar and select \\u201CSave Window Arrangement.\\u201D Give it a name and click ok. You\\u2019re good to go!\"), mdx(\"p\", null, \"Now all of your terminal windows will be named. They\\u2019ll automatically remember the commands you need to start each project.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564962202/iterm-named-terminals_bu3raw.png\",\n    \"alt\": \"named iterm terminals\"\n  }))), mdx(\"h2\", {\n    \"id\": \"wrapping-things-up\"\n  }, \"Wrapping Things Up\"), mdx(\"p\", null, \"After the first time you do so, you\\u2019ll be able to create new profiles and arrangements with ease. You can also combine multiple profiles into an arrangement, use tabbed terminal windows to run multiple parts of a project, and much more.\"), mdx(\"p\", null, \"Was this helpful? If so, please clap on the story and let me know what else you\\u2019d like to know about my development process or tips on mastering the command line.\"));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAGQAAAQUAAAAAAAAAAAAAAAAAAAEDBAUG/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAWRLyIpnCv/EABoQAAIDAQEAAAAAAAAAAAAAAAECAxEyBEL/2gAIAQEAAQUCe3kUPc/UInGvL7//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIREiFhcYH/2gAIAQEABj8Ci41S5KdvZjpkezwZ/8QAHBAAAgICAwAAAAAAAAAAAAAAAAERITFhQaHw/9oACAEBAAE/IYnNpIYVSlkpcEL0K7wefSOY7h//2gAMAwEAAgADAAAAED8P/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQMBAT8Qh//EABURAQEAAAAAAAAAAAAAAAAAABEQ/9oACAECAQE/EFn/xAAfEAEAAgEDBQAAAAAAAAAAAAABABEhEJGhQWFxscH/2gAIAQEAAT8QLyxMlTrV/JedyUNmzPi94MNxbq1nDXat5y0Dl+tO/9k=","aspectRatio":2.2264150943396226,"src":"/static/b31e8063c018ffde4fa3c15d4e3eb348/22328/hero.jpg","srcSet":"/static/b31e8063c018ffde4fa3c15d4e3eb348/6d250/hero.jpg 236w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/1a26c/hero.jpg 472w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/22328/hero.jpg 944w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/d0da8/hero.jpg 1416w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/1efb0/hero.jpg 1800w","srcWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/1d644/hero.webp","srcSetWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/cbe96/hero.webp 236w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/8ab83/hero.webp 472w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/1d644/hero.webp 944w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/e5141/hero.webp 1416w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/27336/hero.webp 1800w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIEBQb/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABRpCRYmTK/8QAGRABAQEAAwAAAAAAAAAAAAAAAgMBABET/9oACAEBAAEFAnXZv3ouOxnol1t9Mso1R//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABwQAAICAgMAAAAAAAAAAAAAAAECABESITEyUf/aAAgBAQAGPwJFU0somtym5nYwEICT7MmO5//EABoQAAMBAAMAAAAAAAAAAAAAAAABESExYXH/2gAIAQEAAT8hZvRjUopLHSUVGulcRB98Gt750PFQ/9oADAMBAAIAAwAAABCvD//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/EIf/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBZ/8QAHhABAAICAgMBAAAAAAAAAAAAAQARITFBYVFxgcH/2gAIAQEAAT8QFt6TReIyUPrLxvrPyD9B2Csn4x0UCFFV9LySvDWvBOe4slqL0B4Dgn//2Q==","aspectRatio":1.4954128440366972,"src":"/static/b31e8063c018ffde4fa3c15d4e3eb348/6694a/hero.jpg","srcSet":"/static/b31e8063c018ffde4fa3c15d4e3eb348/70b8f/hero.jpg 163w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/7ec88/hero.jpg 327w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/6694a/hero.jpg 653w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/ed86f/hero.jpg 980w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/52c17/hero.jpg 1306w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/8d3de/hero.jpg 1800w","srcWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/d603c/hero.webp","srcSetWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/64a97/hero.webp 163w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/a98ca/hero.webp 327w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/d603c/hero.webp 653w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/c1bd6/hero.webp 980w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/89ac0/hero.webp 1306w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/44939/hero.webp 1800w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIEBQb/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABRpCRYmTK/8QAGRABAQEAAwAAAAAAAAAAAAAAAgMBABET/9oACAEBAAEFAnXZv3ouOxnol1t9Mso1R//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABwQAAICAgMAAAAAAAAAAAAAAAECABESITEyUf/aAAgBAQAGPwJFU0somtym5nYwEICT7MmO5//EABoQAAMBAAMAAAAAAAAAAAAAAAABESExYXH/2gAIAQEAAT8hZvRjUopLHSUVGulcRB98Gt750PFQ/9oADAMBAAIAAwAAABCvD//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/EIf/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBZ/8QAHhABAAICAgMBAAAAAAAAAAAAAQARITFBYVFxgcH/2gAIAQEAAT8QFt6TReIyUPrLxvrPyD9B2Csn4x0UCFFV9LySvDWvBOe4slqL0B4Dgn//2Q==","aspectRatio":1.5,"src":"/static/b31e8063c018ffde4fa3c15d4e3eb348/c1e08/hero.jpg","srcSet":"/static/b31e8063c018ffde4fa3c15d4e3eb348/8bed6/hero.jpg 114w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/1e283/hero.jpg 229w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/c1e08/hero.jpg 457w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/8ae28/hero.jpg 686w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/5cf51/hero.jpg 914w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/8d3de/hero.jpg 1800w","srcWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/72aed/hero.webp","srcSetWebp":"/static/b31e8063c018ffde4fa3c15d4e3eb348/03a0a/hero.webp 114w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/d2b1d/hero.webp 229w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/72aed/hero.webp 457w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/1a85c/hero.webp 686w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/90a86/hero.webp 914w,\n/static/b31e8063c018ffde4fa3c15d4e3eb348/44939/hero.webp 1800w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/b31e8063c018ffde4fa3c15d4e3eb348/0ff54/hero.jpg"}}}}},{"node":{"id":"e6e38022-aff1-5dd3-8c75-d36510aa356e","slug":"/blog/what-s-more-important-process-or-results","title":"What’s more Important, Process or Results?","author":"Marcus Wood","date":"December 13th, 2019","dateForSEO":"2019-12-13T00:00:00.000Z","timeToRead":2,"excerpt":"A close friend once asked me, “What’s more important, process or results?” It was after a job interview in college and I immediately replied, “results of course!”","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"What’s more Important, Process or Results?\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2019-12-13T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpg\",\n  \"excerpt\": \"A close friend once asked me, “What’s more important, process or results?” It was after a job interview in college and I immediately replied, “results of course!”\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"A close friend once asked me, \\u201CWhat\\u2019s more important, process or results?\\u201D It was after a job interview in college and I immediately replied, \\u201Cresults of course!\\u201D After working for a couple years I\\u2019ve changed my answer many times, but the best answer is the same as it is for all questions. It depends.\"), mdx(\"hr\", null), mdx(\"p\", null, \"I\\u2019ve worked on teams that have hundreds of people all the way down to delivering projects by myself. Often this is the quintessential question that I\\u2019ve seen cause more churn than any other, especially within tech. To help, I always ask myself three questions before starting a new project.\"), mdx(\"h2\", {\n    \"id\": \"how-big-is-it\"\n  }, \"How big is it?\"), mdx(\"p\", null, \"Process or results comes down to one thing, size. In most circumstances, team size. Larger teams require more information sharing which creates the need for structure and rigidity to continue forward. Lay this foundation early since documentation and traceability comes from process.\"), mdx(\"p\", null, \"From my experience, getting features out the door takes precedence over defining a process. Starting out you track well ahead of the delivery date until you\\u2019re about 75 percent from completion. All the features need to connect or someone leaves the project. Things come to a screeching halt. Where\\u2019s the API documentation? Why did that get put over there? What does the comment, // I\\u2019m sorry., made by Jeff who left two weeks ago mean?!\"), mdx(\"h2\", {\n    \"id\": \"will-it-need-to-be-repeated\"\n  }, \"Will it need to be repeated?\"), mdx(\"p\", null, \"Results are transactional. You have to work for them. Process is replicable. It\\u2019s the how you\\u2019re doing what you\\u2019re doing. Think of your overall process as a collection of smaller, repeatable blocks that can be taken to other projects. For instance, I was on a big web application project and in order to track our defects against the code we would add the task number in the commit. Now I do that on all of my projects, and it saves a ton of time to quickly search when I\\u2019m asked why a button is now Pompeii Purple instead of BurlyWood.\"), mdx(\"h2\", {\n    \"id\": \"whos-this-for\"\n  }, \"Who\\u2019s this for?\"), mdx(\"p\", null, \"Process shows visibility and measurable progress to your shared goal. You never want to get caught developing in a vacuum, especially if something goes wrong. Tough conversations are easier when you can lean on everything you\\u2019ve accomplished. However, at the end of the day your client cares about results and sometimes may not care how you get there. To manage expectations, it\\u2019s important to involve key stakeholders in the process early and define the right amount of structure to deliver quickly.\\nProcess is a means to get you results faster. It should be handled with care as too much can cause just as much harm as not enough. Before starting your next engagement ask yourself the three questions above and you\\u2019ll be surprised how quickly you get results.\"));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBP/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAU1IFQrMOAv/xAAbEAACAgMBAAAAAAAAAAAAAAABAgADEiIxM//aAAgBAQABBQKlSpzRwNoJV4Lz/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQMBAT8Bh//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/Aar/xAAbEAACAgMBAAAAAAAAAAAAAAAAAQIREFKCwf/aAAgBAQAGPwJS9JaouhHLx//EABsQAAIDAQEBAAAAAAAAAAAAAAABESExQXHw/9oACAEBAAE/IaNJa20iCtN9GpJrtL6Y8G33Zif/2gAMAwEAAgADAAAAEIjf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAEDAQE/EEtl/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/EBCf/8QAHhABAAICAQUAAAAAAAAAAAAAAQARITEQQVFxofD/2gAIAQEAAT8Q2uwdJ9PNXFskApLL2VnCQJCCU2Hc9FPldvA//9k=","aspectRatio":2.2264150943396226,"src":"/static/824eccc6bf14250d1a3d78ee41adf831/22328/hero.jpg","srcSet":"/static/824eccc6bf14250d1a3d78ee41adf831/6d250/hero.jpg 236w,\n/static/824eccc6bf14250d1a3d78ee41adf831/1a26c/hero.jpg 472w,\n/static/824eccc6bf14250d1a3d78ee41adf831/22328/hero.jpg 944w,\n/static/824eccc6bf14250d1a3d78ee41adf831/cca5d/hero.jpg 1260w","srcWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/1d644/hero.webp","srcSetWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/cbe96/hero.webp 236w,\n/static/824eccc6bf14250d1a3d78ee41adf831/8ab83/hero.webp 472w,\n/static/824eccc6bf14250d1a3d78ee41adf831/1d644/hero.webp 944w,\n/static/824eccc6bf14250d1a3d78ee41adf831/7614f/hero.webp 1260w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAUE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAcVeXQNzAP8A/8QAGRABAQEBAQEAAAAAAAAAAAAAAgEDABIi/9oACAEBAAEFAshGphBPV4uTs2rmD8//xAAVEQEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAwEBPwGn/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8BV//EABsQAQACAgMAAAAAAAAAAAAAAAEAEQIhIjFR/9oACAEBAAY/Agy6Zq2pqHAuOS7S57P/xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhUTFB/9oACAEBAAE/IbYTATsBITitje2y4MjAev3s0+3x5TApeus//9oADAMBAAIAAwAAABCP/wD/xAAXEQADAQAAAAAAAAAAAAAAAAAAARFB/9oACAEDAQE/EGsEP//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxASxf/EABwQAQACAgMBAAAAAAAAAAAAAAEAESFRMUFhgf/aAAgBAQABPxC5EuJvpCxdYIOXpnDNjDRHdggoh2pviIpQKClQAfYKyoq+k//Z","aspectRatio":1.5377358490566038,"src":"/static/824eccc6bf14250d1a3d78ee41adf831/6694a/hero.jpg","srcSet":"/static/824eccc6bf14250d1a3d78ee41adf831/70b8f/hero.jpg 163w,\n/static/824eccc6bf14250d1a3d78ee41adf831/7ec88/hero.jpg 327w,\n/static/824eccc6bf14250d1a3d78ee41adf831/6694a/hero.jpg 653w,\n/static/824eccc6bf14250d1a3d78ee41adf831/ed86f/hero.jpg 980w,\n/static/824eccc6bf14250d1a3d78ee41adf831/30932/hero.jpg 1260w","srcWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/d603c/hero.webp","srcSetWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/64a97/hero.webp 163w,\n/static/824eccc6bf14250d1a3d78ee41adf831/a98ca/hero.webp 327w,\n/static/824eccc6bf14250d1a3d78ee41adf831/d603c/hero.webp 653w,\n/static/824eccc6bf14250d1a3d78ee41adf831/c1bd6/hero.webp 980w,\n/static/824eccc6bf14250d1a3d78ee41adf831/f031e/hero.webp 1260w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAUE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAcVeXQNzAP8A/8QAGRABAQEBAQEAAAAAAAAAAAAAAgEDABIi/9oACAEBAAEFAshGphBPV4uTs2rmD8//xAAVEQEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAwEBPwGn/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8BV//EABsQAQACAgMAAAAAAAAAAAAAAAEAEQIhIjFR/9oACAEBAAY/Agy6Zq2pqHAuOS7S57P/xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhUTFB/9oACAEBAAE/IbYTATsBITitje2y4MjAev3s0+3x5TApeus//9oADAMBAAIAAwAAABCP/wD/xAAXEQADAQAAAAAAAAAAAAAAAAAAARFB/9oACAEDAQE/EGsEP//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxASxf/EABwQAQACAgMBAAAAAAAAAAAAAAEAESFRMUFhgf/aAAgBAQABPxC5EuJvpCxdYIOXpnDNjDRHdggoh2pviIpQKClQAfYKyoq+k//Z","aspectRatio":1.5405405405405406,"src":"/static/824eccc6bf14250d1a3d78ee41adf831/c1e08/hero.jpg","srcSet":"/static/824eccc6bf14250d1a3d78ee41adf831/8bed6/hero.jpg 114w,\n/static/824eccc6bf14250d1a3d78ee41adf831/1e283/hero.jpg 229w,\n/static/824eccc6bf14250d1a3d78ee41adf831/c1e08/hero.jpg 457w,\n/static/824eccc6bf14250d1a3d78ee41adf831/8ae28/hero.jpg 686w,\n/static/824eccc6bf14250d1a3d78ee41adf831/5cf51/hero.jpg 914w,\n/static/824eccc6bf14250d1a3d78ee41adf831/30932/hero.jpg 1260w","srcWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/72aed/hero.webp","srcSetWebp":"/static/824eccc6bf14250d1a3d78ee41adf831/03a0a/hero.webp 114w,\n/static/824eccc6bf14250d1a3d78ee41adf831/d2b1d/hero.webp 229w,\n/static/824eccc6bf14250d1a3d78ee41adf831/72aed/hero.webp 457w,\n/static/824eccc6bf14250d1a3d78ee41adf831/1a85c/hero.webp 686w,\n/static/824eccc6bf14250d1a3d78ee41adf831/90a86/hero.webp 914w,\n/static/824eccc6bf14250d1a3d78ee41adf831/f031e/hero.webp 1260w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/824eccc6bf14250d1a3d78ee41adf831/0ff54/hero.jpg"}}}}},{"node":{"id":"c3f9d34c-47a1-570a-ae5e-944c293998af","slug":"/blog/the-non-techie-s-guide-to-creating-a-successful-app","title":"The Non-Techie’s Guide To Creating A Successful App","author":"Marcus Wood","date":"July 16th, 2019","dateForSEO":"2019-07-16T00:00:00.000Z","timeToRead":5,"excerpt":"This guide gives you a rundown of each step you need to take from the technical side to give your app the best chance to succeed.","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"The Non-Techie’s Guide To Creating A Successful App\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2019-07-16T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpeg\",\n  \"excerpt\": \"This guide gives you a rundown of each step you need to take from the technical side to give your app the best chance to succeed.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Within the iOS app store alone, there\\u2019s over \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"2,100,000\"), \" apps available to download, and the Android app store has even more. The proliferation of the \\u2018there\\u2019s an app for that\\u2019 mentality has been contagious and introduced more people than ever into the tech community. That\\u2019s why I started learning how to code, and it took years for me to learn everything needed to build an app.\"), mdx(\"p\", null, \"This guide gives you a rundown of each step you need to take from the technical side to give your app the best chance to succeed.\"), mdx(\"h2\", {\n    \"id\": \"do-your-research\"\n  }, \"Do Your Research\"), mdx(\"p\", null, \"I have friends that tell me all the time that they have the next big app idea. The idea is normally good, really good. However, most of the time it\\u2019s already out there or there\\u2019s a reason it\\u2019s not out there. As soon as you have an app idea, Google it. If you see no competitors, stop and ask why.\"), mdx(\"p\", null, \"A lot of times the regulatory landscape of a new app idea makes the barrier of entry too high to enter the market. When Lyft and Uber first started there was a lot of risk involved in starting such a service since regulations were not established. One wrong court judgement could of wrecked your business and likely dissuaded a lot of people from hopping in.\"), mdx(\"p\", null, \"Lastly, do a quick numbers check on the estimated size of the market to make sure the app is viable. How large is your target market? How many users will you need to make the app functional? How many places can this be expanded to?\"), mdx(\"h2\", {\n    \"id\": \"refine-the-idea\"\n  }, \"Refine the Idea\"), mdx(\"p\", null, \"A good app idea is sticky. What I mean by sticky is that it\\u2019s simple and easily remembered by everyone you speak to.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"It\\u2019s the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"<blank>\"), \" for \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"<blank>\"), \".\")), mdx(\"p\", null, \"In Hollywood, this is called the \\u201Chigh-concept pitch.\\u201D Alien was pitched as \\u201CJaws on a spaceship.\\u201D Doesn\\u2019t that evoke a vivid image in your head? Without knowing anything else about the movie you already have an idea of the premise and can fill in a lot of the blanks without asking another question. For more information on creating sticky ideas check out \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://heathbrothers.com/books/made-to-stick/\"\n  }), \"Made to Stick: Why Some Ideas Survive and Others Die\"), \" by Chip and Dan Heath.\\nThis is crucial for two reasons. The first is that it forces you to refine your idea to the core value proposition. It\\u2019s the single user need that your app intends on solving. The second is that it gives the power to explain your idea to anyone in a couple of words. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"That\\u2019s powerful.\"), \" People that you want working on your app is busy, and this helps orient them immediately so you all can start discussing the details.\"), mdx(\"h2\", {\n    \"id\": \"exit-strategy\"\n  }, \"Exit Strategy\"), mdx(\"p\", null, \"If the app takes off, what next? Will it be the primary income resource for you? Do you intend on getting acquired by another company? Answering these questions first help set the expectation for yourself and everyone around you on what to work towards. This can and likely will change over time, but thinking about it early can help guide business decisions you have to make before development.\"), mdx(\"h2\", {\n    \"id\": \"prototyping\"\n  }, \"Prototyping\"), mdx(\"p\", null, \"Never start paying coders to develop an app before creating an interactive prototype. This is the mistake I see made the most. People are so blinded by their excitement they try to push something into the market immediately.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Design is where ideas and execution meet.\")), mdx(\"p\", null, \"So far, you\\u2019ve validated that the core of idea you have is solid. Now you have to execute. How will the user interact with an app to solve their need? It\\u2019s a harder question to answer than you think. Try sitting down with a blank piece of paper and drawing out screens of a user\\u2019s prospective journey through the app. You\\u2019ll find pieces you haven\\u2019t thought about yet and before starting development all ambiguity needs to be solved for.\\nFor this part, I recommend working with a user experience/visual designer expert to help you with these parts. When you\\u2019re speaking with them say you want an interactive prototype to be the final product. Popular options for creating one of these is \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://www.invisionapp.com/\"\n  }), \"Invision\"), \" or \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://www.adobe.com/products/xd.html\"\n  }), \"Adobe XD\"), \". An interactive prototype is a collection of images that have certain hotspots of interactivity to imitate how the actual app will work.\"), mdx(\"p\", null, \"Creating a prototype is crucial because:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It gives you something to show users on a phone for them to interact with. This gives you a chance to validate your assumptions and get feedback on your design before development starts.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It pushes off development. As an engineer it feels weird to say, but as an entrepreneur it makes sense in that you\\u2019re mitigating the largest financial expenditure until you\\u2019ve maximized your probability for success.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It gets you introduced to application development. If you\\u2019re new to this industry, getting involved in the design process helps orient you to the process and familiarizes you with industry jargon.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It forces you to map out a user\\u2019s journey through the app before development.\")), mdx(\"h2\", {\n    \"id\": \"more-research\"\n  }, \"More Research\"), mdx(\"p\", null, \"Show prospective app users the prototype and watch how they interact with the app. See if they can go through the app without asking you how to do something. Ask them how they like the design and what they would like to see changed. Most importantly, ask them if this is an application they would use.\\nGoogle everything again to make sure the industry landscape you\\u2019re targeting hasn\\u2019t changed. Are there new competitors? Are there new studies out there to learn from? Check the numbers one more time on market size, the critical mass of users needed for a functional app, and potential areas of expansion.\"), mdx(\"h2\", {\n    \"id\": \"gut-check-time\"\n  }, \"Gut Check Time\"), mdx(\"p\", null, \"This is the last stop before moving into development. You\\u2019ve researched, created a prototype, and tested it with prospective users. How are you feeling? There\\u2019s nothing wrong with throwing away an app now if you don\\u2019t feel good about it. That\\u2019s why it\\u2019s so important to prototype before development. If you feel good about it, press on!\"), mdx(\"h2\", {\n    \"id\": \"development\"\n  }, \"Development\"), mdx(\"p\", null, \"MVP. Minimum Viable Product. That should be the sole focus of development. If it\\u2019s not core to solving the user\\u2019s need then don\\u2019t develop it. This will keep your cost down, and prevent scope creep on the development team.\\nMake sure that the development team demos to you on a regular basis. It\\u2019s important to make sure the app is being created to your specifications, and it keeps them on track during development. Once the app is ready, deploy!\"), mdx(\"h2\", {\n    \"id\": \"refinement\"\n  }, \"Refinement\"), mdx(\"p\", null, \"Measure everything. Throughout the design and development of the app, you\\u2019ve likely amassed a large backlog of features to be implemented. Begin to knock them out based on data-driven insights gathered from users in the app. The important thing here is that you shouldn\\u2019t be guessing on what to do next, data should drive your decisions.\\nThe technical side is one dimension of creating an app. There\\u2019s still the business, legal, and operational challenges involved that have to come together to form a successful business. Please clap if you thought this article was helpful and let me know in the comments below if you would like to see a post on each dimension of creating an app.\"));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAAB6sxaw6Ehn//EABsQAAEEAwAAAAAAAAAAAAAAAAMAAQIRIzEz/9oACAEBAAEFAgyscaGsRFBPxbX/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwFn/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHBAAAAYDAAAAAAAAAAAAAAAAAAEQERIxMoHB/9oACAEBAAY/AsqEjM2ahLqaT//EABwQAAICAgMAAAAAAAAAAAAAAAERACExcRBBUf/aAAgBAQABPyHMkPLjlRZuoDcp6TA65N//2gAMAwEAAgADAAAAEFsf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAEx/9oACAEDAQE/EMRX/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERMf/aAAgBAgEBPxBayn//xAAcEAEAAgIDAQAAAAAAAAAAAAABABExYRBBscH/2gAIAQEAAT8QqwG94k2S4vsktWgyQ1Jbe9t1Zx3i+TBP/9k=","aspectRatio":2.2264150943396226,"src":"/static/ecffa24cbeffbab839e8f5c73464ff29/22328/hero.jpg","srcSet":"/static/ecffa24cbeffbab839e8f5c73464ff29/6d250/hero.jpg 236w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/1a26c/hero.jpg 472w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/22328/hero.jpg 944w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/cca5d/hero.jpg 1260w","srcWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/1d644/hero.webp","srcSetWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/cbe96/hero.webp 236w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/8ab83/hero.webp 472w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/1d644/hero.webp 944w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/7614f/hero.webp 1260w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAgME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAe+VTGMipX//xAAZEAADAAMAAAAAAAAAAAAAAAABAgMRIiP/2gAIAQEAAQUCnXSZy9Yk0lUqpPNKMF//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAEAAgEFAAAAAAAAAAAAAAABABECEBIhIlH/2gAIAQEABj8Cx9ldhi7ViSzhrT//xAAcEAEAAwACAwAAAAAAAAAAAAABABEhMUFRYYH/2gAIAQEAAT8hNenHyOWBrfE0VHmyVFuKPwl7IOLH3P/aAAwDAQACAAMAAAAQfC//xAAWEQEBAQAAAAAAAAAAAAAAAAABEDH/2gAIAQMBAT8QcJ//xAAXEQEAAwAAAAAAAAAAAAAAAAAAARFB/9oACAECAQE/EI1b/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITGRoUFRcf/aAAgBAQABPxBHsEKHpWXiVB2CbHObi5yalfcJxCWK6Y9X0INYFjkb5Rvuf//Z","aspectRatio":1.4954128440366972,"src":"/static/ecffa24cbeffbab839e8f5c73464ff29/6694a/hero.jpg","srcSet":"/static/ecffa24cbeffbab839e8f5c73464ff29/70b8f/hero.jpg 163w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/7ec88/hero.jpg 327w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/6694a/hero.jpg 653w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/ed86f/hero.jpg 980w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/30932/hero.jpg 1260w","srcWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/d603c/hero.webp","srcSetWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/64a97/hero.webp 163w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/a98ca/hero.webp 327w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/d603c/hero.webp 653w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/c1bd6/hero.webp 980w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/f031e/hero.webp 1260w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAgME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAe+VTGMipX//xAAZEAADAAMAAAAAAAAAAAAAAAABAgMRIiP/2gAIAQEAAQUCnXSZy9Yk0lUqpPNKMF//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAEAAgEFAAAAAAAAAAAAAAABABECEBIhIlH/2gAIAQEABj8Cx9ldhi7ViSzhrT//xAAcEAEAAwACAwAAAAAAAAAAAAABABEhMUFRYYH/2gAIAQEAAT8hNenHyOWBrfE0VHmyVFuKPwl7IOLH3P/aAAwDAQACAAMAAAAQfC//xAAWEQEBAQAAAAAAAAAAAAAAAAABEDH/2gAIAQMBAT8QcJ//xAAXEQEAAwAAAAAAAAAAAAAAAAAAARFB/9oACAECAQE/EI1b/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITGRoUFRcf/aAAgBAQABPxBHsEKHpWXiVB2CbHObi5yalfcJxCWK6Y9X0INYFjkb5Rvuf//Z","aspectRatio":1.5,"src":"/static/ecffa24cbeffbab839e8f5c73464ff29/c1e08/hero.jpg","srcSet":"/static/ecffa24cbeffbab839e8f5c73464ff29/8bed6/hero.jpg 114w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/1e283/hero.jpg 229w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/c1e08/hero.jpg 457w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/8ae28/hero.jpg 686w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/5cf51/hero.jpg 914w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/30932/hero.jpg 1260w","srcWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/72aed/hero.webp","srcSetWebp":"/static/ecffa24cbeffbab839e8f5c73464ff29/03a0a/hero.webp 114w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/d2b1d/hero.webp 229w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/72aed/hero.webp 457w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/1a85c/hero.webp 686w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/90a86/hero.webp 914w,\n/static/ecffa24cbeffbab839e8f5c73464ff29/f031e/hero.webp 1260w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/ecffa24cbeffbab839e8f5c73464ff29/0ff54/hero.jpg"}}}}},{"node":{"id":"1ba71c4d-9d92-5dcb-8274-095fca8c5917","slug":"/blog/we-launched-a-product-with-150-here-s-what-happened","title":"We Launched a Product with $150. Here’s what Happened.","author":"Marcus Wood","date":"April 5th, 2019","dateForSEO":"2019-04-05T00:00:00.000Z","timeToRead":5,"excerpt":"Every so often my team and I set two weeks aside to work on a passion project. The bottom is line is ever important, but feeding the soul with an adventure on the side is as well.","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"We Launched a Product with $150. Here’s what Happened.\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2019-04-05T00:00:00.000Z\",\n  \"hero\": \"./images/hero.png\",\n  \"excerpt\": \"Every so often my team and I set two weeks aside to work on a passion project. The bottom is line is ever important, but feeding the soul with an adventure on the side is as well.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Every so often my team and I set two weeks aside to work on a passion project. The bottom is line is ever important, but feeding the soul with an adventure on the side is as well. We field it as-is at the end of our two weeks, just to judge interest and field test our efforts. Our latest project, \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://guessthethrone.com/\"\n  }), \"Guess the Throne\"), \", was no different. However, we decided to add an extra challenge: launch it successfully for less than \\\\$150.\\nGuess the Throne is an online death pool for the final season of Game of Thrones. Create your group, submit your picks, and invite your friends. We handle the scoring, rules, and everything else for free!\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"You may be asking yourself, \\u201CWhat\\u2019s a death pool?\\u201D Much like it sounds, it\\u2019s a bracket that lets you predict if a character lives or dies. Each correct guess is worth a point, and the most points win!\")), mdx(\"p\", null, \"It\\u2019s hard enough to launch a product with gobs of cash at your disposal. The timing, connections, and dumb luck required for a meteoric rise can leave the best and most deserving of products on the scrap heap. However, I hope our experiment helps you succeed by this one approach: a focus on product with a hard-charging ground game to back it up. Armed with DM slides, a photoshopped cat picture, and a good user experience, we were able to capture thousands of users within 24 hours of launch.\"), mdx(\"h2\", {\n    \"id\": \"product-hunt\"\n  }, \"Product Hunt\"), mdx(\"p\", null, \"We tried to exhaust all free methods before dipping into our limited budget. We figured Product Hunt would be a great place to make a splash in the development community. After reading how to make it happen we were finished in around 20 minutes. On launch day over 7,000 people viewed our website and 1,200 users signed up. We battled for a top-five spot all day before falling to eighth by closing time.\\nThis was awesome! One thing we noticed was that even though we converted over 1,200 people we didn\\u2019t get very many upvotes on Product Hunt in comparison. To battle that, we decided to personalize the experience if you came from Product Hunt by giving you a little nudge to direct you back to the site after making a group and entry.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/v1564965769/1_c8aGu-3siJ4qyBTEQtOKsg_qrik5p.png\",\n    \"alt\": \"Share with friends CTA\"\n  }))), mdx(\"p\", null, \"If you\\u2019re using React and would like to have the code comment below and I\\u2019ll open source it!\\nSince we didn\\u2019t network before launching on Product Hunt or use the platform beforehand I found myself going to other people\\u2019s products commenting, interacting, and following. Don\\u2019t do this! Every time I did we would drop in the rankings which was unfortunate because I wasn\\u2019t being spammy. Of course I wanted them to come back and check out our cool new thing. \\uD83D\\uDE06\\nOverall, Product Hunt seems like a no brainer in any budget launch situation. We still get referrals from their site each day. We\\u2019ll need to launch more products on PH get a grasp of how lucky we\\u2019ve been so far, but after this success we certainly will.\"), mdx(\"h2\", {\n    \"id\": \"influencer-marketing\"\n  }, \"Influencer Marketing\"), mdx(\"p\", null, \"Perhaps one of the more sketchy ideas was to slide into the DMs of influencers on Twitter and politely ask for a shout out. No one gave us one for free \\uD83D\\uDE2D, but you can normally negotiate a way for them to promote you in a tweet. We put our trust in the internet here and it panned out great.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/v1564965781/1__jLrNbu874K6YWAVeo9KgQ_p5kycd.png\",\n    \"alt\": \"Share with friends CTA\"\n  }))), mdx(\"p\", null, \"We paid for this tweet to reach +500k Game of Thrones fans. Within five minutes of the tweet going out we had over 80 people on our home page simultaneously and based off our analytics we converted over 250 people within two hours. The cost per acquisition was 20 cents \\uD83D\\uDE4C\\uD83C\\uDFFB. Influencer marketing is the move.\"), mdx(\"h2\", {\n    \"id\": \"share-it-everywhere\"\n  }, \"Share it Everywhere\"), mdx(\"p\", null, \"We scoured the internet for mentions of \\u201Cdeath pool\\u201D and \\u201CGame of Thrones\\u201D together. If there was an article written about it we commented on the post. Game of Thrones Discord channel, we\\u2019re there. Facebook Groups? You got it. Reddit? Yep. If you\\u2019ve tweeted about Game of Thrones and death pool in the past three years you likely received a message from us.\\nI cannot overstate the importance of interactivity, of personality. You need to be everywhere someone could search for your product and be available to answer their questions promptly, to offer them solutions to questions they haven\\u2019t asked. There is a fine line between attentive and spammy. Don\\u2019t mindlessly plaster your product across the internet with cheesy, self-aggrandizing, corporate claims. Most groups have moderators and it\\u2019s always best to confirm with them that you can share your product before doing so.\"), mdx(\"h2\", {\n    \"id\": \"submit-a-post-to-a-publication-on-medium\"\n  }, \"Submit a Post to a Publication on Medium\"), mdx(\"p\", null, \"Writing publications on Medium is incredibly easily, and I want more people to know that. Write your article draft, find the publication it aligns with closest, and reach out to to them. Don\\u2019t be shy! I\\u2019ve never had an article denied, and my articles perform 100x better (no exaggeration) than when forgoing a publication.\"), mdx(\"p\", null, \"Caldera is my personal account and rarely receives any views.\\nFrom our \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://hackernoon.com/announcing-guess-the-throne-a-game-of-thrones-death-pool-897737cfb285\"\n  }), \"Medium post in Hacker Noon\"), \" we estimate over 1,100 users joined. It took us an hour to write and was completely free to do!\"), mdx(\"h2\", {\n    \"id\": \"fiverr-time\"\n  }, \"Fiverr Time!\"), mdx(\"p\", null, \"Everyone that worked on the product found one gig on Fiverr to help us promote.\"), mdx(\"h3\", {\n    \"id\": \"i-will-advertise-and-promote-your-business-on-iheartradio-and-social-network\"\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"https://www.fiverr.com/klevitt70/promote-your-business-on-my-podcast?source=Order+page+gig+link&funnel=9f82ae2c-c5fc-485a-85bb-890dc25620a0\"\n  }), \"I Will Advertise And Promote Your Business On iHeartRadio And Social Network\")), mdx(\"p\", null, \"This was pretty awesome. An iHeartRadio host advertised us on his talk show. The commercial is an instant classic!\"), mdx(\"p\", null, \"Cost: \\\\$7\\nImpact: Hard to measure. Worth the cost because you never know who is listening.\"), mdx(\"h3\", {\n    \"id\": \"promote-your-twitter-to-a-large-audience\"\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"https://www.fiverr.com/klaurent/promote-your-twitter-to-a-large-audience?source=Order+page+gig+link&funnel=55ebc451-61ad-4d1f-93a5-b71152163ff0\"\n  }), \"Promote Your Twitter To A Large Audience\")), mdx(\"p\", null, \"Give this guy your Twitter handle and he floods your page with totally, definitely real people who like, follow, and retweet you.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/v1564965797/1_LyaIh7LgrtkxNgHz7FWZuw_xixmoe.png\",\n    \"alt\": \"Retweets\"\n  }))), mdx(\"p\", null, \"Cost: \\\\$7\\nImpact: Little to none. It was nice to break 75 followers on Twitter right off the bat, but fake users are useless after that point.\"), mdx(\"h3\", {\n    \"id\": \"tweet-your-message-to-my-330k-twitter-followers\"\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"https://www.fiverr.com/tweets_asap/tweet-your-message-to-my-500k-twitter-followers?source=Order+page+gig+link&funnel=acb1b1d7-d110-46e9-8d87-89662201f101\"\n  }), \"Tweet Your Message To My 330k Twitter Followers\")), mdx(\"p\", null, \"Type up a tweet and off it goes onto this guys account (he\\u2019s a cool guy \\u2014 it\\u2019s in his bio).\"), mdx(\"p\", null, \"Cost: \\\\$7\\nImpact: I\\u2019d say we converted about 60 users from it. Not bad!\"), mdx(\"h3\", {\n    \"id\": \"do-promotion-or-shoutout-on-my-18k-cat-instagram\"\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"https://www.fiverr.com/beril_d/shoutout-on-my-18k-cat-instagram-page?source=Order+page+gig+link&funnel=17f31c2a-207b-4c6c-a669-7b5c00f84b2e\"\n  }), \"Do Promotion Or Shoutout On My 18k Cat Instagram\")), mdx(\"p\", null, \"Once we saw this one it had to happen.\"), mdx(\"p\", null, \"Meet Waffles!\\nCost: \\\\$7\\nImpact: Not too much. Links on Instagram are hard.\"), mdx(\"h3\", {\n    \"id\": \"distribute-your-press-release\"\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"https://www.fiverr.com/valanne/distribute-your-press-release?source=Order+page+gig+link&funnel=197a68be-78fe-452a-9a2e-8c03cee08344\"\n  }), \"Distribute Your Press Release\")), mdx(\"p\", null, \"You type up a press release and it\\u2019s immediately published on over 100 websites. This was more of a curiosity to us than anything because we can never get press on product (more on that below). Don\\u2019t do this. This is an example of the quality you get \\uD83D\\uDE02\\u2026\\nChinese Export Business\\nSenmer News Wire : Spoilers ahead! Please don\\u2019t visit the website or read this post if you\\u2019re not caught up\\u2026\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.facebook.com\"\n  }), \"www.facebook.com\"), \"\\nCost: \\\\$52.50 \\uD83D\\uDE44\\nImpact: It was shared everywhere, but we couldn\\u2019t measure any impact at all. Most of the websites were sketchy and probably hurt our SEO.\"), mdx(\"h2\", {\n    \"id\": \"a-slight-rant-on-press\"\n  }, \"A Slight Rant on Press\"), mdx(\"p\", null, \"\\u201CWhat about press?\\u201D you might ask. We tried so hard to get this in the news, and thought it would surely get picked up after seeing blogs like this. Six people responded from 110 DM slides. Some said they personally liked the app, but their lack of interest in writing that opinion was made clear. We couldn\\u2019t even get Game of Thrones blogs to write about us. We sent a press kit and personalized messages, and followed up repeatedly with (we thought) interesting updates on our progress. If anyone reading this has insights on how we can better connect with the press I would love to hear from you.\"), mdx(\"h2\", {\n    \"id\": \"results\"\n  }, \"Results\"), mdx(\"p\", null, \"Grand total spent was \\\\$130.50. Now to the numbers. We are up to 5,058 users on the app twelve days after launching. Here\\u2019s a snap of our Google Analytics.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/v1564965854/1_RQAnhvrETFBvD-xR8IDnyQ_vucrgz.png\",\n    \"alt\": \"Google Analytics Guess the Throne\"\n  }))), mdx(\"p\", null, \"We\\u2019re overjoyed with the success that we\\u2019ve seen and feel like we\\u2019re one piece of press away from taking this to a new level. We\\u2019re projecting to hit 20,000 users by the start of the show, and would love for you to join us!\\nWe\\u2019re actively looking for a partner to help promote Guess the Throne and create content. If this is something you\\u2019d be interested in shoot us an email at \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"mailto:support@itsadate.app.\"\n  }), \"support@itsadate.app.\"), \"\\nI believe the most important lesson we\\u2019ve learned is the power of product and timing. Having a timely idea with a good product makes marketing easier. And remember, as the co-founder of Airbnb once said\\u2026\"), mdx(\"p\", null, \"My name is Marcus Wood. I am the founder of Caldera, a product company focused on creating great user experiences through cutting edge tech.\"));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsSAAALEgHS3X78AAABp0lEQVQoz32RzW7aQBSFJ1LfobsqUl+kVfoW7ZOkmygSUqUuoqJsWiGxSCqkbAKLolYsEIlMwQk4xPwGHPOPsbHNzJ0ZA124F1CaLKJKs7iae745594h1w7TXKb7UJ/zO8YNEKaQfSFHi8D6s5ysFoMgMLnE+xbjqLn1QXMBqcKUkpLDblyo+tCkvA0cdX0hxstgKPjHyHHkKDZZLftS3nPZBtGgHJWoL81Y0X4KM94B0RWyywHC8Dh+tkN2X+y8Pk3+8sLQ2HTRoDrnFW8Ls+dgABmG+4dRQnYJeRWNJegahv/AvEGhzdaxTVg7f4klCHmJ5+vpuR+GHexu4aex/y2sBbKDpAh6QmLOT9H423cf3uy9P/j8zUZnLh5m5o8LU21WdhkmyZsjtTeuzfyq5bQ8H/1LZr82teuOW5nYt5ajz3zdpZozL8/Y1RZG9zK+ZHmpQiWV11JK6Xs6d9k0VHOQrTTTBS1+noknMyc/sj/LdcUcZWrGtU1Vm+atOfk9XVc3Hi8OHXU4xZ9Ef6XdVXujrN66aBhY5xr3ijHQN9NubCnaKhP/L9HPxWU1KrLtAAAAAElFTkSuQmCC","aspectRatio":2.2264150943396226,"src":"/static/4b1c08f5aae13f836987aee542a3b7bc/8e72e/hero.png","srcSet":"/static/4b1c08f5aae13f836987aee542a3b7bc/f4b77/hero.png 236w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/6cdf2/hero.png 472w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/8e72e/hero.png 944w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/a43d9/hero.png 1220w","srcWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/1d644/hero.webp","srcSetWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/cbe96/hero.webp 236w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/8ab83/hero.webp 472w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/1d644/hero.webp 944w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/02049/hero.webp 1220w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACEklEQVQoz02Ry27TUBCGLXaINQgWVZstEmLDDrWsQWLPA7BmyTPwJiA2bYWEWqTQJE2ci+3mYid2fEvjJI3j+7m5cVNSJkkjkM7qaL75Zv7hRB83Q9yJSS+hGqYmYQOaDlk6SlN3kcG7usmGjNk0NQiDgm5C2xFpBljwMSf5uBViOaZqQnVMbcKAdBiL7pZH+fKnz19qmuEtFwPKLMKgABxyTAARtzBRYqIhamAKReCZLTLDD168fMdxz96+/zi9mTtpalGmE6oiqqxgIt3D0RZezQwwDe/+VLvao4fPH3C5vb0DK47H8zmYjTUs/w+312Z1bba3ZjsKc7kDjnu6/+YDmGGXFYxX2/0bW9zsHIEZGrN1YNRb3v6WOjs7r588frW7u19sq1eLWwORPgQWkw4EtoEhtIsA0qbtIOl4obUOxpnP7QQJ5iWv6s3hWAsjJ8ssmmqYaeRaQexik3bDQ5KP5IT9aMjHfPOw1DgqNfIttTV2+b59XKz/EuVvJ6Wvp+ff83zFHBX14ZnuSCEBkKvPkOCjVkSLhnPa0irWqNAzK8alNHbr9qig6KWeeSLIPwX5rGeJ06A+8WuTALS1GeJ4FzW81QKdhPXodT/NhIlX6g/KxrCgmtDoXB/w1ijfNUU3UHAKp5ECUvcQ7yZceRpXgfex6KELGAHCS6iSwEnY/SNpFzP4hPPAqqCBYatuAuBfw+otfgpzvd4AAAAASUVORK5CYII=","aspectRatio":1.8953488372093024,"src":"/static/4b1c08f5aae13f836987aee542a3b7bc/2ceab/hero.png","srcSet":"/static/4b1c08f5aae13f836987aee542a3b7bc/d8768/hero.png 163w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/8e377/hero.png 327w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/2ceab/hero.png 653w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/a436b/hero.png 980w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/dba30/hero.png 1220w","srcWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/d603c/hero.webp","srcSetWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/64a97/hero.webp 163w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/a98ca/hero.webp 327w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/d603c/hero.webp 653w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/c1bd6/hero.webp 980w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/4cc8c/hero.webp 1220w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACEklEQVQoz02Ry27TUBCGLXaINQgWVZstEmLDDrWsQWLPA7BmyTPwJiA2bYWEWqTQJE2ci+3mYid2fEvjJI3j+7m5cVNSJkkjkM7qaL75Zv7hRB83Q9yJSS+hGqYmYQOaDlk6SlN3kcG7usmGjNk0NQiDgm5C2xFpBljwMSf5uBViOaZqQnVMbcKAdBiL7pZH+fKnz19qmuEtFwPKLMKgABxyTAARtzBRYqIhamAKReCZLTLDD168fMdxz96+/zi9mTtpalGmE6oiqqxgIt3D0RZezQwwDe/+VLvao4fPH3C5vb0DK47H8zmYjTUs/w+312Z1bba3ZjsKc7kDjnu6/+YDmGGXFYxX2/0bW9zsHIEZGrN1YNRb3v6WOjs7r588frW7u19sq1eLWwORPgQWkw4EtoEhtIsA0qbtIOl4obUOxpnP7QQJ5iWv6s3hWAsjJ8ssmmqYaeRaQexik3bDQ5KP5IT9aMjHfPOw1DgqNfIttTV2+b59XKz/EuVvJ6Wvp+ff83zFHBX14ZnuSCEBkKvPkOCjVkSLhnPa0irWqNAzK8alNHbr9qig6KWeeSLIPwX5rGeJ06A+8WuTALS1GeJ4FzW81QKdhPXodT/NhIlX6g/KxrCgmtDoXB/w1ijfNUU3UHAKp5ECUvcQ7yZceRpXgfex6KELGAHCS6iSwEnY/SNpFzP4hPPAqqCBYatuAuBfw+otfgpzvd4AAAAASUVORK5CYII=","aspectRatio":1.9,"src":"/static/4b1c08f5aae13f836987aee542a3b7bc/9a17a/hero.png","srcSet":"/static/4b1c08f5aae13f836987aee542a3b7bc/8026f/hero.png 114w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/5a23a/hero.png 229w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/9a17a/hero.png 457w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/14c4d/hero.png 686w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/09cde/hero.png 914w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/dba30/hero.png 1220w","srcWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/72aed/hero.webp","srcSetWebp":"/static/4b1c08f5aae13f836987aee542a3b7bc/03a0a/hero.webp 114w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/d2b1d/hero.webp 229w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/72aed/hero.webp 457w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/1a85c/hero.webp 686w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/90a86/hero.webp 914w,\n/static/4b1c08f5aae13f836987aee542a3b7bc/4cc8c/hero.webp 1220w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/4b1c08f5aae13f836987aee542a3b7bc/6050d/hero.png"}}}}},{"node":{"id":"9e6f62cf-a85c-5ed2-a6f5-9e1472b490dc","slug":"/blog/announcing-guess-the-throne-a-game-of-thrones-death-pool","title":"Announcing Guess the Throne | A Game of Thrones Death Pool","author":"Marcus Wood","date":"March 29th, 2019","dateForSEO":"2019-03-29T00:00:00.000Z","timeToRead":2,"excerpt":"This guide gives you a rundown of each step you need to take from the technical side to give your app the best chance to succeed.","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Announcing Guess the Throne | A Game of Thrones Death Pool\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2019-03-29T00:00:00.000Z\",\n  \"hero\": \"./images/hero.png\",\n  \"excerpt\": \"This guide gives you a rundown of each step you need to take from the technical side to give your app the best chance to succeed.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Spoilers ahead! Please don\\u2019t visit the website or read this post if you\\u2019re not caught up.\")), mdx(\"p\", null, \"The final season of Game of Thrones is here, and we couldn\\u2019t be more excited about it. After hearing for years that winter is coming, it\\u2019s finally time to watch the carnage of season 8 unfold. What better way to celebrate the final season than creating a death pool for you and your friends to join.\\nMy friends and I live all over the country so a paper pool wasn\\u2019t an option, and we couldn\\u2019t find what we needed online, so we just up and created \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://guessthethrone.com/\"\n  }), \"Guess the Throne\"), \"! Create your group, submit your picks, and invite your friends. We handle the scoring, rules, and everything else for free!\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"You may be asking yourself, \\u201CWhat\\u2019s a death pool?\\u201D Much like it sounds, it\\u2019s a bracket that lets you predict if a character lives or dies. Each correct guess is worth a point, and the most points win!\")), mdx(\"h2\", {\n    \"id\": \"how-it-works\"\n  }, \"How it Works\"), mdx(\"p\", null, \"The first thing you need to do is either create a group or join an existing one. You can create unlisted groups that can only be found by links or create a public one.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564965139/1_pKvfKKbKroFnzXkoDDHEjw_badss0.gif\",\n    \"alt\": \"Creating a death pool\"\n  }))), mdx(\"p\", null, \"\\uD83D\\uDC80Death pool time! It\\u2019s time to create your entry and choose who lives and dies. We also have three bonus questions to keep it interesting throughout!\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564965151/1_r4xuDml6mL99lM07XliWGw_o0vcx1.gif\",\n    \"alt\": \"Death pool picks\"\n  }))), mdx(\"p\", null, \"Woo, looking good so far! \\uD83D\\uDE4C\\uD83C\\uDFFBNow it\\u2019s time to invite your friends to join in on the fun.\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564965164/1_mdTEbn3vmM8TSVKze9bHXw_gvyujm.gif\",\n    \"alt\": \"Death pool picks\"\n  }))), mdx(\"p\", null, \"Remember that anyone with the link can see your group so be careful where you share it!\\nThat\\u2019s it! You don\\u2019t have to do anything else, and we handle the rest. After each episode we\\u2019ll update the death pool so you can see how you rank compared to your friends.\"), mdx(\"h2\", {\n    \"id\": \"what-if-somethingweird-happens\"\n  }, \"What if something\\u2026.weird happens\"), mdx(\"p\", null, \"If Game of Thrones is anything, it\\u2019s unpredictable. We\\u2019ve \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://guessthethrone.com/faq\"\n  }), \"attempted\"), \" to cover every edge case possible including but not limited to: What if two characters are the same person? What if someone dies and comes back? What if someone joins the army of the dead?\\nIf you see something missing let us know and we will add it. For all other things we have a small council (\\uD83D\\uDE4F) that holds final judgement on all scoring decisions.\"), mdx(\"h2\", {\n    \"id\": \"whats-in-it-for-us\"\n  }, \"What\\u2019s in it for us?\"), mdx(\"p\", null, \"We\\u2019re offering this 100% free for everyone to use! This took us about a week to build, and if you\\u2019d like to show your appreciation please check out \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://itsadate.app/\"\n  }), \"It\\u2019s a Date\"), \", another product of ours, or share \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://guessthethrone.com/\"\n  }), \"Guess the Throne\"), \" on social media. There\\u2019s nothing else in it for us \\u2014 we\\u2019re just excited that people are using it. After the season concludes we might send out one and only one email thanking everyone for joining in on the fun and to check out It\\u2019s a Date.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Quick Aside: I know most of my blogs share code and how to implement things. These blogs are coming! After the season concludes I plan on open sourcing the code and writing a couple articles about shipping a product in one week. In the meantime, I have created a \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://codesandbox.io/s/l26k0xxvrq\"\n  }), \"CodeSandbox\"), \" of the landing page! \\uD83D\\uDE07\")), mdx(\"hr\", null), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://guessthethrone.com/\"\n  }), \"Guess the Throne\"), \" is now available to share with your friends, coworkers, and family. If you have any questions please reach out to us on Twitter at \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://twitter.com/GuessTheThrone\"\n  }), \"@GuessTheThrone\"), \", and if you decide to raise the stakes by playing for more than pride and bragging rights remember one thing\\u2026\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://giphygifs.s3.amazonaws.com/media/7E0QphLuDhT32/giphy.gif\",\n    \"alt\": \"game of thrones meme\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsSAAALEgHS3X78AAACG0lEQVQozy1PS2sTURidP6LQhXRR8FUxNvWxaLSakhYUXIiIgaYtFqIlGg1tI5rENA+jECOlBSF0UahVKFJ0YZEutQbE1KZpJplOMpn3nQmTyXMyc70R4Xzw3fOdBxfjBRGB5UVBBKIIBCADWZZkmSxS6d39vUyO49BF7l6BJACJRxpRQjsC1qXQyIBiWPCP4oFUotn5p7EZl/+By/fMHy8zHIoTRQkJGF6QJGTpurAiwzUaCoQNgmb+4GSOLP/KEtk8HgglHnoij2cjvuCbAkHgh6U8SeEFslCkDKOm1ioExWJKTdZ1FchcGidSWeKgVFZrstaudPRmOl/e2cvXW41WE3AVcbfE/chReZaHhooskgIwTevWRpc3bI6Xt5wR7+vV6NL6fh5H5CFNb6cyvw9wzWgZErMWDMWn76e2vkLYajblTqeKGYYKYb2qSvGVL30W5+DN56ZRt9ObqCgAiViR/5khVoKhwNDlJ6dOTx45ujBirYo0hB1dVzAIawhtTQEVwe5eHBmPmW/MDd0O3HUvJj9s6bC9EfDN9PQ86utzHz/h6e939/auO6e1BoquY3q3uZXO4uHlT1Pz72wTr05ec9kc0av28Jnrvo9rm5vjdyJmc/j84IuBc0HT2fcO+9vhK3R6B0L9fzOK0fU6ei+tfj526d7YZGx0Imadis86/UnrcMJiiV28sDBgSo7Zvnk95PdtCJvov38BM4iTaW8JXogAAAAASUVORK5CYII=","aspectRatio":2.2264150943396226,"src":"/static/9e970bd26cfa87e9c791d9c8885a07fd/8e72e/hero.png","srcSet":"/static/9e970bd26cfa87e9c791d9c8885a07fd/f4b77/hero.png 236w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/6cdf2/hero.png 472w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/8e72e/hero.png 944w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/36443/hero.png 1260w","srcWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/1d644/hero.webp","srcSetWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/cbe96/hero.webp 236w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/8ab83/hero.webp 472w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/1d644/hero.webp 944w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/7614f/hero.webp 1260w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsSAAALEgHS3X78AAADMUlEQVQoz31RW0zTYBj99UGNGuOL8cFgotGZqA9KIiITXYwXxFvUqHh5UMMlYAzGeEONeEkAb0O8hG3AhBAQJiYaEWKQoYKQgE5xMMbc7C5dS9u1XTfG2jGoX+Hd5vRPvvOf85/zt2jWHNXCRYmz561evGTj3AVrEUpAaOl/kTBj5rI589fMnr8a6SteVb00GaoajDVNFcZGQ2XDNPSVDTpDvaGqEUj91AikrqIeSLBUGk3AIykmiZIoSlNPLBZgA4CgEBRCQlQSyRESx/GgIHA8xwd5SRLj8XGwjIlRsCCKDgBGKAYQYPmvnV1t7ea2T+1fvnbahuy9fd/bzR3NH1peN7350NqKebxMgCNHaADoEcNygSmAleX4YYfLOmB3utyDNsfA4DDA8nMAGIcTs9md4AEZgIZ6LIcgDwgIhxkOUlrQDGx7vPhv61B/vw1z+yiaISmapBSeVvSKE8QI4pSBY2EbkgHA8sHQq8b3pWXGF+W15fq6Py43XFspyHFTsYHppshDUKMRQZbHMIJ0YLiXoPodmMvnu1n46OCx81m5Nw4ezevu6fWTFOYjcEXjC0f48dion6IRK7ATE6OyPOpnaMuwx+ry0hwTDtNjomCxY+09vwiGkaKsj/ANeokfTt9vjBQlCIuEIjz8qpAsR6tMbTk3Kwoe1OjqW03Nnz1+L2zjNN31y/FzaDgSBU28v8NcXfK44937qBgEVzweRvCC2elxXyyqW67OUR8p1GTczi14Egzzsjzu9uMWJ9HV1VN3+ZJ27968FSuvbUjCfvTJcFg8hCBhUobaEiD/rjE9U7s1o1Bz/M7VB/XmbossT1i/dV7flHJBpbqwZu2VxMT8VasqTx4XgyREoolJcIo259/ntR8Pn3umOVGccujGrtPFu88+VB+5V/32S1/Z/aJ16+6nbi7alHxr/Xrd/j1adUrH4xIIV5LhU0sxAR8hGI4yNplVmry0MyUHsrXp2WWXC56bMo7qdu7Qbt1SlJykTVU352R2lz8NuAagKZpUksEficdhlWubWhKSzhzIKYXkfblPT2UVP0tLL9++TZ+205C2q3rP7t4XpZQNrjMOxn/QUYNoYY1WmAAAAABJRU5ErkJggg==","aspectRatio":1.3583333333333334,"src":"/static/9e970bd26cfa87e9c791d9c8885a07fd/2ceab/hero.png","srcSet":"/static/9e970bd26cfa87e9c791d9c8885a07fd/d8768/hero.png 163w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/8e377/hero.png 327w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/2ceab/hero.png 653w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/a436b/hero.png 980w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/e1282/hero.png 1260w","srcWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/d603c/hero.webp","srcSetWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/64a97/hero.webp 163w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/a98ca/hero.webp 327w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/d603c/hero.webp 653w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/c1bd6/hero.webp 980w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/f031e/hero.webp 1260w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsSAAALEgHS3X78AAADMUlEQVQoz31RW0zTYBj99UGNGuOL8cFgotGZqA9KIiITXYwXxFvUqHh5UMMlYAzGeEONeEkAb0O8hG3AhBAQJiYaEWKQoYKQgE5xMMbc7C5dS9u1XTfG2jGoX+Hd5vRPvvOf85/zt2jWHNXCRYmz561evGTj3AVrEUpAaOl/kTBj5rI589fMnr8a6SteVb00GaoajDVNFcZGQ2XDNPSVDTpDvaGqEUj91AikrqIeSLBUGk3AIykmiZIoSlNPLBZgA4CgEBRCQlQSyRESx/GgIHA8xwd5SRLj8XGwjIlRsCCKDgBGKAYQYPmvnV1t7ea2T+1fvnbahuy9fd/bzR3NH1peN7350NqKebxMgCNHaADoEcNygSmAleX4YYfLOmB3utyDNsfA4DDA8nMAGIcTs9md4AEZgIZ6LIcgDwgIhxkOUlrQDGx7vPhv61B/vw1z+yiaISmapBSeVvSKE8QI4pSBY2EbkgHA8sHQq8b3pWXGF+W15fq6Py43XFspyHFTsYHppshDUKMRQZbHMIJ0YLiXoPodmMvnu1n46OCx81m5Nw4ezevu6fWTFOYjcEXjC0f48dion6IRK7ATE6OyPOpnaMuwx+ry0hwTDtNjomCxY+09vwiGkaKsj/ANeokfTt9vjBQlCIuEIjz8qpAsR6tMbTk3Kwoe1OjqW03Nnz1+L2zjNN31y/FzaDgSBU28v8NcXfK44937qBgEVzweRvCC2elxXyyqW67OUR8p1GTczi14Egzzsjzu9uMWJ9HV1VN3+ZJ27968FSuvbUjCfvTJcFg8hCBhUobaEiD/rjE9U7s1o1Bz/M7VB/XmbossT1i/dV7flHJBpbqwZu2VxMT8VasqTx4XgyREoolJcIo259/ntR8Pn3umOVGccujGrtPFu88+VB+5V/32S1/Z/aJ16+6nbi7alHxr/Xrd/j1adUrH4xIIV5LhU0sxAR8hGI4yNplVmry0MyUHsrXp2WWXC56bMo7qdu7Qbt1SlJykTVU352R2lz8NuAagKZpUksEficdhlWubWhKSzhzIKYXkfblPT2UVP0tLL9++TZ+205C2q3rP7t4XpZQNrjMOxn/QUYNoYY1WmAAAAABJRU5ErkJggg==","aspectRatio":1.3571428571428572,"src":"/static/9e970bd26cfa87e9c791d9c8885a07fd/9a17a/hero.png","srcSet":"/static/9e970bd26cfa87e9c791d9c8885a07fd/8026f/hero.png 114w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/5a23a/hero.png 229w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/9a17a/hero.png 457w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/14c4d/hero.png 686w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/09cde/hero.png 914w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/e1282/hero.png 1260w","srcWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/72aed/hero.webp","srcSetWebp":"/static/9e970bd26cfa87e9c791d9c8885a07fd/03a0a/hero.webp 114w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/d2b1d/hero.webp 229w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/72aed/hero.webp 457w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/1a85c/hero.webp 686w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/90a86/hero.webp 914w,\n/static/9e970bd26cfa87e9c791d9c8885a07fd/f031e/hero.webp 1260w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/9e970bd26cfa87e9c791d9c8885a07fd/6050d/hero.png"}}}}},{"node":{"id":"fd7cfe27-0579-5095-b7ec-0d15a219bd50","slug":"/blog/beginning-your-web-development-journey-start-here","title":"Beginning your Web Development Journey? Start here.","author":"Marcus Wood","date":"July 11th, 2018","dateForSEO":"2018-07-11T00:00:00.000Z","timeToRead":4,"excerpt":"I can’t tell you how many nights I spun my wheels in the wrong direction learning something I’ve never used. This is what I wish someone would of told me as well as a bunch of great resources to get you started.","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Beginning your Web Development Journey? Start here.\",\n  \"author\": \"Marcus Wood\",\n  \"date\": \"2018-07-11T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpg\",\n  \"excerpt\": \"I can’t tell you how many nights I spun my wheels in the wrong direction learning something I’ve never used. This is what I wish someone would of told me as well as a bunch of great resources to get you started.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I started learning how to code four years ago. When I started, I knew that I wanted to build websites and apps. I figured I\\u2019d learn what I needed and make some cool stuff to land an entry level developer job. What I didn\\u2019t anticipate is how many tools there were to choose from, and there wasn\\u2019t much direction on where to start. Choosing a code editor, using the command line, version control, and not to mention learning the tech jargon made it hard to start.\"), mdx(\"p\", null, \"I can\\u2019t tell you how many nights I spun my wheels in the wrong direction learning something I\\u2019ve never used. This is what I wish someone would of told me as well as a bunch of great resources to get you started.\"), mdx(\"h2\", {\n    \"id\": \"where-to-start\"\n  }, \"Where to Start\"), mdx(\"p\", null, \"There are A LOT of languages and tools you can use to build for the web. All of them have their benefits, and are maintained by tons of super smart people. While this is great for pushing the web forward, it\\u2019s confusing and overwhelming to start.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Learn HTML, CSS, and Javascript exclusively.\")), mdx(\"p\", null, \"If know HTML, CSS, and Javascript on a deep level, you will be able to create anything on the web.\"), mdx(\"h2\", {\n    \"id\": \"the-core-ten\"\n  }, \"The Core Ten\"), mdx(\"p\", null, \"Strive for ten hours of real coding each week. That means in the editor, slinging divs, and writing methods. Podcasts, tutorials, and reading blogs aren\\u2019t part of that ten. Don\\u2019t go over and definitely don\\u2019t go under. There\\u2019s a certain amount of time it takes for the concepts to sink in, so a steady pace will level up your skills faster.\"), mdx(\"h2\", {\n    \"id\": \"tools-to-use\"\n  }, \"Tools to Use\"), mdx(\"p\", null, \"Next up, download VsCode to use as your code editor. After that you\\u2019ll need a terminal to run commands and do various other things so download iTerm2. Lastly, you need a browser to test your website in so grab the latest version of Google Chrome.\"), mdx(\"h2\", {\n    \"id\": \"getting-into-the-community\"\n  }, \"Getting Into the Community\"), mdx(\"p\", null, \"The only way to catch up is to jump right in. Do the following:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Read \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://medium.freecodecamp.org/\"\n  }), \"FreeCodeCamp\"), \" and \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://hackernoon.com/\"\n  }), \"Hackernoon\"), \" daily\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Listen to the podcasts \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://syntax.fm/\"\n  }), \"Syntax\"), \" and \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://shoptalkshow.com/\"\n  }), \"Shop Talk Show\"), \" weekly\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Hop on Twitter and follow a bunch of developers. Here\\u2019s a short list to get you started: \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/caldera_digital\"\n  }), \"Caldera\"), \" (shameless plug), \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/dan_abramov\"\n  }), \"Dan Abramov\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/kylemathews\"\n  }), \"Kyle Mathews\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/codebeast\"\n  }), \"Christian Nwamba\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/wesbos\"\n  }), \"Wes Bos\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/_developit\"\n  }), \"Jason Miller \\uD83E\\uDD8A \\u269B\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/stolinski\"\n  }), \"Scott Tolinski\"), \", \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://twitter.com/ryanflorence\"\n  }), \"Ryan Florence\"))), mdx(\"p\", null, \"Will you understand this stuff yet? Probably not. The point is to get you introduced to it early so it\\u2019s easier to dive in later.\"), mdx(\"h2\", {\n    \"id\": \"html-and-css\"\n  }, \"HTML and CSS\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 40 hours\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564963149/1_VogqCy95D5kgQu0_GsHBgg_yul5im.jpg\",\n    \"alt\": \"html programming meme\"\n  }))), mdx(\"p\", null, \"HTML gives webpages structure and CSS makes them look pretty. Do not use a library like Bootstrap for styling during this part. The point is to get used to creating markup, positioning elements, and styling only using CSS. Some of my go to resources to learn for this are:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.codecademy.com/\"\n  }), \"CodeCademy\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://teamtreehouse.com/tracks/front-end-web-development\"\n  }), \"Treehouse: Front End Web Development\"))), mdx(\"p\", null, \"While you\\u2019re building things focus on using the Chrome DevTools. It\\u2019s important familiarize yourself with all of these things so you can deep dive into them later.\"), mdx(\"h2\", {\n    \"id\": \"source-control\"\n  }, \"Source Control\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": Every project you do after this point\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564963156/1_2f4FlVYtS8NeWOLqeZD9vg_fjcsum.jpg\",\n    \"alt\": \"source control programming meme\"\n  }))), mdx(\"p\", null, \"Do not skip this! From this point forward and forever, use source control to track and manage your changes. This enables you to go back in time if you really mess things up, collaborate with other developers, and share your code online. To start you\\u2019ll need to install Git, create a Github account, and initialize a repository. Check this course out to get started:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://teamtreehouse.com/library/git-basics\"\n  }), \"Treehouse: Git Basics\"))), mdx(\"p\", null, \"This will likely be your first time using the command line to do computer things. It\\u2019s important to get comfortable there, and Git helps familiarize you with it initially. After you feel good about things start using SourceTree. It helps you visualize things and is friendlier to use.\"), mdx(\"h2\", {\n    \"id\": \"javascript\"\n  }, \"Javascript\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 80 hours\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://res.cloudinary.com/calderablog/image/upload/q_auto:good/v1564963163/1_d5-0BS2qFeuGe0Z9DIObEQ_sjvldt.jpg\",\n    \"alt\": \"javascript programming meme\"\n  }))), mdx(\"p\", null, \"Now it\\u2019s time to start bringing things to life and jumping into Javascript. This is the scripting language of the web and allows you to do nearly anything nowadays. You can create iOS/Android apps, backend servers, web applications, desktop applications, and even do machine learning with it. Focus all of your time on learning this language and this language alone. If you research you\\u2019ll see things like PHP, Ruby, Python, Node, Flask, React, Angular, Webpack, Jenkins, Wordpress, Rollup, Firebase, Docker, Yaml, and the list goes on. All of this stuff is great (except maybe PHP), but you need to focus on learning one thing well before branching out. You most likely won\\u2019t be doing too many web things, but that\\u2019s ok for now. Places to start:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://medium.freecodecamp.org/want-to-learn-javascript-heres-a-free-24-part-course-to-get-you-started-e7777baf86fb\"\n  }), \"Want to learn JavaScript? Here\\u2019s a free 24-part course to get you started.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.udemy.com/modern-javascript-from-the-beginning/\"\n  }), \"Modern Javascript from the Beginning\"))), mdx(\"h2\", {\n    \"id\": \"bring-it-all-together\"\n  }, \"Bring It All Together\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 60 hours\\nThis is where you take everything you\\u2019ve learned so far and bring it together to build some pretty cool things. I recommend going through Wes Bos\\u2019s \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://javascript30.com/\"\n  }), \"Javascript 30\"), \" course to get your feet wet in a variety of projects.\"), mdx(\"h2\", {\n    \"id\": \"react\"\n  }, \"React\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 100 hours\\nThis is the make or break step in \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://hackernoon.com/tagged/learning\"\n  }), \"learning\"), \" modern day web \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://hackernoon.com/tagged/development\"\n  }), \"development\"), \" \\u2014 learning your first library/framework. Most of the demand you\\u2019ll see in the job market for web developers will involve knowledge of some Javascript library or framework. Popular ones are React, Angular, Vue, Preact, and jQuery (though not as much nowadays). You\\u2019ll likely end up learning more than one, but I like learning React first because it\\u2019s going to shake up everything you\\u2019ve learned so far. Courses to check out:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.leveluptutorials.com/tutorials/react-for-everyone\"\n  }), \"Level Up Tutorials: React for Everyone\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.udemy.com/react-redux/\"\n  }), \"Modern React with Redux\"))), mdx(\"h2\", {\n    \"id\": \"css-time\"\n  }, \"CSS Time\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 20 hours\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://media.giphy.com/media/yYSSBtDgbbRzq/giphy.gif\",\n    \"alt\": \"Family guy blind fighting css\"\n  }))), mdx(\"p\", null, \"By this time you should have a collection of good projects and hopefully learned CSS along the way. It\\u2019s normally the first thing you learn, but the hardest to master. There\\u2019s also a bunch of different ways to style as you\\u2019ve probably seen in the courses listed above. You have CSS, SCSS, LESS, CSS-in-JS, inline-styles, PostCSS, Scoped CSS, and on top of that a bunch of different design methodologies for organizing your CSS. Don\\u2019t let any of this overwhelm you. To get caught up, read Modern CSS Explained For Dinosaurs.\\nNow it\\u2019s time to dive into Flexbox. This will give you the power to create layouts with ease. For learning, read \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://medium.freecodecamp.org/an-animated-guide-to-flexbox-d280cf6afc35\"\n  }), \"How Flexbox works \\u2014 explained with big, colorful, animated gifs\"), \".\"), mdx(\"h2\", {\n    \"id\": \"more-javascript\"\n  }, \"More Javascript\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Time\"), \": 20 hours\\nIf you\\u2019ve made it this far, it\\u2019s time to slow it down and review what you\\u2019ve learned. Libraries, coding patterns, and best practices change all the time, but the foundation of the language does not. Learning Javascript on a deep level is the key to long term success in web development. Buy this course, go through every lesson of it, and make sure you understand these things before moving forward. \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"break glass\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.udemy.com/understand-javascript/\"\n  }), \"Javascript: Understanding the Weird Parts\"))), mdx(\"p\", null, \"Following this guide will help you learn faster, and focus on the most important aspects of web development. If you would be interested in a free video series that follows the the structure of this guide please clap and subscribe!\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"https://media.giphy.com/media/lnlAifQdenMxW/giphy.gif\",\n    \"alt\": \"Johnny drama victory\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgD/2gAMAwEAAhADEAAAATJyNWR50F//xAAbEAEAAgIDAAAAAAAAAAAAAAACAAEDBBIxMv/aAAgBAQABBQLG+ZRLN4lUM1PC7//EABcRAQADAAAAAAAAAAAAAAAAAAABETH/2gAIAQMBAT8B1UP/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BbX//xAAaEAACAgMAAAAAAAAAAAAAAAABEAARAkGB/9oACAEBAAY/AqOhLxfV/8QAGBABAAMBAAAAAAAAAAAAAAAAAQARMRD/2gAIAQEAAT8hJAtZrLgLRI5UyzXg/9oADAMBAAIAAwAAABCDD//EABcRAAMBAAAAAAAAAAAAAAAAAAABESH/2gAIAQMBAT8QWIKR/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFjc23//xAAcEAEAAgIDAQAAAAAAAAAAAAABABEhMUGhsXH/2gAIAQEAAT8QCgSHgzuE5RxpSq3iklBUY+zqE7HwnnP/2Q==","aspectRatio":2.2264150943396226,"src":"/static/e68cc92ecc79a6be606f41d4585bf53a/22328/hero.jpg","srcSet":"/static/e68cc92ecc79a6be606f41d4585bf53a/6d250/hero.jpg 236w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/1a26c/hero.jpg 472w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/22328/hero.jpg 944w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/cca5d/hero.jpg 1260w","srcWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/1d644/hero.webp","srcSetWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/cbe96/hero.webp 236w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/8ab83/hero.webp 472w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/1d644/hero.webp 944w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/7614f/hero.webp 1260w","sizes":"(max-width: 944px) 100vw, 944px"}},"regular":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUCAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAcca2VqsahX/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQIRAq+vznNZG9CE+qMq3//EABURAQEAAAAAAAAAAAAAAAAAAAAS/9oACAEDAQE/AUv/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEv/aAAgBAgEBPwFT/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAERIjFBEP/aAAgBAQAGPwKrmTvjWotww//EABsQAAICAwEAAAAAAAAAAAAAAAERACEQMVFx/9oACAEBAAE/IS5hXXIUXYJsRKOGJWBKFB4awj//2gAMAwEAAgADAAAAEEwP/8QAGBEBAQADAAAAAAAAAAAAAAAAAQARIWH/2gAIAQMBAT8QwJqO7//EABcRAAMBAAAAAAAAAAAAAAAAAAABESH/2gAIAQIBAT8QsY9Yj//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQVGB0f/aAAgBAQABPxCgoBBFBl8+RDq1ATPEC2XeYeNmr0Z58iGBsmwr7U1pCtT/2Q==","aspectRatio":1.4954128440366972,"src":"/static/e68cc92ecc79a6be606f41d4585bf53a/6694a/hero.jpg","srcSet":"/static/e68cc92ecc79a6be606f41d4585bf53a/70b8f/hero.jpg 163w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/7ec88/hero.jpg 327w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/6694a/hero.jpg 653w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/ed86f/hero.jpg 980w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/30932/hero.jpg 1260w","srcWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/d603c/hero.webp","srcSetWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/64a97/hero.webp 163w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/a98ca/hero.webp 327w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/d603c/hero.webp 653w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/c1bd6/hero.webp 980w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/f031e/hero.webp 1260w","sizes":"(max-width: 653px) 100vw, 653px"}},"narrow":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUCAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAcca2VqsahX/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQIRAq+vznNZG9CE+qMq3//EABURAQEAAAAAAAAAAAAAAAAAAAAS/9oACAEDAQE/AUv/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEv/aAAgBAgEBPwFT/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAERIjFBEP/aAAgBAQAGPwKrmTvjWotww//EABsQAAICAwEAAAAAAAAAAAAAAAERACEQMVFx/9oACAEBAAE/IS5hXXIUXYJsRKOGJWBKFB4awj//2gAMAwEAAgADAAAAEEwP/8QAGBEBAQADAAAAAAAAAAAAAAAAAQARIWH/2gAIAQMBAT8QwJqO7//EABcRAAMBAAAAAAAAAAAAAAAAAAABESH/2gAIAQIBAT8QsY9Yj//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQVGB0f/aAAgBAQABPxCgoBBFBl8+RDq1ATPEC2XeYeNmr0Z58iGBsmwr7U1pCtT/2Q==","aspectRatio":1.5,"src":"/static/e68cc92ecc79a6be606f41d4585bf53a/c1e08/hero.jpg","srcSet":"/static/e68cc92ecc79a6be606f41d4585bf53a/8bed6/hero.jpg 114w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/1e283/hero.jpg 229w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/c1e08/hero.jpg 457w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/8ae28/hero.jpg 686w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/5cf51/hero.jpg 914w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/30932/hero.jpg 1260w","srcWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/72aed/hero.webp","srcSetWebp":"/static/e68cc92ecc79a6be606f41d4585bf53a/03a0a/hero.webp 114w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/d2b1d/hero.webp 229w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/72aed/hero.webp 457w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/1a85c/hero.webp 686w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/90a86/hero.webp 914w,\n/static/e68cc92ecc79a6be606f41d4585bf53a/f031e/hero.webp 1260w","sizes":"(max-width: 457px) 100vw, 457px"}},"seo":{"fixed":{"src":"/static/e68cc92ecc79a6be606f41d4585bf53a/0ff54/hero.jpg"}}}}}],"pathPrefix":"/blog","first":true,"last":false,"index":1,"pageCount":2,"additionalContext":{"basePath":"/blog","skip":6,"limit":6}}}}