prmbr-image-mksaas/src/config/website.tsx
2025-08-15 22:51:48 +08:00

216 lines
4.9 KiB
TypeScript

import { PaymentTypes, PlanIntervals } from '@/payment/types';
import type { WebsiteConfig } from '@/types';
/**
* website config, without translations
*
* docs:
* https://mksaas.com/docs/config/website
*/
export const websiteConfig: WebsiteConfig = {
metadata: {
theme: {
defaultTheme: 'default',
enableSwitch: true,
},
mode: {
defaultMode: 'system',
enableSwitch: true,
},
images: {
ogImage: '/og.png',
logoLight: '/logo.png',
logoDark: '/logo-dark.png',
},
social: {
github: 'https://github.com/MkSaaSHQ',
twitter: 'https://mksaas.link/twitter',
blueSky: 'https://mksaas.link/bsky',
discord: 'https://mksaas.link/discord',
mastodon: 'https://mksaas.link/mastodon',
linkedin: 'https://mksaas.link/linkedin',
youtube: 'https://mksaas.link/youtube',
},
},
features: {
enableDiscordWidget: false,
enableUpgradeCard: true,
enableUpdateAvatar: true,
enableAffonsoAffiliate: false,
enablePromotekitAffiliate: false,
enableDatafastRevenueTrack: false,
enableCrispChat: process.env.NEXT_PUBLIC_DEMO_WEBSITE === 'true',
enableTurnstileCaptcha: process.env.NEXT_PUBLIC_DEMO_WEBSITE === 'true',
},
routes: {
defaultLoginRedirect: '/dashboard',
},
analytics: {
enableVercelAnalytics: false,
enableSpeedInsights: false,
},
auth: {
enableGoogleLogin: true,
enableGithubLogin: true,
enableCredentialLogin: true,
},
i18n: {
defaultLocale: 'en',
locales: {
en: {
flag: '🇺🇸',
name: 'English',
},
zh: {
flag: '🇨🇳',
name: '中文',
},
},
},
blog: {
enable: true,
paginationSize: 6,
relatedPostsSize: 3,
},
docs: {
enable: true,
},
mail: {
provider: 'resend',
fromEmail: 'MkSaaS <support@mksaas.com>',
supportEmail: 'MkSaaS <support@mksaas.com>',
},
newsletter: {
enable: true,
provider: 'resend',
autoSubscribeAfterSignUp: true,
},
storage: {
enable: true,
provider: 's3',
},
payment: {
provider: 'stripe',
},
price: {
plans: {
free: {
id: 'free',
prices: [],
isFree: true,
isLifetime: false,
credits: {
enable: true,
amount: 50,
expireDays: 30,
},
},
pro: {
id: 'pro',
prices: [
{
type: PaymentTypes.SUBSCRIPTION,
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_MONTHLY!,
amount: 990,
currency: 'USD',
interval: PlanIntervals.MONTH,
},
{
type: PaymentTypes.SUBSCRIPTION,
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_YEARLY!,
amount: 9900,
currency: 'USD',
interval: PlanIntervals.YEAR,
},
],
isFree: false,
isLifetime: false,
popular: true,
credits: {
enable: true,
amount: 1000,
expireDays: 30,
},
},
lifetime: {
id: 'lifetime',
prices: [
{
type: PaymentTypes.ONE_TIME,
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_LIFETIME!,
amount: 19900,
currency: 'USD',
allowPromotionCode: true,
},
],
isFree: false,
isLifetime: true,
credits: {
enable: true,
amount: 1000,
expireDays: 30,
},
},
},
},
credits: {
enableCredits: process.env.NEXT_PUBLIC_DEMO_WEBSITE === 'true',
enableForFreePlan: false,
registerGiftCredits: {
enable: true,
credits: 50,
expireDays: 30,
},
packages: {
basic: {
id: 'basic',
popular: false,
credits: 100,
expireDays: 30,
price: {
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_CREDITS_BASIC!,
amount: 990,
currency: 'USD',
allowPromotionCode: true,
},
},
standard: {
id: 'standard',
popular: true,
credits: 200,
expireDays: 30,
price: {
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_CREDITS_STANDARD!,
amount: 1490,
currency: 'USD',
allowPromotionCode: true,
},
},
premium: {
id: 'premium',
popular: false,
credits: 500,
expireDays: 30,
price: {
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_CREDITS_PREMIUM!,
amount: 3990,
currency: 'USD',
allowPromotionCode: true,
},
},
enterprise: {
id: 'enterprise',
popular: false,
credits: 1000,
expireDays: 30,
price: {
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_CREDITS_ENTERPRISE!,
amount: 6990,
currency: 'USD',
allowPromotionCode: true,
},
},
},
},
};