It’s built on Next.js and Tailwind CSS, with some example pages scaffolded using TWBlocks. It’s designed for you to customize and extend to your needs, whether that means keeping the default pages or replacing them with your own.
Design System: The app is connected to the Design System and includes a variety of components, hooks, and utilities to help you get started.
CMS: The app is connected to the CMS package to power your type-safe blog.
SEO: The app is connected to the SEO package which optimizes the site for search engines.
Analytics: The app is connected to the Analytics package to track visitor behavior.
Observability: The app is connected to the Observability package to track errors and performance.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"jtbdos docs","colors":{"primary":"#f35815","light":"#f35815","dark":"#f35815"},"favicon":"/images/icon.png","styling":{"eyebrows":null,"codeblocks":"system"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/images/jtbdos-logo-full-with-thrv.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/images/jtbdos-logo-full-with-thrv.svg"},"background":{"decoration":"windows"},"navbar":{"primary":{"type":"github","href":"https://github.com/thrv/jtbdos4"}},"search":{"prompt":"Search or ask..."},"footer":{"socials":{"x":"https://x.com/haydenbleasel","github":"https://github.com/haydenbleasel/next-forge","linkedin":"https://www.linkedin.com/in/haydenbleasel"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"thrv-c7d92728","hasAudioNarration":false,"actualSubdomain":"thrv-c7d92728","customDomains":["docs.jtbdos.com"],"gitSource":{"type":"github","owner":"thrv","repo":"jtbdos4","deployBranch":"main","contentDirectory":"apps/jtbdos-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e6b403d4026a3ef7729d","collectionId":"e31b713b-bfcb-4d49-8138-d29cda6a8c61","schemaVersion":"v2"},"entitlements":{},"buildId":"6a21e6b403d4026a3ef7729d:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Packages","count":41},{"language":"default","tag":"Migrations","count":15},{"language":"default","tag":"Getting Started","count":10},{"language":"default","tag":"Design System","count":9},{"language":"default","tag":"Addons","count":8},{"language":"default","tag":"Libraries","count":7},{"language":"default","tag":"Apps","count":7},{"language":"default","tag":"Database","count":6},{"language":"default","tag":"Introduction","count":5},{"language":"default","tag":"Security","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"apps/web","slug":"/apps/web","pageMetadata":{"title":"Web","description":"How the website application works in JTBDOS.","href":"/apps/web"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How the website application works in JTBDOS.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage,Tip}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/images/web.png`,alt:`A preview of web`})}),`\n`,_jsxs(Tip,{children:[`The `,_jsx(_components.code,{children:`web`}),` application runs on port 3001. We recommend deploying it to `,_jsx(_components.code,{children:`www.{yourdomain}.com`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`JTBDOS comes with a default website application, which is located in the `,_jsx(_components.code,{children:`apps/web`}),` folder.`]}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`It’s built on Next.js and Tailwind CSS, with some example pages scaffolded using `,_jsx(_components.a,{href:`https://www.twblocks.com/`,children:`TWBlocks`}),`. It’s designed for you to customize and extend to your needs, whether that means keeping the default pages or replacing them with your own.`]}),`\n`,_jsx(Heading,{level:`2`,id:`features`,children:`Features`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Design System`}),`: The app is connected to the `,_jsx(_components.a,{href:`/packages/design-system`,children:`Design System`}),` and includes a variety of components, hooks, and utilities to help you get started.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CMS`}),`: The app is connected to the `,_jsx(_components.a,{href:`/packages/cms`,children:`CMS`}),` package to power your type-safe blog.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SEO`}),`: The app is connected to the `,_jsx(_components.a,{href:`/packages/seo`,children:`SEO`}),` package which optimizes the site for search engines.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Analytics`}),`: The app is connected to the `,_jsx(_components.a,{href:`/packages/analytics`,children:`Analytics`}),` package to track visitor behavior.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Observability`}),`: The app is connected to the `,_jsx(_components.a,{href:`/packages/observability`,children:`Observability`}),` package to track errors and performance.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Web","description":"How the website application works in JTBDOS.","href":"/apps/web"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Features","slug":"features","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"thrv-c7d92728","siteName":"jtbdos docs","title":"Web - jtbdos docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"apps/web.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How the website application works in JTBDOS.\">\u003cmeta data-mint-head name=\"application-name\" content=\"jtbdos docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Web - jtbdos docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"How the website application works in JTBDOS.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"jtbdos docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.jtbdos.com/apps/web\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://thrv-c7d92728.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Web\u0026amp;description=How+the+website+application+works+in+JTBDOS.\u0026amp;theme=87e5d5443d5dde3c753ee24e\u0026amp;signature=0652e19d7f74c2aa6740d7c79eea55e87e2af8ace7eacfca7a44c16a1ab97a7e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Web - jtbdos docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How the website application works in JTBDOS.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thrv-c7d92728.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Web\u0026amp;description=How+the+website+application+works+in+JTBDOS.\u0026amp;theme=87e5d5443d5dde3c753ee24e\u0026amp;signature=0652e19d7f74c2aa6740d7c79eea55e87e2af8ace7eacfca7a44c16a1ab97a7e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"jtbdos docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#f35815\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.jtbdos.com/apps/web\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/apps/web.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.jtbdos.com/#organization\",\"name\":\"jtbdos docs\",\"url\":\"https://docs.jtbdos.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintlify.s3.us-west-1.amazonaws.com/thrv-c7d92728/images/jtbdos-logo-full-with-thrv.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.jtbdos.com#website\",\"name\":\"jtbdos docs\",\"url\":\"https://docs.jtbdos.com\",\"publisher\":{\"@id\":\"https://docs.jtbdos.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.jtbdos.com/apps/web#webpage\",\"url\":\"https://docs.jtbdos.com/apps/web\",\"name\":\"Web\",\"description\":\"How the website application works in JTBDOS.\",\"isPartOf\":{\"@id\":\"https://docs.jtbdos.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.jtbdos.com/apps/web#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.jtbdos.com/apps/web#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\",\"item\":\"https://docs.jtbdos.com/apps/api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web\",\"item\":\"https://docs.jtbdos.com/apps/web\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.jtbdos.com/apps/web#article\",\"headline\":\"Web\",\"name\":\"Web\",\"description\":\"How the website application works in JTBDOS.\",\"url\":\"https://docs.jtbdos.com/apps/web\",\"mainEntityOfPage\":{\"@id\":\"https://docs.jtbdos.com/apps/web#webpage\"},\"publisher\":{\"@id\":\"https://docs.jtbdos.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.jtbdos.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"jtbdos docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"jtbdos docs","nav":{"global":null,"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/overview"}]},{"tab":"Apps","groups":[{"group":"","pages":[{"title":"API","href":"/apps/api"},{"title":"App","href":"/apps/app"},{"title":"Documentation","href":"/apps/docs"},{"title":"Email","href":"/apps/email"},{"title":"Storybook","href":"/apps/storybook"},{"title":"Studio","description":"Visualize and edit your database in a UI.","href":"/apps/studio"},{"title":"Web","href":"/apps/web"}]}]},{"tab":"Packages","pages":[{"title":"Packages","href":"/packages/ai"}]},{"tab":"Recipes","pages":[{"title":"Recipes","href":"/recipes/ai-chatbot"}]},{"tab":"Migrations","pages":[{"title":"Migrations","href":"/migrations/authentication/authjs"}]},{"tab":"Addons","pages":[{"title":"Addons","href":"/addons/friendlier-words"}]}]},"basePath":"","title":"Web - jtbdos docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DXXFP6nH.js","DynamicMarkdown-B54_zNBF.js","zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}