Settings

Key/value settings for site-wide configuration — branding, SEO defaults, social links, email/SMTP, integrations.

Routes

RouteMethodPurpose
/admin/settingsGETSettings dashboard (tabbed UI per group)
/admin/settingsPUTSave settings
/admin/settings/test-emailPOSTSend a test email using current SMTP settings

Setting groups

GroupExamples
SiteSite name, tagline, logo, favicon, default locale
SEODefault meta title pattern, default meta description, default OG image, robots directives
SocialTwitter, Instagram, LinkedIn, YouTube, GitHub URLs
EmailSMTP host/port/user/password, from address, from name
MediaMax upload size, allowed mime types, image quality / max width
IntegrationsAnalytics IDs, reCAPTCHA keys, Sentry DSN, custom code injection

Storage model

Each setting is one row in settings: key, group, type (string, boolean, json, media, …), value, and is_translatable. Translatable settings store one value per locale in the value JSON column.

// Single value
{ key: "site.name", group: "site", type: "string", value: "DM Editors" }

// Translatable
{
  key: "site.tagline",
  group: "site",
  type: "string",
  is_translatable: true,
  value: { "en": "Headless CMS", "es": "CMS sin cabeza", "hi": "हेडलेस सीएमएस" }
}

// JSON value (e.g. social links)
{
  key: "social.links",
  group: "social",
  type: "json",
  value: { twitter: "https://x.com/…", github: "https://github.com/…" }
}

Helpers

// Anywhere in the app
setting('site.name');                  // string
setting('site.name', 'My Site');       // with fallback
setting('site.tagline', null, 'es');   // explicit locale

// Eloquent
Setting::get('seo.default_title');
Setting::set('seo.default_title', 'Acme — {entry_title}');

Test email

The "Send test" button in the Email tab posts to /admin/settings/test-email. The controller crafts a basic message using current SMTP credentials and reports the success/failure inline.

Public exposureA safe subset of settings (site name, logo, social links, default SEO) is exposed publicly via the API at /api/v1/settings. See API: Settings & Locales.