Configuration
Reference for site metadata, theme settings, and footer options in settings.json.
All configuration for Retrail is managed through the root settings.json file.
settings.json is read exclusively on the server by Next.js. It is never served as a static file or exposed as a public API route to browser clients.
File Structure
{
"site": {
"title": "Example Portfolio",
"description": "A customizable, self-hosted portfolio.",
"favicon": "/favicon.ico",
"logo": ""
},
"theme": {
"primaryColor": "neon-cyan",
"defaultColorScheme": "dark",
"radius": "sm",
"containerSize": "md"
},
"footer": {
"enabled": true,
"text": "%sitename% • Made with Retrail",
"links": []
},
"blocks": []
}site
Metadata settings used for page titles, search indexing, and social embeds.
| Setting | Type | Description |
|---|---|---|
title | string | The title displayed in browser tabs and metadata. |
description | string | The description rendered for SEO and social sharing cards. |
favicon | string | Path to the browser favicon (e.g. /favicon.ico). |
logo | string | Optional URL or path to an avatar/logo icon. |
theme
Visual theme and layout settings powered by Mantine UI.
| Setting | Type | Default | Description |
|---|---|---|---|
primaryColor | string | "neon-cyan" | Primary accent color for buttons, badges, and highlights. |
defaultColorScheme | string | "dark" | Default color mode: "dark", "light", or "auto". |
radius | string | "sm" | Default border radius: "xs", "sm", "md", "lg", or "xl". |
containerSize | string | "md" | Max width of the page container: "xs", "sm", "md", "lg", or "xl". |
Available Neon Color Scales
Retrail includes four custom high-vibrancy neon palettes:
neon-cyan: Electric cyan (#00f0ff)neon-green: Vibrant lime green (#00ff88)neon-purple: Bright ultraviolet (#9933ff)neon-pink: Hot neon pink (#ff007f)
Standard Mantine color names (such as blue, teal, violet, green, orange) are also supported.
footer
Footer settings anchored at the bottom of the page.
| Setting | Type | Description |
|---|---|---|
enabled | boolean | Set to false to hide the footer entirely. |
text | string | Footer text. Supports %sitename%, %author%, and %year% placeholders. |
links | array | Array of link objects { label: string, url: string, enabled?: boolean }. |

