Updating branding
The app name appears in browser tabs, Open Graph tags, and the default metadata defined insrc/app/layout.tsx. Update it in two places:
1. Metadata in layout.tsx
src/app/layout.tsx
public/ directory at the project root. Reference them in your header component using Next.js’s Image component:
src/components/shared/logo.tsx
public/favicon.ico with your own favicon. For broader browser and PWA support, also add public/apple-touch-icon.png (180×180 px) and public/icon-192.png.
Colors and theme
Shipfastai uses CSS custom properties to define its color system, which Tailwind maps throughtailwind.config.ts. You change the entire color palette by editing the variable values in src/app/globals.css — you never need to modify tailwind.config.ts itself.
The light and dark theme values are defined under :root and .dark respectively:
src/app/globals.css
H S% L%) without the hsl() wrapper, which lets Tailwind compose opacity variants automatically. To change your primary brand color, update --primary (and --primary-foreground for text on primary backgrounds) in both :root and .dark.
shadcn/ui components
Shipfastai uses shadcn/ui with thenew-york style and neutral base color, configured in components.json at the project root:
components.json
dialog component:
src/components/ui/dialog.tsx, which you can then import and customize freely. Because the components are copied into your repository, you own the code and can modify them without overriding a package.
Modifying pages
The frontend follows the Next.js App Router convention. All user-facing routes live undersrc/app/, grouped into three route groups:
To edit the landing page, open
src/app/(marketing)/page.tsx. The hero section, features grid, and CTA section are each a self-contained JSX block you can rearrange or replace:
src/app/(marketing)/page.tsx
src/app/(dashboard)/dashboard/page.tsx. The stat cards, recent activity feed, and quick-action buttons are all rendered inline and easy to replace with your own data.
Adding new pages
To add a new public page, create apage.tsx file inside src/app/(marketing)/:
src/app/(marketing)/about/page.tsx
src/app/(dashboard)/:
(dashboard) layout in src/app/(dashboard)/layout.tsx automatically wraps the page with the sidebar and authentication guard, so you do not need to add those yourself.
Dark mode
Dark mode is pre-configured using theclass strategy in tailwind.config.ts. When the dark class is present on the <html> element, Tailwind applies your .dark CSS variables and any dark: utility overrides in your components.
Shipfastai’s providers.tsx wraps the app in a QueryClientProvider, and you can add next-themes to manage theme toggling:
src/app/providers.tsx
useTheme hook:
src/components/shared/theme-toggle.tsx