{
    "componentChunkName": "component---src-templates-blog-post-tsx",
    "path": "/about-this-blog/stack/",
    "result": {"data":{"site":{"siteMetadata":{"title":"It's Fred"}},"mdx":{"id":"9f7cf9b1-d00a-575d-95bc-9fada6404fae","excerpt":"The site platform This site is a static site built using  Gatsby . Pros: A static site is golden in terms of deployment, hosting and SEO React allows for great…","body":"var _excluded = [\"components\"];\n\nfunction _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/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"The stack of this blog\",\n  \"date\": \"2020-05-06T12:00:00.000Z\",\n  \"lastModified\": \"2020-10-30T06:00:00.000Z\",\n  \"description\": \"TL;DR: Gatsby.js as the underlying blog software, Talkyard for comments, Fathom for website analytics and Vercel for hosting.\",\n  \"redirect_from\": [\"/stack/\"],\n  \"discussionId\": \"blog-stack\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"The site platform\"), mdx(\"p\", null, \"This site is a static site built using \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.gatsbyjs.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }, \"Gatsby\"), \".\"), mdx(\"p\", null, \"Pros:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"A static site is golden in terms of deployment, hosting and SEO\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"React allows for great flexibility\")), mdx(\"p\", null, \"Cons:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Requires some tweaking and configuration for some basic stuff, like code formatting.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"GraphQL (including adding custom fields to the post filters) takes some time to get used to\")), mdx(\"h2\", null, \"Comments provider\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.talkyard.io/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }, \"Talkyard\"), \".\"), mdx(\"p\", null, \"Pros:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Cares about user privacy\")), mdx(\"h2\", null, \"Analytics\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://usefathom.com/ref/SFUPRZ\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }, \"Fathom Analytics\"), \".\"), mdx(\"p\", null, \"Pros:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Cares about user privacy\")), mdx(\"p\", null, \"Disclaimer: The above link to Fathom Analytics is an affiliate link.\"), mdx(\"h2\", null, \"Web hosting\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://vercel.com\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }, \"Vercel\"), \".\"), mdx(\"p\", null, \"Pros:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Less than ten clicks from \", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"logging in\"), \" to \", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"git-based production-domain deploys\"), \" is amazing!\")), mdx(\"p\", null, \"Cons:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Private submodules are not supported for git-based deploys. However, there is \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/1337/vercel-private-submodules-workaround/\"\n  }, \"a workaround\"), \".\")), mdx(\"style\", {\n    \"className\": \"grvsc-styles\"\n  }, \"\\n  .grvsc-container {\\n    overflow: auto;\\n    position: relative;\\n    -webkit-overflow-scrolling: touch;\\n    padding-top: 1rem;\\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\\n    padding-bottom: 1rem;\\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\\n    border-radius: 8px;\\n    border-radius: var(--grvsc-border-radius, 8px);\\n    font-feature-settings: normal;\\n    line-height: 1.4;\\n  }\\n  \\n  .grvsc-code {\\n    display: table;\\n  }\\n  \\n  .grvsc-line {\\n    display: table-row;\\n    box-sizing: border-box;\\n    width: 100%;\\n    position: relative;\\n  }\\n  \\n  .grvsc-line > * {\\n    position: relative;\\n  }\\n  \\n  .grvsc-gutter-pad {\\n    display: table-cell;\\n    padding-left: 0.75rem;\\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\\n  }\\n  \\n  .grvsc-gutter {\\n    display: table-cell;\\n    -webkit-user-select: none;\\n    -moz-user-select: none;\\n    user-select: none;\\n  }\\n  \\n  .grvsc-gutter::before {\\n    content: attr(data-content);\\n  }\\n  \\n  .grvsc-source {\\n    display: table-cell;\\n    padding-left: 1.5rem;\\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\\n    padding-right: 1.5rem;\\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\\n  }\\n  \\n  .grvsc-source:empty::after {\\n    content: ' ';\\n    -webkit-user-select: none;\\n    -moz-user-select: none;\\n    user-select: none;\\n  }\\n  \\n  .grvsc-gutter + .grvsc-source {\\n    padding-left: 0.75rem;\\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\\n  }\\n  \\n  /* Line transformer styles */\\n  \\n  .grvsc-has-line-highlighting > .grvsc-code > .grvsc-line::before {\\n    content: ' ';\\n    position: absolute;\\n    width: 100%;\\n  }\\n  \\n  .grvsc-line-diff-add::before {\\n    background-color: var(--grvsc-line-diff-add-background-color, rgba(0, 255, 60, 0.2));\\n  }\\n  \\n  .grvsc-line-diff-del::before {\\n    background-color: var(--grvsc-line-diff-del-background-color, rgba(255, 0, 20, 0.2));\\n  }\\n  \\n  .grvsc-line-number {\\n    padding: 0 2px;\\n    text-align: right;\\n    opacity: 0.7;\\n  }\\n  \\n\"));\n}\n;\nMDXContent.isMDXComponent = true;","fields":{"slug":"/about-this-blog/stack/","readingTime":{"text":"2 min read","time":64200,"words":214},"discussionId":"blog-stack"},"frontmatter":{"title":"The stack of this blog","date":"May 06, 2020","lastModified":"October 30, 2020","description":"TL;DR: Gatsby.js as the underlying blog software, Talkyard for comments, Fathom for website analytics and Vercel for hosting."}}},"pageContext":{"slug":"/about-this-blog/stack/","previous":null,"next":{"fields":{"slug":"/pure-ramblings/yoga-learnings-from-being-a-dad/"},"frontmatter":{"title":"Yoga learnings from being a Dad"}}}},
    "staticQueryHashes": ["1833177543","3096804680","3153540884"]}