General
Customization
Naming & Branding
Learn how to change the app name, description, and metadata throughout your application.
App Name and Description
The app name and description are used throughout the application. Update them in the configuration file:
config/app.config.ts
export const appConfig = {
appName: 'Your App Name',
description: 'A fantastic SaaS to make your life easier.',
baseUrl: 'https://yourdomain.com'
// ...
};This configuration is used in:
- Navigation and headers
- Email templates
- SEO metadata
- Social sharing
Metadata
The metadata in app/layout.tsx automatically uses values from appConfig:
app/layout.tsx
import { appConfig } from '@/config/app.config';
export const metadata: Metadata = {
metadataBase: new URL(appConfig.baseUrl),
title: {
absolute: appConfig.appName,
default: appConfig.appName,
template: `%s | ${appConfig.appName}`
},
description: appConfig.description,
openGraph: {
type: 'website',
locale: 'en_US',
siteName: appConfig.appName,
title: appConfig.appName,
description: appConfig.description
},
twitter: {
card: 'summary_large_image',
title: appConfig.appName,
description: appConfig.description
}
};Package.json
Update the name and description in package.json:
package.json
{
"name": "your-app-name",
"version": "1.0.0",
"description": "Your app description",
"author": "Your Name",
"license": "MIT"
// ...
}Environment Variables
The baseUrl in appConfig uses getBaseUrl() which reads from NEXT_PUBLIC_SITE_URL if set, otherwise falls back to the request URL. You can set it in your .env:
.env
NEXT_PUBLIC_SITE_URL=https://yourdomain.comEmail Branding
Update email templates to reflect your branding. Email templates are located in lib/email/templates/:
lib/email/templates/welcome-email.tsx
export function WelcomeEmail({ name }: { name: string }) {
return (
<Html>
<Head />
<Preview>Welcome to Your App Name!</Preview>
<Body>
<Container>
<Heading>Welcome to Your App Name!</Heading>
<Text>Hi {name},</Text>
<Text>Welcome to Your App Name! We're excited to have you.</Text>
</Container>
</Body>
</Html>
);
}