If you wish to display an onboarding page after the user signs up, you can enable it here. This will per default ask the user for his first name and last name.Example: true
Magic link/password login will still work - this hides the login button, and disables signups. This is useful for beta testing.
If you want to disable logging in completely, open web/app/[locale]/(unprotected)/signin/page.tsx and remove the file or return a 404.Example: true
Pricing configurations. LaunchIt supports both subscription and one-time purchase models. The pricing configuration is one of the most complex parts of the setup.
Whether to automatically apply the promotion in stripe. (Note: This will force users to use the promotion code. They cannot remove it or use another code.)Example: false
Array of OAuth provider configurations. See List of supported OAuth Providers.This will be automatically used in the <OAuthSignIn /> component on the sign-in page.
At least one authentication provider must be active (either password login, magic link login, or an OAuth provider).
The default login method must be active.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"LaunchIt","colors":{"primary":"#023146","light":"#3f7d9a","dark":"#023146"},"favicon":"/favicon.png","logo":{"light":"https://mintcdn.com/launchit/Pu_3tCytCupS6A7V/logo/light.png?fit=max\u0026auto=format\u0026n=Pu_3tCytCupS6A7V\u0026q=85\u0026s=43c1a11fdec6e557744bc563da07aa4b","dark":"https://mintcdn.com/launchit/Pu_3tCytCupS6A7V/logo/dark.png?fit=max\u0026auto=format\u0026n=Pu_3tCytCupS6A7V\u0026q=85\u0026s=0e105d00b6b9f0d5bbc8180776e801eb"},"navbar":{"links":[{"label":"Support","href":"mailto:hi@mintlify.com"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.mintlify.com"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"launchit","hasAudioNarration":false,"actualSubdomain":"launchit","customDomains":["docs.getlaunch.it"],"gitSource":{"type":"github","owner":"lorenzpfei","repo":"saas-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e67c91916e8ce404ef14","collectionId":"8e0f88da-9c8e-44a9-b308-cd1f798c148d","schemaVersion":"v2"},"entitlements":{},"buildId":"6a21e67c91916e8ce404ef14:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Initial Setup","count":6},{"language":"default","tag":"Customization","count":5},{"language":"default","tag":"Marketing \u0026 Analytics","count":4},{"language":"default","tag":"Deployment","count":2},{"language":"default","tag":"Get Started","count":2},{"language":"default","tag":"SEO","count":2},{"language":"default","tag":"Utilities","count":2},{"language":"default","tag":"Legal","count":1}]},"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":"initial-setup/configuration","slug":"/initial-setup/configuration","pageMetadata":{"title":"Configuration","description":"Learn how to configure your LaunchIt installation","icon":"sliders","href":"/initial-setup/configuration"},"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: \"Learn how to configure your LaunchIt installation\"\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},{Expandable,Heading,ResponseField,Warning}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`properties`,children:`Properties`}),`\n`,_jsxs(ResponseField,{name:`appName`,type:`string`,required:true,id:`param-app-name`,children:[_jsx(_components.p,{children:`The name of your application.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'LaunchIt'`})]})]}),`\n`,_jsxs(ResponseField,{name:`appUrl`,type:`string`,required:true,id:`param-app-url`,children:[_jsx(_components.p,{children:`The URL of your application.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`process.env.NEXT_PUBLIC_SITE_URL ?? ''`})]})]}),`\n`,_jsxs(ResponseField,{name:`appDescription`,type:`string`,required:true,id:`param-app-description`,children:[_jsx(_components.p,{children:`The description of your application. This uses a translation key.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.appDescription'`})]})]}),`\n`,_jsxs(ResponseField,{name:`supportEmail`,type:`string`,required:true,id:`param-support-email`,children:[_jsx(_components.p,{children:`The email address for support inquiries.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'info@pfeitec.com'`})]})]}),`\n`,_jsxs(ResponseField,{name:`marketingEmail`,type:`string`,required:true,id:`param-marketing-email`,children:[_jsx(_components.p,{children:`The email address for marketing communications.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'info@pfeitec.com'`})]})]}),`\n`,_jsxs(ResponseField,{name:`twitterHandle`,type:`string`,optional:true,id:`param-twitter-handle`,children:[_jsx(_components.p,{children:`The Twitter handle for your application.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'@yourhandle'`})]})]}),`\n`,_jsxs(ResponseField,{name:`onboadingActive`,type:`boolean`,required:true,id:`param-onboading-active`,children:[_jsx(_components.p,{children:`If you wish to display an onboarding page after the user signs up, you can enable it here. This will per default ask the user for his first name and last name.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),`\n`,_jsxs(ResponseField,{name:`blogFolder`,type:`string`,required:true,id:`param-blog-folder`,children:[_jsx(_components.p,{children:`The folder containing your blog content files.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'web/content/blog'`})]})]}),`\n`,_jsxs(ResponseField,{name:`i18n`,type:`I18nConfig`,required:true,id:`param-i18n`,children:[_jsx(_components.p,{children:`Internationalization (i18n) configurations.`}),_jsxs(Expandable,{title:`I18nConfig`,children:[_jsxs(ResponseField,{name:`enableLangRouting`,type:`boolean`,required:true,id:`param-enable-lang-routing`,children:[_jsxs(_components.p,{children:[`Enable or disable the language routing and switching via prefix e.g. `,_jsx(_components.code,{children:`/en`}),`.`]}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`defaultLocale`,type:`string`,required:true,id:`param-default-locale`,children:[_jsx(_components.p,{children:`The default language for your application.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'en'`})]})]})]})]}),`\n`,_jsxs(ResponseField,{name:`login`,type:`LoginConfig`,required:true,id:`param-login`,children:[_jsx(_components.p,{children:`Authentication configurations. LaunchIt supports multiple authentication methods that can be enabled or disabled based on your needs.`}),_jsxs(Expandable,{title:`LoginConfig`,children:[_jsxs(ResponseField,{name:`isPasswordLoginActive`,type:`boolean`,required:true,id:`param-is-password-login-active`,children:[_jsxs(_components.p,{children:[`Magic link/password login will still work - this hides the login button, and disables signups. This is useful for beta testing.\nIf you want to disable logging in completely, open `,_jsx(_components.code,{children:`web/app/[locale]/(unprotected)/signin/page.tsx`}),` and remove the file or return a 404.`]}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`isPasswordLoginActive`,type:`boolean`,required:true,id:`param-is-password-login-active-1`,children:[_jsx(_components.p,{children:`Enable traditional email/password login.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`isMagicLinkLoginActive`,type:`boolean`,required:true,id:`param-is-magic-link-login-active`,children:[_jsx(_components.p,{children:`Enable passwordless login via email links.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`defaultLoginMethod`,type:`'magic_link' | 'sign_in'`,required:true,id:`param-default-login-method`,children:[_jsx(_components.p,{children:`Set the default login method.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'magic_link'`})]})]}),_jsxs(ResponseField,{name:`requireLoginForPurchases`,type:`boolean`,required:true,id:`param-require-login-for-purchases`,children:[_jsx(_components.p,{children:`Toogle if the user needs to be logged in to make a purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]})]})]}),`\n`,_jsxs(ResponseField,{name:`privacyPolicyUrl`,type:`string`,required:true,id:`param-privacy-policy-url`,children:[_jsx(_components.p,{children:`The URL for the privacy policy. Necessary for legal compliance (Cookie consent banner) and footer.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'/privacy'`})]})]}),`\n`,_jsxs(ResponseField,{name:`tosUrl`,type:`string`,required:true,id:`param-tos-url`,children:[_jsx(_components.p,{children:`The URL for the terms of service. Necessary for legal compliance (Cookie consent banner) and footer.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'/tos'`})]})]}),`\n`,_jsxs(ResponseField,{name:`cookieBanner`,type:`CookieBannerConfig`,required:true,id:`param-cookie-banner`,children:[_jsx(_components.p,{children:`Cookie consent banner configurations.`}),_jsx(Expandable,{title:`CookieBannerConfig`,children:_jsxs(ResponseField,{name:`enabled`,type:`boolean`,required:true,id:`param-enabled`,children:[_jsx(_components.p,{children:`Enable or disable the cookie consent banner. If disabled, the banner will not be displayed and every service will be loaded by default.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]})})]}),`\n`,_jsxs(ResponseField,{name:`services`,type:`ServicesConfig`,required:true,id:`param-services`,children:[_jsx(_components.p,{children:`Additional service configurations.`}),_jsxs(Expandable,{title:`ServicesConfig`,children:[_jsxs(ResponseField,{name:`posthog`,type:`boolean`,required:true,id:`param-posthog`,children:[_jsx(_components.p,{children:`Enable or disable Posthog analytics.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`plausible`,type:`boolean`,required:true,id:`param-plausible`,children:[_jsx(_components.p,{children:`Enable or disable Plausible analytics.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]}),_jsxs(ResponseField,{name:`googleAnalytics`,type:`boolean`,required:true,id:`param-google-analytics`,children:[_jsx(_components.p,{children:`Enable or disable Google Analytics.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]})]})]}),`\n`,_jsxs(ResponseField,{name:`pricing`,type:`PricingConfig`,required:true,id:`param-pricing`,children:[_jsx(_components.p,{children:`Pricing configurations. LaunchIt supports both subscription and one-time purchase models. The pricing configuration is one of the most complex parts of the setup.`}),_jsxs(Expandable,{title:`PricingConfig`,children:[_jsxs(ResponseField,{name:`defaultModel`,type:`'subscription' | 'one-time'`,required:true,id:`param-default-model`,children:[_jsxs(_components.p,{children:[`Set the default pricing model that is displayed by the `,_jsx(_components.code,{children:`\u003cPricing />`}),` component.`]}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'subscription'`})]})]}),_jsxs(ResponseField,{name:`freeProduct`,type:`FreeProduct`,required:true,id:`param-free-product`,children:[_jsx(_components.p,{children:`Free tier configuration. If you want to display a free tier, you can configure it here. It will automatically redirect to the sign-in page.`}),_jsxs(Expandable,{title:`FreeProduct`,children:[_jsxs(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name`,children:[_jsx(_components.p,{children:`The name of the free product.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.free.title'`})]})]}),_jsxs(ResponseField,{name:`description`,type:`string`,required:true,id:`param-description`,children:[_jsx(_components.p,{children:`The description of the free product.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.free.description'`})]})]}),_jsxs(ResponseField,{name:`features`,type:`ProductFeature[]`,required:true,id:`param-features`,children:[_jsx(_components.p,{children:`An array of features included in the free tier.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`[ { name: 'config.pricing.features.core1' }, { name: 'config.pricing.features.core2' } ]`})]})]}),_jsx(ResponseField,{name:`notIncluded`,type:`ProductFeature[]`,optional:true,id:`param-not-included`,children:_jsx(_components.p,{children:`An array of features explicitly not included.`})}),_jsxs(ResponseField,{name:`initialCredits`,type:`number`,optional:true,id:`param-initial-credits`,children:[_jsx(_components.p,{children:`The number of credits new users receive.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`3`})]})]}),_jsxs(ResponseField,{name:`enabled`,type:`boolean`,required:true,id:`param-enabled-1`,children:[_jsx(_components.p,{children:`Toggle the free tier.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]}),_jsx(ResponseField,{name:`highlight`,type:`boolean`,optional:true,id:`param-highlight`,children:_jsx(_components.p,{children:`Whether to highlight this product in the UI.`})})]})]}),_jsxs(ResponseField,{name:`subscriptions`,type:`SubscriptionProduct[]`,required:true,id:`param-subscriptions`,children:[_jsx(_components.p,{children:`Array of subscription product configurations.`}),_jsxs(Expandable,{title:`SubscriptionProduct`,children:[_jsxs(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name-1`,children:[_jsx(_components.p,{children:`The name of the subscription.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.subscriptions.basic.name'`})]})]}),_jsxs(ResponseField,{name:`level`,type:`number`,required:true,id:`param-level`,children:[_jsx(_components.p,{children:`The hierarchy level of the plan.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`1`})]})]}),_jsxs(ResponseField,{name:`description`,type:`string`,required:true,id:`param-description-1`,children:[_jsx(_components.p,{children:`The description of the subscription.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.subscriptions.basic.description'`})]})]}),_jsx(ResponseField,{name:`features`,type:`ProductFeature[]`,required:true,id:`param-features-1`,children:_jsx(_components.p,{children:`An array of features included in the subscription.`})}),_jsx(ResponseField,{name:`notIncluded`,type:`ProductFeature[]`,optional:true,id:`param-not-included-1`,children:_jsx(_components.p,{children:`An array of features explicitly not included.`})}),_jsxs(ResponseField,{name:`monthly`,type:`PriceInfo`,required:true,id:`param-monthly`,children:[_jsx(_components.p,{children:`Monthly pricing configuration.`}),_jsxs(Expandable,{title:`PriceInfo`,children:[_jsxs(ResponseField,{name:`priceId`,type:`string`,required:true,id:`param-price-id`,children:[_jsx(_components.p,{children:`The Stripe price ID for the monthly plan.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`process.env.NEXT_PUBLIC_STRIPE_STARTER_MONTHLY_PRICE_ID ?? ''`})]})]}),_jsxs(ResponseField,{name:`price`,type:`number`,required:true,id:`param-price`,children:[_jsx(_components.p,{children:`The monthly price.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`9.99`})]})]}),_jsxs(ResponseField,{name:`priceAnchor`,type:`number`,optional:true,id:`param-price-anchor`,children:[_jsx(_components.p,{children:`The anchor price to show discount.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`14.99`})]})]})]})]}),_jsx(ResponseField,{name:`annually`,type:`PriceInfo`,required:true,id:`param-annually`,children:_jsx(_components.p,{children:`Annual pricing configuration.`})}),_jsxs(ResponseField,{name:`monthlyCredits`,type:`number`,optional:true,id:`param-monthly-credits`,children:[_jsx(_components.p,{children:`The number of credits awarded each month.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`100`})]})]}),_jsxs(ResponseField,{name:`promotion`,type:`PromotionCode`,optional:true,id:`param-promotion`,children:[_jsx(_components.p,{children:`Promotion configuration for the subscription.`}),_jsxs(Expandable,{title:`PromotionCode`,children:[_jsxs(ResponseField,{name:`code`,type:`string`,required:true,id:`param-code`,children:[_jsx(_components.p,{children:`The promotion code for customers. Displayed on the pricing card.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'LAUNCH70'`})]})]}),_jsxs(ResponseField,{name:`percentage`,type:`number`,required:true,id:`param-percentage`,children:[_jsx(_components.p,{children:`The discount percentage. Needed for showing the discount badge.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`70`})]})]}),_jsxs(ResponseField,{name:`stripe_id`,type:`string`,required:true,id:`param-stripe-id`,children:[_jsx(_components.p,{children:`The corresponding Stripe promotion ID. Needed for automatic application.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'promo_1QWMbOCVjR3erEYezwWi7faL'`})]})]}),_jsxs(ResponseField,{name:`autoApply`,type:`boolean`,required:true,id:`param-auto-apply`,children:[_jsx(_components.p,{children:`Whether to automatically apply the promotion in stripe. (Note: This will force users to use the promotion code. They cannot remove it or use another code.)`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]}),_jsxs(ResponseField,{name:`showBadge`,type:`boolean`,required:true,id:`param-show-badge`,children:[_jsx(_components.p,{children:`Whether to show the promotion badge on the pricing card.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]})]})]}),_jsxs(ResponseField,{name:`highlight`,type:`boolean`,optional:true,id:`param-highlight-1`,children:[_jsx(_components.p,{children:`Whether to highlight this plan in the UI.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]})]})]}),_jsxs(ResponseField,{name:`oneTimePurchases`,type:`OneTimePurchaseProduct[]`,required:true,id:`param-one-time-purchases`,children:[_jsx(_components.p,{children:`Array of one-time purchase configurations.`}),_jsxs(Expandable,{title:`OneTimePurchaseProduct`,children:[_jsxs(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name-2`,children:[_jsx(_components.p,{children:`The name of the one-time purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.oneTime.starter.name'`})]})]}),_jsxs(ResponseField,{name:`level`,type:`number`,required:true,id:`param-level-1`,children:[_jsx(_components.p,{children:`The hierarchy level of the purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`1`})]})]}),_jsxs(ResponseField,{name:`description`,type:`string`,required:true,id:`param-description-2`,children:[_jsx(_components.p,{children:`The description of the one-time purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'config.pricing.oneTime.starter.description'`})]})]}),_jsx(ResponseField,{name:`features`,type:`ProductFeature[]`,required:true,id:`param-features-2`,children:_jsx(_components.p,{children:`An array of features included in the purchase.`})}),_jsx(ResponseField,{name:`notIncluded`,type:`ProductFeature[]`,optional:true,id:`param-not-included-2`,children:_jsx(_components.p,{children:`An array of features explicitly not included.`})}),_jsx(ResponseField,{name:`price`,type:`PriceInfo`,required:true,id:`param-price-1`,children:_jsx(_components.p,{children:`Pricing configuration for the one-time purchase.`})}),_jsxs(ResponseField,{name:`totalCredits`,type:`number`,optional:true,id:`param-total-credits`,children:[_jsx(_components.p,{children:`The total credits included with the purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`100`})]})]}),_jsxs(ResponseField,{name:`validityPeriod`,type:\"'lifetime' | `${number}-months`\",required:true,id:`param-validity-period`,children:[_jsx(_components.p,{children:`The validity period of the purchase.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'lifetime'`})]})]}),_jsx(ResponseField,{name:`promotion`,type:`PromotionCode`,optional:true,id:`param-promotion-1`,children:_jsx(_components.p,{children:`Promotion configuration for the purchase.`})}),_jsxs(ResponseField,{name:`highlight`,type:`boolean`,optional:true,id:`param-highlight-2`,children:[_jsx(_components.p,{children:`Whether to highlight this purchase in the UI.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`false`})]})]})]})]})]})]}),`\n`,_jsxs(ResponseField,{name:`navigation`,type:`NavigationConfig`,required:true,id:`param-navigation`,children:[_jsx(_components.p,{children:`Navigation configurations.`}),_jsx(Expandable,{title:`NavigationConfig`,children:_jsxs(ResponseField,{name:`isSticky`,type:`boolean`,required:true,id:`param-is-sticky`,children:[_jsx(_components.p,{children:`Whether the navigation bar is sticky.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`true`})]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`oauth-providers`,children:`oAuth Providers`}),`\n`,_jsxs(ResponseField,{name:`oAuthProviders`,type:`OAuthProvider[]`,required:true,id:`param-o-auth-providers`,children:[_jsxs(_components.p,{children:[`Array of OAuth provider configurations. See `,_jsx(_components.a,{href:`https://supabase.com/docs/guides/auth#social-auth`,children:`List of supported OAuth Providers`}),`.`]}),_jsxs(_components.p,{children:[`This will be automatically used in the `,_jsx(_components.code,{children:`\u003cOAuthSignIn />`}),` component on the sign-in page.`]}),_jsxs(Expandable,{title:`OAuthProvider`,children:[_jsxs(ResponseField,{name:`name`,type:`Provider`,required:true,id:`param-name-3`,children:[_jsx(_components.p,{children:`The name of the OAuth provider.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'github'`})]})]}),_jsxs(ResponseField,{name:`displayName`,type:`string`,required:true,id:`param-display-name`,children:[_jsx(_components.p,{children:`The display name for the provider.`}),_jsxs(_components.p,{children:[`Example: `,_jsx(_components.code,{children:`'GitHub'`})]})]}),_jsx(ResponseField,{name:`icon`,type:`JSX.Element`,required:true,id:`param-icon`,children:_jsx(_components.p,{children:`The icon configuration for the provider.`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`further-information`,children:`Further Information`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Validation Checks:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`At least one authentication provider must be active (either password login, magic link login, or an OAuth provider).`}),`\n`,_jsx(_components.li,{children:`The default login method must be active.`}),`\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":{"config":{},"pageMetadata":{"title":"Configuration","description":"Learn how to configure your LaunchIt installation","icon":"sliders","href":"/initial-setup/configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Properties","slug":"properties","depth":2,"children":[]},{"title":"oAuth Providers","slug":"oauth-providers","depth":2,"children":[]},{"title":"Further Information","slug":"further-information","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"launchit","siteName":"LaunchIt","title":"Configuration - LaunchIt","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T05:47:39.203Z","originalFileLocation":"initial-setup/configuration.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=\"Learn how to configure your LaunchIt installation\">\u003cmeta data-mint-head name=\"application-name\" content=\"LaunchIt\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configuration - LaunchIt\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to configure your LaunchIt installation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LaunchIt\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getlaunch.it/initial-setup/configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://launchit.mintlify.app/_mintlify/api/og/v2?division=Initial+Setup\u0026amp;title=Configuration\u0026amp;description=Learn+how+to+configure+your+LaunchIt+installation\u0026amp;theme=7b79389a487e14b0646fac53\u0026amp;signature=130c1b98b9173f223fb15215f7310baa9d4a58f7c39072927b4fe01804b055ea\">\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=\"Configuration - LaunchIt\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to configure your LaunchIt installation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://launchit.mintlify.app/_mintlify/api/og/v2?division=Initial+Setup\u0026amp;title=Configuration\u0026amp;description=Learn+how+to+configure+your+LaunchIt+installation\u0026amp;theme=7b79389a487e14b0646fac53\u0026amp;signature=130c1b98b9173f223fb15215f7310baa9d4a58f7c39072927b4fe01804b055ea\">\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=\"/mintlify-assets/_mintlify/favicons/launchit/DR_Y2MQ8eClFgq5X/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LaunchIt\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#023146\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getlaunch.it/initial-setup/configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/initial-setup/configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getlaunch.it/#organization\",\"name\":\"LaunchIt\",\"url\":\"https://docs.getlaunch.it\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/launchit/Pu_3tCytCupS6A7V/logo/light.png?fit=max\u0026auto=format\u0026n=Pu_3tCytCupS6A7V\u0026q=85\u0026s=43c1a11fdec6e557744bc563da07aa4b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getlaunch.it#website\",\"name\":\"LaunchIt\",\"url\":\"https://docs.getlaunch.it\",\"publisher\":{\"@id\":\"https://docs.getlaunch.it/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getlaunch.it/initial-setup/configuration#webpage\",\"url\":\"https://docs.getlaunch.it/initial-setup/configuration\",\"name\":\"Configuration\",\"description\":\"Learn how to configure your LaunchIt installation\",\"dateModified\":\"2026-01-07T05:47:39.203Z\",\"isPartOf\":{\"@id\":\"https://docs.getlaunch.it#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getlaunch.it/initial-setup/configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getlaunch.it/initial-setup/configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Initial Setup\",\"item\":\"https://docs.getlaunch.it/initial-setup/setup\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configuration\",\"item\":\"https://docs.getlaunch.it/initial-setup/configuration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getlaunch.it/initial-setup/configuration#article\",\"headline\":\"Configuration\",\"name\":\"Configuration\",\"description\":\"Learn how to configure your LaunchIt installation\",\"url\":\"https://docs.getlaunch.it/initial-setup/configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getlaunch.it/initial-setup/configuration#webpage\"},\"dateModified\":\"2026-01-07T05:47:39.203Z\",\"publisher\":{\"@id\":\"https://docs.getlaunch.it/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getlaunch.it#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LaunchIt\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"LaunchIt","nav":{"global":null,"groups":[{"group":"Get Started","pages":[{"title":"Introduction","icon":"book","href":"/introduction"},{"title":"Installation","icon":"download","href":"/installation"}]},{"group":"Initial Setup","pages":[{"title":"Basic","icon":"key","href":"/initial-setup/setup"},{"title":"Email","icon":"envelope","href":"/initial-setup/email"},{"title":"Supabase","icon":"database","href":"/initial-setup/supabase"},{"title":"Stripe","icon":"money-bill","href":"/initial-setup/stripe"},{"title":"Additional","icon":"ellipsis","description":null,"href":"/initial-setup/additional"},{"title":"Configuration","icon":"sliders","href":"/initial-setup/configuration"}]},{"group":"Customization","pages":[{"title":"Internationalization (i18n)","description":"Add multiple language support to your application using Next.js built-in internationalization features and our pre-configured translation system","icon":"language","href":"/essentials/i18n"},{"title":"i18n - Routing","icon":"route","href":"/essentials/i18n-routing"},{"title":"Styling","icon":"palette","href":"/essentials/styling"},{"title":"Cookies","icon":"cookie-bite","href":"/essentials/cookies"},{"title":"Code Quality","icon":"code-merge","href":"/essentials/code-quality"}]},{"group":"Utilities","pages":[{"title":"Helper Functions","icon":"wrench","href":"/utilities/helpers"},{"title":"Helper Components","icon":"puzzle-piece","href":"/utilities/components"}]},{"group":"Legal","pages":[{"title":"Legal","icon":"gavel","href":"/legal/legal"}]},{"group":"Marketing \u0026 Analytics","pages":[{"title":"Google Analytics","icon":"google","href":"/analytics/google-analytics"},{"title":"Google Tag Manager","icon":"google","href":"/analytics/google-tag-manager"},{"title":"Plausible","icon":"chart-mixed","href":"/analytics/plausible"},{"title":"PostHog","icon":"chart-scatter","href":"/analytics/posthog"}]},{"group":"SEO","pages":[{"title":"Sitemap \u0026 Robots","icon":"sitemap","href":"/seo/sitemap"},{"title":"Blog","icon":"newspaper","href":"/seo/blog"}]},{"group":"Deployment","pages":[{"title":"Deployment - Supabase","icon":"rocket","href":"/deployment/supabase"},{"title":"Deployment - App","icon":"rocket","href":"/deployment/app"}]}]},"basePath":"","title":"Configuration - LaunchIt","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}