Customize Page Display
Set General Display Content
The general display content of the project corresponds to the configuration file src/config/locale/messages/{locale}/common.json
Including website metadata information, sign login and registration text, locale_detector language detection text, etc.
You can modify the configuration file content according to the actual situation of the project.
Among them, metadata information is the website information included by search engines. Please be sure to modify it before the project is deployed online.
The default content is:
{
"metadata": {
"title": "ShipAny Template Two",
"description": "ShipAny is a NextJS boilerplate for building AI SaaS startups. Ship Fast with a variety of templates and components.",
"keywords": "shipany, shipany-boilerplate, shipany-template-two-demo"
}
}You can use AI to assist in generating configuration file content. Reference prompt words:
The project I am developing is an AI image generator based on Nano Banana Pro model,
please refer to the content on the webpage: https://gemini.google/overview/image-generation/,
help me modify the metadata information in the common configuration file under src/config/locale/messages/{locale}/common.json.
My project name is: Nano Banana Pro,
Keywords contains: nano banana pro, nano banana, nano banana 2, gemini 3 pro image.After the modification is completed, refresh the project page and check whether the website's metadata information is correct through the AITDK Extension.
You can continue to manually adjust the content of metadata in the configuration file based on the detection results.

Set Landing Page Content
Project landing page content corresponds to the configuration file src/config/locale/messages/{locale}/landing.json
The default configuration content defines the display content of the landing page header / hero / features / testimonials / faq / cta and other blocks. You can replace the default content partially or completely according to the project situation.
Use AI to assist in generating configuration file content. Reference prompt words:
The project I am developing is an AI image generator based on Nano Banana Pro model,
please refer to the content on the webpage: https://gemini.google/overview/image-generation/,
help me modify the landing page content in the configuration file under src/config/locale/messages/{locale}/landing.json.
My project title is: Nano Banana Pro,
Keywords contains: nano banana pro, nano banana, nano banana 2, gemini 3 pro image.After the modification is completed, refresh the project page and use the AITDK Extension to check whether the landing page content of the website is correct.
You can see that the landing page content has been modified to the content you set, including the specified keywords.
You can continue to manually adjust the landing page content in the configuration file according to the project situation.

Customize Landing Page Display
After setting the landing page content with AI assistance, you can manually adjust the configuration file content to finely control the landing page display.
Customize Header
{
"header": {
"id": "header",
"brand": {
"title": "Nano Banana Pro",
"logo": {
"src": "/imgs/logos/banana.png",
"alt": "Nano Banana Pro"
},
"url": "/"
},
"nav": {
"items": [
{
"title": "Features",
"url": "/#features",
"icon": "Sparkles"
}
]
},
"buttons": [
{
"title": "Quick Start",
"url": "/docs/quick-start",
"icon": "BookOpenText",
"target": "_self",
"variant": "outline"
}
],
"user_nav": {},
"show_sign": false,
"show_theme": false,
"show_locale": false
}
}brand: Displayed brand information. Including Logo, name, jump link, etc.nav: Displayed top navigation menu.buttons: Buttons displayed on the right side of the top.user_nav: Navigation menu displayed in the dropdown after user login and clicking avatar.show_sign: Whether to display the login/register button.show_theme: Whether to display the light/dark theme switch button.show_locale: Whether to display the language switch button.
According to the above configuration content, the seen Header effect is as follows:

Other blocks, such as
Hero/Footer, etc., custom display methods are similar toHeader, you can refer to the above configuration content.
Customize Block
The default landing page configuration, on the website homepage, displays the following blocks:
header: Top blockhero: Hero blocklogos: Logo list blockintroduce: Introduction information blockbenefits: Benefits blockusage: Usage scenario blockfeatures: Function features blockstats: Statistics data blocktestimonials: User evaluation blockfaq: FAQ blockcta: Call to action blocksubscribe: Subscribe blockfooter: Bottom block
You can customize the blocks displayed on the website homepage by following these steps.
In the src/config/locale/messages/{locale}/landing.json configuration file,
delete unnecessary blocks or add custom blocks.
{
"header": {},
"hero": {},
"features": {},
"faq": {},
"cta": {},
"footer": {}
}In the src/app/[locale]/(landing)/page.tsx file, adjust the showSections
array to only include the blocks that need to be displayed.
const showSections = ['hero', 'features', 'faq', 'cta'];In the src/themes/default/pages/dynamic-page.tsx file, specify the
corresponding display component for each type of block.
// block name
const block = section.block || section.id || sectionKey;
switch (block) {
case 'hero':
return <Hero key={sectionKey} section={section} />;
case 'features':
return <Features key={sectionKey} section={section} />;
case 'faq':
return <FAQ key={sectionKey} section={section} />;
case 'cta':
return <CTA key={sectionKey} section={section} />;
default:
// ...
}Default page blocks are defined in the src/themes/default/blocks directory. If the default blocks do not meet your needs, you can refer to the [Customize Display Block](/docs/page-builder/dynamic-page#Customize Display Block) document to create custom block files.
The default page layout file is defined in the src/themes/default/layouts/landing.tsx file.
Contains two blocks: Header and Footer.
import { ReactNode } from 'react';
import {
Footer as FooterType,
Header as HeaderType,
} from '@/shared/types/blocks/landing';
import { Footer, Header } from '@/themes/default/blocks';
export default async function LandingLayout({
children,
header,
footer,
}: {
children: ReactNode;
header: HeaderType;
footer: FooterType;
}) {
return (
<div className="h-screen w-screen">
<Header header={header} />
{children}
<Footer footer={footer} />
</div>
);
}If you don't want to modify the default theme, you can refer to the [Set Theme Folder](/docs/customize/theme#Set Theme Folder) document to customize the layout and display of the page through a custom theme.
Customize Admin Display
By modifying the src/config/locale/messages/{locale}/admin/sidebar.json configuration file, you can customize the admin display.
For example, change it to the following configuration content:
{
"header": {
"brand": {
"title": "Nano Banana Pro",
"logo": {
"src": "/imgs/logos/banana.png",
"alt": "Nano Banana Pro"
},
"url": "/admin"
},
"show_trigger": true
},
"main_navs": [
{
"title": "System",
"items": [
{
"title": "Users & Permissions",
"icon": "User",
"is_expand": true,
"children": [
{
"title": "Users",
"url": "/admin/users",
"icon": "User"
}
]
}
]
},
{
"title": "Business",
"items": [
{
"title": "Images",
"url": "/admin/ai-tasks",
"icon": "Brain"
}
]
}
],
"bottom_nav": {
"items": [
{
"title": "Settings",
"url": "/admin/settings/auth",
"icon": "Settings"
}
]
},
"user": {
"nav": {
"items": [
{
"title": "Profile",
"url": "/settings/profile",
"icon": "User",
"target": "_blank"
}
]
},
"show_email": true,
"show_signout": true,
"signout_callback": "/"
},
"footer": {
"nav": {
"items": [
{
"title": "Home",
"url": "/",
"icon": "Home",
"target": "_blank"
}
]
},
"show_theme": true,
"show_locale": true
},
"variant": "floating"
}header: Sidebar top brand information.main_navs: Sidebar main menu.bottom_nav: Sidebar bottom menu.user: User login settings.footer: Sidebar footer information.variant: Sidebar layout variant. Optional values areinset/sidebar/floating.
According to the above configuration content, the seen admin display effect is as follows:
