{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/the-twelve-factors",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"The Twelve Factors\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/codebase\"\n  }, \"I. Codebase\")), mdx(\"h3\", null, \"One codebase tracked in revision control, many deploys\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/dependencies\"\n  }, \"II. Dependencies\")), mdx(\"h3\", null, \"Explicitly declare and isolate dependencies\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/config\"\n  }, \"III. Config\")), mdx(\"h3\", null, \"Store config in the environment\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/backing-services\"\n  }, \"IV. Backing services\")), mdx(\"h3\", null, \"Treat backing services as attached resources\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/build-release-run\"\n  }, \"V. Build, release, run\")), mdx(\"h3\", null, \"Strictly separate build and run stages\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/processes\"\n  }, \"VI. Processes\")), mdx(\"h3\", null, \"Execute the app as one or more stateless processes\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/port-binding\"\n  }, \"VII. Port binding\")), mdx(\"h3\", null, \"Export services via port binding\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/concurrency\"\n  }, \"VIII. Concurrency\")), mdx(\"h3\", null, \"Scale out via the process model\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/disposability\"\n  }, \"IX. Disposability\")), mdx(\"h3\", null, \"Maximize robustness with fast startup and graceful shutdown\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/dev-prod-parity\"\n  }, \"X. Dev/prod parity\")), mdx(\"h3\", null, \"Keep development, staging, and production as similar as possible\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/logs\"\n  }, \"XI. Logs\")), mdx(\"h3\", null, \"Treat logs as event streams\"), mdx(\"h2\", null, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"https://12factor.net/admin-processes\"\n  }, \"XII. Admin processes\")), mdx(\"h3\", null, \"Run admin/management tasks as one-off processe\"));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[]}},"pageContext":{"slug":"the-twelve-factors","node":{"childMdx":{"slug":"the-twelve-factors"}}}},
    "staticQueryHashes": []}