Skip to main content

Settings

The settings page lets you configure site-specific options that control how your site behaves and appears. Settings are scoped to the currently selected site.

Accessing Settings

Navigate to Settings in the sidebar. The settings page is organized into tabs. Which tabs you see depends on your role and which modules are enabled for the site.

Settings Tabs Overview

TabVisible ToCondition
OverviewAdmin, OwnerAlways
ContentAdmin, OwnerAlways
ModulesAdmin, OwnerAlways
SEOAdmin, OwnerAlways
Site IconAdmin, OwnerAlways
Code InjectionAdmin, OwnerAlways
AI AssistAdmin, OwnerAI module enabled

Preferences Tab

Personal settings that apply to your account on this site. Available to all users.

SettingDescription
LanguageThe UI language for the admin dashboard.
ThemeLight or dark mode.
AutosaveToggle automatic saving of content while editing.
Page sizeNumber of items to display per page in listings.

Site Settings Tab

Core configuration for the site. Requires Admin or Owner role.

General

SettingDescription
Site nameThe display name of your site. Used in the admin dashboard and can be used by your frontend template.
Site descriptionA brief description of your site. Useful for SEO meta tags.
DomainThe primary domain for your site.
Default localeThe default language for content when no locale is specified.
TimezoneThe timezone used for content scheduling and timestamps.
Contact emailPublic contact email for the site.
Preview template URLURL of the frontend template used for content previews.

Feature Toggles

ToggleDescription
AnalyticsEnable site analytics tracking.
Maintenance modePut the site into maintenance mode (public API returns 503). When active, a warning banner appears on every dashboard page with a quick "Turn Off" button.
Editorial workflowEnable the review workflow for blog posts (Draft > In Review > Published). Only visible when the site has 2 or more members.

Data Retention

SettingDefaultDescription
Analytics retention90 daysHow long raw analytics pageview data is kept before pruning. Aggregated daily stats are kept indefinitely.
Audit log retention365 daysHow long audit log and change history entries are kept. A daily background worker deletes entries older than this. Set via the audit_log_retention_days site setting key.

File Upload Limits

Configure the maximum allowed file size for media uploads.

Modules Tab

Enable or disable content modules for the site. Requires Admin or Owner role.

ModuleDescription
BlogBlog posts, categories, and tags.
PagesStatic pages with sections.
PortfolioResume / portfolio entries and skills.
LegalLegal pages (privacy policy, terms of service, etc.).
DocumentsFile/document management and attachments.
AIAI-powered content assist features.
Disabling a module hides its sidebar entry and API endpoints for this site. Existing data is preserved and reappears if you re-enable the module.

AI Assist Tab

Configure the AI provider for content assist features. Requires Admin or Owner role and the AI module to be enabled.

SettingDescription
LLM ProviderThe AI service provider (e.g., OpenAI, Anthropic).
API KeyYour provider API key (stored encrypted).
ModelThe model to use for generation (e.g., gpt-4o, claude-sonnet-4-20250514).
TemperatureControls randomness (0 = deterministic, 1 = creative).
Max tokensMaximum number of tokens per AI response.
System promptsCustom instructions sent to the LLM for content generation and SEO tasks.

For full details on capabilities, see the AI Content Assist guide.

System Info Tab

Server and platform information. Visible only to Owner users.

  • Server version -- the running Forja backend version.
  • Services health -- status of connected services (database, cache, storage, AI provider).
  • Storage info -- disk or S3 usage statistics.

Cookie consent and legal notice configuration. Requires Admin or Owner role and the Legal module to be enabled.

  • Configure cookie consent banner text, categories, and behavior.
  • Manage links to privacy policy and terms of service pages.

SEO Tab

The SEO tab contains two sections: SEO Defaults and robots.txt Configuration.

SEO Defaults

Site-wide fallback values for content that lacks custom SEO metadata. These are applied at response time in the content detail endpoints (blog posts, pages) — they are never stored on the content itself.

SettingDescription
Title templatePattern for <title> tags. Use {{title}} for the content title and {{site_name}} for the site name. Example: {{title}} | {{site_name}}. A live preview shows how the template renders.
Default meta descriptionFallback <meta name="description"> used when content has no custom description. A character counter shows the recommended 160-character limit.
Default OG imageFallback Open Graph image (selected from the media library) used when content has no cover image. The cascade is: content cover image > default OG image > site logo.

robots.txt Configuration

Control how search engine crawlers access your site. Changes are reflected immediately at the public GET /sites/<slug>/robots.txt endpoint.

  • Add/remove User-Agent blocks (e.g. *, Googlebot)
  • Add/remove Allow/Disallow directives per block
  • A live preview panel shows the rendered robots.txt
  • The Sitemap: directive is automatically appended when a Site URL is configured
  • Reset to Defaults restores the default "allow all" rule

Site Icon Tab

Upload a source image (512x512px+ recommended) to generate a complete favicon package. The generated variants include:

  • favicon.ico (multi-resolution: 16, 32, 48px)
  • favicon-16x16.png, favicon-32x32.png
  • apple-touch-icon.png (180x180)
  • android-chrome-192x192.png, android-chrome-512x512.png

After uploading, the page shows:

  • Variant preview grid — visual preview of all generated icons
  • Theme color / Background color — hex color pickers that feed into the site.webmanifest
  • HTML snippet — ready-to-paste <head> markup with a copy-to-clipboard button

Icons are stored separately from the media library and do not appear in media listings. The site's favicon_url is automatically updated to the 32x32 PNG variant for backwards compatibility with templates that only read that field.

Code Injection Tab

Inject custom HTML, CSS, or JavaScript into your site's templates. Useful for analytics scripts (Google Analytics, Plausible), search engine verification tags (Google Search Console), chat widgets, tracking pixels, or custom meta tags.

FieldDescription
Head codeInjected into the <head> section of every page.
Footer codeInjected before the closing </body> tag.

Both fields have a 10,000-character limit (enforced on backend and shown in UI). A warning banner reminds you that injected code runs on your live site.

Templates fetch these values from the site settings API and render them in the appropriate document locations.

Saving Settings

After making changes to any setting, click Save at the bottom of the page. Settings take effect immediately.

Resetting to Defaults

If available, click the Reset to defaults option to revert all settings to their default values. Confirm the action when prompted.

Permissions

ActionRequired Role
View settingsViewer
Modify settingsAdmin, Owner
Reset settingsAdmin, Owner