{"version":1,"pages":[{"id":"-M0Gr8cQyivrr6Wr3hqR","title":"Introduction","pathname":"/best-practices","siteSpaceId":"sitesp_LAHIu","description":""},{"id":"-M0PM7d5z-fa9qtZ04H8","title":"Principles","pathname":"/best-practices/the-big-picture/principles","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"}]},{"id":"-M15C8daOzgdjc53KEcW","title":"Software engineers solve business problems","pathname":"/best-practices/the-big-picture/principles/business","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Principles"}]},{"id":"-M19zUlNZsihkYjB2dtB","title":"Programming is a social activity","pathname":"/best-practices/the-big-picture/principles/social","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Principles"}]},{"id":"-M1Ucu_Z20loA8_kxEb1","title":"Attention is the most precious resource in a project","pathname":"/best-practices/the-big-picture/principles/attention","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Principles"}]},{"id":"-M1fchIDzXYmHDkPYBlg","title":"Simplicity is the best ally in the long run","pathname":"/best-practices/the-big-picture/principles/simple","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Principles"}]},{"id":"-M230u04ZIgF5Sp-HGzG","title":"The only problem to solve is the one we have today","pathname":"/best-practices/the-big-picture/principles/today","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Principles"}]},{"id":"-M0iCakljKX9F5br5Grg","title":"Architecture","pathname":"/best-practices/the-big-picture/architecture","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"}]},{"id":"-M0iCakm0BJ5NO0UmkzF","title":"Domain","pathname":"/best-practices/the-big-picture/architecture/domain","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Architecture"}]},{"id":"-M0iCakoU5RenfqNeuVI","title":"Services","pathname":"/best-practices/the-big-picture/architecture/services","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Architecture"}]},{"id":"-M0iCakp_r94hqSCWVyb","title":"Persistence","pathname":"/best-practices/the-big-picture/architecture/persistence","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Architecture"}]},{"id":"-M0iCakqMTQb0Xf6JsZh","title":"HTTP","pathname":"/best-practices/the-big-picture/architecture/http","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Architecture"}]},{"id":"-M0iCakrfBJe_zPJUDx2","title":"UI","pathname":"/best-practices/the-big-picture/architecture/ui","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"},{"label":"Architecture"}]},{"id":"-M0iCaksf6NSh1VhnyYl","title":"Naming","pathname":"/best-practices/the-big-picture/naming","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Big Picture"}]},{"id":"-M0PM7d7XhhRWxe9n9lI","title":"TypeScript","pathname":"/best-practices/constraints/typescript","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Constraints"}]},{"id":"-M0iCakwWnMrg84youv8","title":"Monorepo","pathname":"/best-practices/constraints/monorepo","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Constraints"}]},{"id":"-M0PM7dFTKX7UNppSzT4","title":"Monolith","pathname":"/best-practices/constraints/monolith","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Constraints"}]},{"id":"-M0PM7dE6w7KURbQEt6J","title":"Versioning","pathname":"/best-practices/constraints/versioning","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Constraints"}]},{"id":"-M2XVnnOkfJ3eRf8RnX1","title":"Declarative programming","pathname":"/best-practices/source-code/declarative","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0iCal0mF74frJQW74h","title":"The README","pathname":"/best-practices/source-code/thereadme","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0PM7dCfYcv3BCxLIV2","title":"Modules","pathname":"/best-practices/source-code/modules","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0PM7d8JXKynZwjVvkT","title":"Folder structure","pathname":"/best-practices/source-code/folderstructure","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0PM7dA2xJDLRX5Nqu5","title":"Code formatting","pathname":"/best-practices/source-code/codeformatting","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0PM7dJAnWOUDM1PJXF","title":"Code comments","pathname":"/best-practices/source-code/comments","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Source code"}]},{"id":"-M0PM7dGv84n6xYE9x1B","title":"Runtime configuration","pathname":"/best-practices/the-outside-world/configuration","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Outside World"}]},{"id":"-M0PM7dIoWiZ-WA31Cz1","title":"Logging","pathname":"/best-practices/the-outside-world/logging","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"The Outside World"}]},{"id":"-M0iCalB-sbqsLdmVBjx","title":"The purpose of testing","pathname":"/best-practices/testing/purpose","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Testing"}]},{"id":"-M0iCalCiNODdZKuSmvj","title":"End-to-end tests","pathname":"/best-practices/testing/purpose/e2e","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Testing"},{"label":"The purpose of testing"}]},{"id":"-M0iCalD5JxiZBml-pxK","title":"Integration tests","pathname":"/best-practices/testing/purpose/integration","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Testing"},{"label":"The purpose of testing"}]},{"id":"-M0iCalEUh_60PN5Dvs9","title":"Unit tests","pathname":"/best-practices/testing/purpose/unit","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Testing"},{"label":"The purpose of testing"}]},{"id":"-M0PM7dHEMX8j9A6YoFd","title":"Git","pathname":"/best-practices/tools/git","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Tools"}]},{"id":"-M0iCalKCyi5Yg4Rt5FL","title":"Resources","pathname":"/best-practices/resources/resources","siteSpaceId":"sitesp_LAHIu","description":"","breadcrumbs":[{"label":"Resources"}]}]}