{"version":1,"pages":[{"id":"4w07POUaIPGswQfMuLeY","title":"Welcome to Novel","pathname":"/","siteSpaceId":"sitesp_y20fS"},{"id":"9jGzahkvyJwFlcRqC95b","title":"Start","pathname":"/start","siteSpaceId":"sitesp_y20fS","description":""},{"id":"a625WtlvTgU8wshPQZEX","title":"Philosophy","pathname":"/philosophy","siteSpaceId":"sitesp_y20fS"},{"id":"Qb8GXBsHVGMneqKW1J4c","title":"Tech Stack","pathname":"/tech-stack","siteSpaceId":"sitesp_y20fS"},{"id":"x522jTtdCCAZolsvWxFa","title":"Releases","pathname":"/releases","siteSpaceId":"sitesp_y20fS"},{"id":"95Rw3OUR71xOtPsTgbPz","title":"Versions","pathname":"/versions","siteSpaceId":"sitesp_y20fS"},{"id":"oaonKJD3aXbziEtqJGiD","title":"Changelog","pathname":"/changelog","siteSpaceId":"sitesp_y20fS"},{"id":"mtomk5IadxTghY2so57Z","title":"Warranty","pathname":"/warranty","siteSpaceId":"sitesp_y20fS"},{"id":"mfUtSmccg7fFggpJT4OZ","title":"Security Policy","pathname":"/security-policy","siteSpaceId":"sitesp_y20fS"},{"id":"vySWRXInwJkZcezea1d7","title":"Errors","pathname":"/errors","siteSpaceId":"sitesp_y20fS"},{"id":"1NRaefD06PtTIUraO76p","title":"Cannot start Novel","pathname":"/errors/cannot-start-novel","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Errors"}]},{"id":"DOcMbizAPJ2cl3WEjRyE","title":"Unauthorized","pathname":"/errors/unauthorized","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Errors"}]},{"id":"k5nKnub04M0z97pxdWcT","title":"Invalid Session","pathname":"/errors/invalid-session","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Errors"}]},{"id":"riPBbRyuaWkTK8BkuvA6","title":"Validation Failed","pathname":"/errors/validation-failed","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Errors"}]},{"id":"ki7DxkneUcxBSynhjHzM","title":"Getting Started","pathname":"/novel-server/getting-started","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"DYtB1tOG6aTvPSNZ7p6I","title":"Project Structure","pathname":"/novel-server/project-structure","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"8xYJS5bBL2pVnM67IchA","title":"With Novel Web","pathname":"/novel-server/with-novel-web","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"FdQnl83SktHXPYZAJUi8","title":"Configuration","pathname":"/novel-server/configuration","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"dRclwlaixZjhe6jxooIZ","title":"Novel CLI","pathname":"/novel-server/novel-cli","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"mrzqYxPP0aqxWaDVjLwQ","title":"novel dev","pathname":"/novel-server/novel-cli/novel-dev","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Novel CLI"}]},{"id":"QYZwRaALFYyMYxGqkfkc","title":"novel start","pathname":"/novel-server/novel-cli/novel-start","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Novel CLI"}]},{"id":"dQEQPzZN3Vo6w5jvg7hN","title":"novel new","pathname":"/novel-server/novel-cli/novel-new","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Novel CLI"}]},{"id":"B9mon4smZWflML16vLcy","title":"Novel API","pathname":"/novel-server/novel-api","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"NAIRfR6mg9AYmmufHpuj","title":"API Reference","pathname":"/novel-server/novel-api/api-reference","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Novel API"}]},{"id":"pWTbcfP0tdNQRS9DQxkU","title":"Database","pathname":"/novel-server/database","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"5drc1HgTKeDvdL9vDw6J","title":"Caching","pathname":"/novel-server/database/caching","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Database"}]},{"id":"JXMt4RSYJAIwABvh23R9","title":"Migrations","pathname":"/novel-server/migrations","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"IWmNaxORic7B1pzMspl6","title":"Models","pathname":"/novel-server/models","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"xULMVbQ8QqLAuedznmej","title":"Routing","pathname":"/novel-server/routing","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"zffh8ampHa2gb0a3dfHK","title":"Route Directives","pathname":"/novel-server/routing/route-directives","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Routing"}]},{"id":"zfkUmK9twq8US6bXR7Ck","title":"Middleware","pathname":"/novel-server/routing/middleware","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Routing"}]},{"id":"XikIwENIX4qfNRHQdGHq","title":"Request Helpers","pathname":"/novel-server/routing/request-helpers","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Routing"}]},{"id":"xjCLr9aCS2ouN2asANmH","title":"Schema","pathname":"/novel-server/routing/schema","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Routing"}]},{"id":"UEL70gkvv45rsXd7Ls5r","title":"Sessions","pathname":"/novel-server/sessions","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"pFHWwGM0fGSwxgrSNIlT","title":"Authentication","pathname":"/novel-server/authentication","siteSpaceId":"sitesp_y20fS","description":"","breadcrumbs":[{"label":"Novel Server"}]},{"id":"5IXKJVRjvdEmHKf9Ofct","title":"Passwords","pathname":"/novel-server/authentication/passwords","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"AgJsjuInWbXyXv2zBrVe","title":"Magic Links","pathname":"/novel-server/authentication/magic-links","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"dMFniMpYDBfvby1TPmXC","title":"Two-Factor Authentication","pathname":"/novel-server/authentication/two-factor-authentication","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"SuAEXm7WyGN6gpf5oTCZ","title":"Forget Password","pathname":"/novel-server/authentication/forget-password","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"z2ICkp9n5VXiP8bdaP9B","title":"Email Verification","pathname":"/novel-server/authentication/email-verification","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"MkAINTkC3kB5znFTLlAC","title":"OAuth2 Support","pathname":"/novel-server/authentication/oauth2-support","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"},{"label":"Authentication"}]},{"id":"YnCI9EvKEucRMliY1P0r","title":"Authorization","pathname":"/novel-server/authorization","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"iPSy7ZsPsztwGHEpA7ar","title":"Users","pathname":"/novel-server/users","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"MYqM9xiNW662JGYCiYNa","title":"Organizations","pathname":"/novel-server/organizations","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"boXnxmuOQIa77yul8IOg","title":"Subscriptions","pathname":"/novel-server/subscriptions","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"6RKrk4exKCa4CGQdxZRK","title":"Pricing","pathname":"/novel-server/pricing","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"Ls6FUmIdsheiY0g7hdiz","title":"Validation","pathname":"/novel-server/validation","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"SHeaAQ8Mht1JO864EaD8","title":"Mail","pathname":"/novel-server/mail","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"IIwngwdMUy45iYDmnjnf","title":"Notifications","pathname":"/novel-server/notifications","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"I7mvyDZ4g5IKG7DpUjjW","title":"API Keys","pathname":"/novel-server/api-keys","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"Ay3mS95mHsHHjaa7dl5H","title":"Events","pathname":"/novel-server/events","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"iPEkKnUM4Jb3yWGwsX2e","title":"Errors","pathname":"/novel-server/errors","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"5mPoNRVBNJfmXjvvqICf","title":"Feature Flags","pathname":"/novel-server/feature-flags","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"pzocAGNgaiQcyncrzBiP","title":"Uploading Files","pathname":"/novel-server/uploading-files","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"Y2iMQ6zUY0N7hUASF6bO","title":"Testing","pathname":"/novel-server/testing","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"K62mpkl8TYkwIOEbL2Us","title":"Scheduled Cron Jobs","pathname":"/novel-server/scheduled-cron-jobs","siteSpaceId":"sitesp_y20fS","description":"","breadcrumbs":[{"label":"Novel Server"}]},{"id":"rxxD002ttk69znD0AxGC","title":"Background Jobs","pathname":"/novel-server/background-jobs","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"8NeTFbbhUZFuSX47A7f9","title":"Sockets","pathname":"/novel-server/sockets","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"Lxt4NznU2Y9WKE43qqD0","title":"Logging","pathname":"/novel-server/logging","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"0lhBe195tUJ7JQ941JQ7","title":"Telemetry","pathname":"/novel-server/telemetry","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"OSnvZaOLGSaNDnTlCffc","title":"Deployment","pathname":"/novel-server/deployment","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Server"}]},{"id":"heRGiusLo6iAzqeoB45S","title":"Getting Started","pathname":"/novel-web/getting-started","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"FJ48iVieKd72ZG4C4Z2O","title":"Configuration","pathname":"/novel-web/configuration","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"yWMw3t7c6nHwMMcmiyBA","title":"Project Structure","pathname":"/novel-web/project-structure","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"KcL0NEJpmfb7896KYdHF","title":"Routing","pathname":"/novel-web/routing","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"g1rw7nivVqj7gRcYy3rN","title":"Layout and Styles","pathname":"/novel-web/layout-and-styles","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"fgcL3u00FnblMwYSByaq","title":"Authentication","pathname":"/novel-web/authentication","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"oocRHNswsB9BzuuLu3Yq","title":"Authorization","pathname":"/novel-web/authorization","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"nEcVEBvTS9gYcPOMhICd","title":"Requests","pathname":"/novel-web/requests","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"32ahqzS8knZwWb3ei6cq","title":"Request Files","pathname":"/novel-web/request-files","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"lsWx6UlhzDIBodVSW4Ob","title":"Validation","pathname":"/novel-web/validation","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"Z5VumyQlx7L8erUOvJXE","title":"Components","pathname":"/novel-web/components","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"Qtp9aINaAaTqK4F8chvH","title":"Button","pathname":"/novel-web/components/button","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"Nnu6AxJENa6mFYg15LRx","title":"Alerts","pathname":"/novel-web/components/alerts","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"DWJh6xmcc2dXWa0jmY7L","title":"Copybox","pathname":"/novel-web/components/copybox","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"KgXjuLts4c44sBElFlF8","title":"Inline Notify","pathname":"/novel-web/components/inline-notify","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"9hoFq7g7drxo36PEoItd","title":"Input","pathname":"/novel-web/components/input","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"EqQWfQaZ0Fz8M7VL1pFI","title":"Select","pathname":"/novel-web/components/select","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"r6YRIWUDPzbPP6btWZOq","title":"Toast","pathname":"/novel-web/components/toast","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"BBjhD7Gs4qvVWJaohR5H","title":"Toggle","pathname":"/novel-web/components/toggle","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"QAEfTiJ2WkoeTSohyeLP","title":"Upload","pathname":"/novel-web/components/upload","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"T6X9KK6zF7ZMl1iNF0yB","title":"Stripe Card","pathname":"/novel-web/components/stripe-card","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Components"}]},{"id":"iyrYBtvlTD4eBRdGo4S4","title":"Hooks","pathname":"/novel-web/hooks","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"e0NJK4db5dt7kovKlME9","title":"useSession","pathname":"/novel-web/hooks/usesession","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"Sqpk4Rro7Jd0jlUHRg8x","title":"useMobile","pathname":"/novel-web/hooks/usemobile","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"ZW9uH7cLSxLbPkRBgd9l","title":"getSession","pathname":"/novel-web/hooks/getsession","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"3UdfGZKDzETZSrp03avF","title":"useFeature","pathname":"/novel-web/hooks/usefeature","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"Mxsc2ptYXqkFpj39EWU8","title":"useAuthorized","pathname":"/novel-web/hooks/useauthorized","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"MPAUMB8yE4CeirnFjwGv","title":"useNotification","pathname":"/novel-web/hooks/usenotification","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"wobWSwb6tjdaADJLc83m","title":"useSocket","pathname":"/novel-web/hooks/usesocket","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"},{"label":"Hooks"}]},{"id":"5on7Et9UNV1uIlGsSMv9","title":"Localstorage","pathname":"/novel-web/localstorage","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"8zVWWCRa9gGPWQ6XahQu","title":"Errors","pathname":"/novel-web/errors","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"ZREOvFA9UsNjVBqsBPqK","title":"Internationalization (i18n)","pathname":"/novel-web/internationalization-i18n","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"zJhnqtDB4KUq1cVOtKRo","title":"Constants","pathname":"/novel-web/constants","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"Olp5OpVmhQKtodtnpExP","title":"Feature Flags","pathname":"/novel-web/feature-flags","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"pg50QF1N9T9DZVyPYp6T","title":"Testing","pathname":"/novel-web/testing","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"OkoYS18lQou4D7WFrQVX","title":"Telemetry","pathname":"/novel-web/telemetry","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"2Kf29YAuCe8QnWuGOE9d","title":"Deployment","pathname":"/novel-web/deployment","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"984Fvq4ma3e7voxMKrqC","title":"Devtools (Alpha)","pathname":"/novel-web/devtools-alpha","siteSpaceId":"sitesp_y20fS","breadcrumbs":[{"label":"Novel Web"}]},{"id":"DYnOrFm6SbdSqwEKsaqH","title":"Guides","pathname":"/guides","siteSpaceId":"sitesp_s9Seq"},{"id":"GaeLV4bxuW6dfmpo6xJ9","title":"Production Checklist","pathname":"/guides/production-checklist","siteSpaceId":"sitesp_s9Seq"},{"id":"qGfZIJatuDfWJ7gADNUj","title":"Speedrun","pathname":"/guides/shipping-fast/speedrun","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"IApblznRuJ9sESPiAN6Z","title":"Getting an Idea","pathname":"/guides/shipping-fast/getting-an-idea","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"QcP6fyNCNYCv0LpT1rlS","title":"Buying a Domain","pathname":"/guides/shipping-fast/buying-a-domain","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"Zaz7DVzOGHfop3zjqgmP","title":"Designing your SaaS","pathname":"/guides/shipping-fast/designing-your-saas","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"UW4EAo3cr7awUYu1bj4c","title":"Pricing","pathname":"/guides/shipping-fast/pricing","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"VqEcCrA92VIA9ufuQgl8","title":"Marketing and Distribution","pathname":"/guides/shipping-fast/marketing-and-distribution","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"7FMyaymUSlDg8FrWGJwH","title":"Securing your SaaS","pathname":"/guides/shipping-fast/securing-your-saas","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"Gf6f7QHPDhFyh3CotVOp","title":"Troubleshooting","pathname":"/guides/shipping-fast/troubleshooting","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"Rl2ZjLhYHKBa4iLGbw22","title":"Optimizations","pathname":"/guides/shipping-fast/optimizations","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"eRaMYsHcn6xqsRzYMWp8","title":"Integrating your Team","pathname":"/guides/shipping-fast/integrating-your-team","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Shipping Fast"}]},{"id":"8QX00adNgH46H1XQag1T","title":"General Information","pathname":"/guides/knowledge-base/general-information","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"W4hfh5dSBn4ASk7CFm0b","title":"Getting Stripe Keys","pathname":"/guides/knowledge-base/general-information/getting-stripe-keys","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"OCWYOJJVzD7A7xKfjZdo","title":"Getting Postmark Keys","pathname":"/guides/knowledge-base/general-information/getting-postmark-keys","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"KvFm4F2L7NhwpZ9W1VDJ","title":"Getting Github Oauth Credentials","pathname":"/guides/knowledge-base/general-information/getting-github-oauth-credentials","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"B4ATsWqX2t0EAFsyp2Ae","title":"Using AWS S3","pathname":"/guides/knowledge-base/general-information/using-aws-s3","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"1Pny08LMtrcIQHvxHsXa","title":"Using Cloudflare R2","pathname":"/guides/knowledge-base/general-information/using-cloudflare-r2","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"Ir3QLqoi5dgvKSC2tqBA","title":"Getting VAPID Keys","pathname":"/guides/knowledge-base/general-information/getting-vapid-keys","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"kvVjgdi8uxtkF1pgtrHp","title":"Getting Anthropic API Keys","pathname":"/guides/knowledge-base/general-information/getting-anthropic-api-keys","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"muckxun20I32vIz13siy","title":"Using Sentry","pathname":"/guides/knowledge-base/general-information/using-sentry","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"General Information"}]},{"id":"9E7Bhk0Je2dzAjkh7DWI","title":"Novel Server","pathname":"/guides/knowledge-base/novel-server","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"HrQefvcrNlx4tsC1rIzO","title":"Configuring Novel","pathname":"/guides/knowledge-base/novel-server/configuring-novel","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"ToriphaGtyP1yoPuOBbn","title":"Email Providers","pathname":"/guides/knowledge-base/novel-server/email-providers","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"D4a5Wb0D5iGGlAYl7AWm","title":"Configuring Pricing","pathname":"/guides/knowledge-base/novel-server/configuring-pricing","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"t7btS8KbVUdlAmEeUmDw","title":"Creating a REST Endpoint","pathname":"/guides/knowledge-base/novel-server/creating-a-rest-endpoint","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"WvDRLhv8F2bk3D3JlcZF","title":"Securing an Endpoint","pathname":"/guides/knowledge-base/novel-server/securing-an-endpoint","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"I2eSM3j4XI7ufXNICf38","title":"Writing a Middleware","pathname":"/guides/knowledge-base/novel-server/writing-a-middleware","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"oopDmEGvKDL5vY8APDi2","title":"Background Jobs","pathname":"/guides/knowledge-base/novel-server/background-jobs","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"LXoBSmVVsQjaEEdwURZG","title":"Cron Jobs","pathname":"/guides/knowledge-base/novel-server/cron-jobs","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"vJkDgH0SvFo5D3wQBif1","title":"Setting up Oauth","pathname":"/guides/knowledge-base/novel-server/setting-up-oauth","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"s3YXqRE967mdBHz6ZLOE","title":"Integrating an OAuth Provider","pathname":"/guides/knowledge-base/novel-server/integrating-an-oauth-provider","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"DXCTCUECCRNagJ3ZKVXk","title":"Setting up Multi-Factor Authentication","pathname":"/guides/knowledge-base/novel-server/setting-up-multi-factor-authentication","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"8SEX30EubbpT65x7bVsn","title":"Configure Roles and Permissions","pathname":"/guides/knowledge-base/novel-server/configure-roles-and-permissions","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"tZa6MlaKE2CDiDm6xwXd","title":"Creating an Error File","pathname":"/guides/knowledge-base/novel-server/creating-an-error-file","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"wgOkfj5F03VhuYAMuGy0","title":"Sending Emails","pathname":"/guides/knowledge-base/novel-server/sending-emails","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"0JQj1qBNchPxyCXTHXNz","title":"Setting up Signups","pathname":"/guides/knowledge-base/novel-server/setting-up-signups","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"WIrFfUVSrLimwIFt4W64","title":"Writing Transactional Email","pathname":"/guides/knowledge-base/novel-server/writing-transactional-email","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"ZslR7ey9yaMeLY6WkMxh","title":"Writing End-to-end Tests","pathname":"/guides/knowledge-base/novel-server/writing-end-to-end-tests","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"txAvbf08zPOnEo3epJRs","title":"Creating a Custom Model","pathname":"/guides/knowledge-base/novel-server/creating-a-custom-model","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"oAQ0fBySeDj1mDwkth7p","title":"Overriding a Model","pathname":"/guides/knowledge-base/novel-server/overriding-a-model","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"KKk2T1aFHAHwfccAOTGh","title":"Creating a Feature Flag","pathname":"/guides/knowledge-base/novel-server/creating-a-feature-flag","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"980HfyIUVHNEdVl8bmd2","title":"Adding Rate Limits","pathname":"/guides/knowledge-base/novel-server/adding-rate-limits","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"b5Re3nyx7nN6RJ6E4Ne5","title":"Requiring Elevated Permission","pathname":"/guides/knowledge-base/novel-server/requiring-elevated-permission","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"nDtfos9MOP9zeaHpgXr0","title":"Using Idempotency","pathname":"/guides/knowledge-base/novel-server/using-idempotency","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"QZGCqEf7sbYzy3lIkUi9","title":"Check if User is Verified","pathname":"/guides/knowledge-base/novel-server/check-if-user-is-verified","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"e6gbW01J1VYBb9Ag7s86","title":"Check if Organization is Subscribed","pathname":"/guides/knowledge-base/novel-server/check-if-organization-is-subscribed","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"PMtvUtUtEGgdzRWkLRUV","title":"Caching an Endpoint","pathname":"/guides/knowledge-base/novel-server/caching-an-endpoint","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"2K8EwDNJxUX53OEY7jTj","title":"Setting up Cloudflare R2","pathname":"/guides/knowledge-base/novel-server/setting-up-cloudflare-r2","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Server"}]},{"id":"eVmxWsN1mwe83pztZ8FM","title":"Database","pathname":"/guides/knowledge-base/database","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"qrlMWVBuRklPIqdXUF5c","title":"Connecting to a Database","pathname":"/guides/knowledge-base/database/connecting-to-a-database","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Database"}]},{"id":"EjZtz1M4er9dglx38vij","title":"Creating a Table","pathname":"/guides/knowledge-base/database/creating-a-table","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Database"}]},{"id":"idpVJUv49cdlcRYh1dGa","title":"Writing Queries","pathname":"/guides/knowledge-base/database/writing-queries","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Database"}]},{"id":"G5zBnSVCeZkuEGCaInUm","title":"Writing Mutations / Updates / Deletes","pathname":"/guides/knowledge-base/database/writing-mutations-updates-deletes","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Database"}]},{"id":"3NHUWCDJQyANJrojxAPm","title":"Using Validations","pathname":"/guides/knowledge-base/database/using-validations","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Database"}]},{"id":"0CPoet4H5MfRBMOIaCO8","title":"Novel Web / Next.js","pathname":"/guides/knowledge-base/novel-web-next.js","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"8Gol117b5tgUU27jJ3OQ","title":"Creating a Marketing Page","pathname":"/guides/knowledge-base/novel-web-next.js/creating-a-marketing-page","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"47KBqMat3EVMH1AT8nCw","title":"Creating an Application Screen","pathname":"/guides/knowledge-base/novel-web-next.js/creating-an-application-screen","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"YqpKhbPIEpS8HMFu8WiS","title":"Securing a Page","pathname":"/guides/knowledge-base/novel-web-next.js/securing-a-page","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"AeRf0pytYyuju51T3i2R","title":"Making a Request to the API","pathname":"/guides/knowledge-base/novel-web-next.js/making-a-request-to-the-api","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"o5lbPArmokuYcEr9ZyKf","title":"Using Generated Requests","pathname":"/guides/knowledge-base/novel-web-next.js/using-generated-requests","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"adyyRxZlMXvKGHIhg3p8","title":"Applying Styles","pathname":"/guides/knowledge-base/novel-web-next.js/applying-styles","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"gUZ1F8ITlyclegjhgwzq","title":"Using shadcn/ui","pathname":"/guides/knowledge-base/novel-web-next.js/using-shadcn-ui","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"XvexBvwnBv3QtXRY4nF7","title":"Writing Tests with Playwright","pathname":"/guides/knowledge-base/novel-web-next.js/writing-tests-with-playwright","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"WLv1vHPMn5VomWBqvuhx","title":"Modifying Content Security Policy","pathname":"/guides/knowledge-base/novel-web-next.js/modifying-content-security-policy","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"3t2KrqkFz5aKqJ3DRvmX","title":"Checking a Feature Flag","pathname":"/guides/knowledge-base/novel-web-next.js/checking-a-feature-flag","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"xOiCKR0Zq85xHJPN3eYw","title":"Using Zod in Forms","pathname":"/guides/knowledge-base/novel-web-next.js/using-zod-in-forms","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Novel Web / Next.js"}]},{"id":"7z6g1qQO0TiUavYcFbGf","title":"Scaffolding","pathname":"/guides/knowledge-base/scaffolding","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"LQHXSaL7XZ9Nx0JDtuV0","title":"Describing a Background Job","pathname":"/guides/knowledge-base/scaffolding/describing-a-background-job","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Scaffolding"}]},{"id":"JITSH7pyBywABugMSTT8","title":"Describing a Cron Job","pathname":"/guides/knowledge-base/scaffolding/describing-a-cron-job","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Scaffolding"}]},{"id":"J4EwKf8OJsMxOIeBlUHQ","title":"Describing a Table","pathname":"/guides/knowledge-base/scaffolding/describing-a-table","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Scaffolding"}]},{"id":"vci45DbvhGXaZabXm2EY","title":"Describing an Endpoint","pathname":"/guides/knowledge-base/scaffolding/describing-an-endpoint","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"},{"label":"Scaffolding"}]},{"id":"Lymhq3yRIPl7USnP3sqR","title":"Novel Studio","pathname":"/guides/knowledge-base/novel-studio","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Knowledge Base"}]},{"id":"G3hOL4eWYEpgkBSKj30G","title":"Github Actions","pathname":"/guides/deployment/github-actions","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]},{"id":"a8q4bEAkqjUu4KeUUPDX","title":"Release Pipeline","pathname":"/guides/deployment/release-pipeline","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]},{"id":"kdTeL8TwiW6VWAW57DLL","title":"Deploying to Digital Ocean","pathname":"/guides/deployment/deploying-to-digital-ocean","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]},{"id":"5EXADSuYyeym7ooh3Lyt","title":"Deploying to Vercel","pathname":"/guides/deployment/deploying-to-vercel","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]},{"id":"0bmV7Utf2eKhauGqwpbo","title":"Deploying to AWS EC2 and RDS","pathname":"/guides/deployment/deploying-to-aws-ec2-and-rds","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]},{"id":"mwGVZZgiN1arT0A7ziLb","title":"Deploying to AWS ECS/Fargate and RDS","pathname":"/guides/deployment/deploying-to-aws-ecs-fargate-and-rds","siteSpaceId":"sitesp_s9Seq","breadcrumbs":[{"label":"Deployment"}]}]}