As JTBDOS evolves, you may want to stay up to date with the latest changes. This can be difficult to do manually, so we’ve created a script to help you.
Terminal
npx JTBDOS@latest update
This will run our update script, which will guide you through the process of updating your project.
┌ Let's update your JTBDOS project!││◆ Select a version to update to:│ ● v3.2.15│ ○ v3.2.14│ ○ v3.2.13│ ○ v3.2.12│ ○ v3.2.11└
This will clone the latest version of JTBDOS into a temporary directory, apply the updates, and then copy the files over to your project. From here, you can commit the changes and push them to your repository.
Because JTBDOS is a boilerplate and not a library, you’ll likely need to manually merge the changes you’ve made with the changes from the update.
You can upgrade all the dependencies in all your package.json files and installs the new versions with the bump-deps command:
Terminal
pnpm bump-deps
This will update all the dependencies in your package.json files and install the new versions.
You should run a pnpm build after running bump-deps to ensure the project builds correctly. You should also run pnpm dev and ensure the project runs correctly in runtime.
You can upgrade all the shadcn/ui components in the Design System package with the bump-ui command:
Terminal
pnpm bump-ui
This will update all the shadcn/ui components, as well as the relevant dependencies in the Design System’s package.json file.
This will override all customization you’ve made to the components. To avoid this happening, we recommend proxying the components into a new folder, such as @repo/design-system/components.
The shadcn CLI will likely make some unwanted changes to your shared Tailwind config file and global CSS. Make sure you review changes before committing them.
{"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":"updates","slug":"/updates","pageMetadata":{"title":"Updates","description":"Built-in helpers to help you keep your project up to date.","href":"/updates"},"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: \"Built-in helpers to help you keep your project up to date.\"\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`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`upgrading-jtbdos`,children:`Upgrading JTBDOS`}),`\n`,_jsx(_components.p,{children:`As JTBDOS evolves, you may want to stay up to date with the latest changes. This can be difficult to do manually, so we’ve created a script to help you.`}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` JTBDOS@latest`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` update`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This will run our update script, which will guide you through the process of updating your project.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`11`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`┌ Let's update your JTBDOS project!`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`◆ Select a version to update to:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ ● v3.2.15`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ ○ v3.2.14`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ ○ v3.2.13`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ ○ v3.2.12`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ ○ v3.2.11`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`└`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`This will clone the latest version of JTBDOS into a temporary directory, apply the updates, and then copy the files over to your project. From here, you can commit the changes and push them to your repository.`}),`\n`,_jsx(Tip,{children:`Because JTBDOS is a boilerplate and not a library, you’ll likely need to manually merge the changes you’ve made with the changes from the update.`}),`\n`,_jsx(Heading,{level:`2`,id:`upgrading-dependencies`,children:`Upgrading dependencies`}),`\n`,_jsxs(_components.p,{children:[`You can upgrade all the dependencies in all your `,_jsx(_components.code,{children:`package.json`}),` files and installs the new versions with the `,_jsx(_components.code,{children:`bump-deps`}),` command:`]}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bump-deps`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This will update all the dependencies in your `,_jsx(_components.code,{children:`package.json`}),` files and install the new versions.`]}),`\n`,_jsxs(Tip,{children:[`You should run a `,_jsx(_components.code,{children:`pnpm build`}),` after running `,_jsx(_components.code,{children:`bump-deps`}),` to ensure the project builds correctly. You should also run `,_jsx(_components.code,{children:`pnpm dev`}),` and ensure the project runs correctly in runtime.`]}),`\n`,_jsx(Heading,{level:`2`,id:`upgrading-shadcn/ui-components`,children:`Upgrading shadcn/ui components`}),`\n`,_jsxs(_components.p,{children:[`You can upgrade all the shadcn/ui components in the `,_jsx(_components.a,{href:`/packages/design-system/components`,children:`Design System`}),` package with the `,_jsx(_components.code,{children:`bump-ui`}),` command:`]}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bump-ui`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This will update all the shadcn/ui components, as well as the relevant dependencies in the Design System’s `,_jsx(_components.code,{children:`package.json`}),` file.`]}),`\n`,_jsxs(Warning,{children:[`This will override all customization you’ve made to the components. To avoid this happening, we recommend proxying the components into a new folder, such as `,_jsx(_components.code,{children:`@repo/design-system/components`}),`.`]}),`\n`,_jsxs(Warning,{children:[`The `,_jsx(_components.code,{children:`shadcn`}),` CLI will likely make some unwanted changes to your shared Tailwind config file and global CSS. Make sure you review changes before committing them.`]})]})}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":"Updates","description":"Built-in helpers to help you keep your project up to date.","href":"/updates"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Upgrading JTBDOS","slug":"upgrading-jtbdos","depth":2,"children":[]},{"title":"Upgrading dependencies","slug":"upgrading-dependencies","depth":2,"children":[]},{"title":"Upgrading shadcn/ui components","slug":"upgrading-shadcn/ui-components","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"thrv-c7d92728","siteName":"jtbdos docs","title":"Updates - jtbdos docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"updates.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=\"Built-in helpers to help you keep your project up to date.\">\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=\"Updates - jtbdos docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Built-in helpers to help you keep your project up to date.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"jtbdos docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.jtbdos.com/updates\">\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=Introduction\u0026amp;title=Updates\u0026amp;description=Built-in+helpers+to+help+you+keep+your+project+up+to+date.\u0026amp;theme=87e5d5443d5dde3c753ee24e\u0026amp;signature=2a5676e1ca848f2c8d3877f24fc8aecfbbde2a8950cee81f41ad603d0a3582b0\">\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=\"Updates - jtbdos docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Built-in helpers to help you keep your project up to date.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thrv-c7d92728.mintlify.app/_mintlify/api/og/v2?division=Introduction\u0026amp;title=Updates\u0026amp;description=Built-in+helpers+to+help+you+keep+your+project+up+to+date.\u0026amp;theme=87e5d5443d5dde3c753ee24e\u0026amp;signature=2a5676e1ca848f2c8d3877f24fc8aecfbbde2a8950cee81f41ad603d0a3582b0\">\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/updates\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/updates.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/updates#webpage\",\"url\":\"https://docs.jtbdos.com/updates\",\"name\":\"Updates\",\"description\":\"Built-in helpers to help you keep your project up to date.\",\"isPartOf\":{\"@id\":\"https://docs.jtbdos.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.jtbdos.com/updates#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.jtbdos.com/updates#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Introduction\",\"item\":\"https://docs.jtbdos.com/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Updates\",\"item\":\"https://docs.jtbdos.com/updates\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.jtbdos.com/updates#article\",\"headline\":\"Updates\",\"name\":\"Updates\",\"description\":\"Built-in helpers to help you keep your project up to date.\",\"url\":\"https://docs.jtbdos.com/updates\",\"mainEntityOfPage\":{\"@id\":\"https://docs.jtbdos.com/updates#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","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/overview"},{"title":"Philosophy","href":"/philosophy"},{"title":"Structure","description":"Learn how JTBDOS apps and packages are structured.","href":"/structure"},{"title":"Updates","href":"/updates"},{"title":"FAQ","description":"Frequently asked questions about JTBDOS.","href":"/faq"}]},{"group":"Setup","pages":[{"title":"Prerequisites","href":"/setup/prerequisites"},{"title":"Installation","href":"/setup/installation"},{"title":"Environment Variables","href":"/setup/env"}]},{"group":"Deployment","pages":[{"title":"Deploying to Vercel","href":"/deployment/vercel"},{"title":"Deploying to Netlify","href":"/deployment/netlify"}]}]},{"tab":"Apps","pages":[{"title":"Apps","href":"/apps/api"}]},{"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":"Updates - jtbdos docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}