IntroductionTech StackQuick Start
Customize App InfoCustomize Theme
Logo
Customize
X logoShare to XLinkedIn logoShare to LinkedIn

Customize App Info

ShipNowKit lets you manage app info via the Dashboard (writes to SystemConfig.SITE); the site URL falls back to environment variables (NEXT_PUBLIC_SITE_URL, otherwise VERCEL_URL/browser origin, then http://localhost:3000).

Before deployment, set your project’s basic site info.

Configure Basic Info

Site Name / Title / Description

Use the Dashboard to set name, title, and description:

  1. Sign in to the Dashboard
  2. Go to Settings → Site Settings
  3. In Basic Info, fill:
    • Site Name: Shown in page titles and metadata
    • Site Title: Landing page title for SEO
    • Site Description: Description for search results

If you need i18n, set site.title and site.description in translation files:

  • messages/en.json
  • messages/zh.json These override the database values, which is better for multilingual sites.

Site URL

getURL() resolves the site URL with priority: NEXT_PUBLIC_SITE_URL → (server) VERCEL_URL → (client) current origin → http://localhost:3000. Please set at least:

# Local
NEXT_PUBLIC_SITE_URL=http://localhost:3000

# Production
NEXT_PUBLIC_SITE_URL=https://your-domain.com

Configure Social Media

In Dashboard Site Settings → Social Media, set:

  • Twitter URL: Your Twitter/X profile URL
  • Twitter Account: Your Twitter/X handle (e.g., @username)
  • OG Image URL: Open Graph image URL (e.g., https://example.com/og-image.png)

Used for:

  • Social share preview cards
  • SEO metadata
  • Open Graph tags

Configure sitemap.xml

sitemap.xml tells search engines which pages to index.
Update public/sitemap.xml before launch.

ShipNowKit uses next-sitemap to generate it; config at next-sitemap.config.js:

/** @type {import('next-sitemap').IConfig} */
module.exports = {
  siteUrl: process.env.NEXT_PUBLIC_SITE_URL,
  generateRobotsTxt: true,
  // other configs...
}

Make sure NEXT_PUBLIC_SITE_URL is set, otherwise generated sitemap links will be incorrect. After build, the sitemap is emitted to public/sitemap.xml.

Configure robots.txt

robots.txt defines crawl rules. Update public/robots.txt before launch. The repo default points to http://localhost:3000; replace with your production domain.

Default content (update Host/Sitemap to your domain):

User-agent: *
Allow: /

# Host
Host: https://your-domain.com

# Sitemaps
Sitemap: https://your-domain.com/sitemap.xml

You can disallow paths as needed:

User-agent: *
Disallow: /*?*q=
Disallow: /privacy-policy
Disallow: /terms-of-service
Disallow: /settings/*
Disallow: /dashboard/*
Disallow: /admin/*

Configure Policies

Privacy Policy and Terms of Use live in app/[locale]/policies/:

  • privacy-policy/page.tsx — Privacy Policy
  • terms-of-use/page.tsx — Terms of Use

Edit content to match your business. For faster drafting with AI, you can prompt like:

I'm building an AI SaaS boilerplate.
Reference: https://shipnowkit.com/docs
Please help rewrite the policy files under content/pages.
Project name: ShipNowKit
Domain: https://your-domain.com
Copyright owner: Your Company
Contact email: [email protected]

After editing, visit the pages to verify:

  • Privacy Policy: /privacy-policy
  • Terms of Use: /terms-of-use

OAuth Configuration

Learn how to configure OAuth providers in your ShipNowKit application. Step-by-step guide for setting up Google, GitHub, Discord, Facebook, and Twitter OAuth.

Customize Theme

Learn how to customize theme styles in ShipNowKit, including colors, fonts, and appearance modes.

On this page

Customize App Info
Configure Basic Info
Site Name / Title / Description
Site URL
Configure Social Media
Configure sitemap.xml
Configure robots.txt
Configure Policies