Landing Settings (clinic branding)
A complete guide to the Landing Settings module — configuring the public landing page branding, colors, content, SEO, contact details, and social media links.
Written By Dev010
Last updated 19 days ago
The Landing Settings module gives Admin users full control over the public-facing landing page without touching any code. Every visible element — clinic name, logo, colors, hero text, contact details, SEO metadata, and social links — is managed from this single module and takes effect immediately on the live site.
Admin only. Landing Settings is accessible exclusively to Admin accounts. It is not visible in the sidebar for Doctor, Receptionist, or Nurse roles.
Accessing the Module
Sidebar → Landing Settings
Direct URL:
https://yourdomain.com/dashboard/landing-settingsModule Layout
The Landing Settings page is organized into tabs. Each tab controls a distinct aspect of the public landing page:
Navigate between tabs freely — changes are not saved until you click the Save button within each tab.
How Settings Are Applied
Landing page settings are stored in the landing_page_settings table linked to your clinic. When a visitor opens the public landing page, CareNova loads the saved settings and applies them to the page at render time.
Settings are cached server-side for performance. After saving changes, the public page reflects the updates within a few seconds.
If no custom settings have been saved yet, CareNova falls back to the built-in defaults for your clinic type — defined in lib/data/landing-defaults/ {dental|ophthalmology|general}.json. This means the landing page always renders correctly even before any settings are configured.
Branding Tab
The Branding tab controls your clinic's core visual identity on the public page.
Clinic Identity:
Logo:
Accepted formats and size limits:
Logos are uploaded to the logos Supabase storage bucket. Confirm this bucket exists and is set to Public before uploading — see the Supabase Setup guide.
Upload both a light and dark version of your logo for the best appearance across different header styles and themes. If only one is uploaded, the same logo is used in all contexts.
Favicon:
Hero Content:
Call to Action:
Footer:
Colors Tab
The Colors tab customizes the color palette of the public landing page.
Colors are entered as hex values (e.g. #4f46e5). They are injected as CSS variables into the landing page theme provider at render time.
Color changes only affect the public landing page. The dashboard uses its own separate design system and is not affected by these settings.
Each clinic type ships with a default color palette:
Customizing colors overrides these defaults. To reset to defaults, clear the color fields and save — the built-in defaults will be applied automatically.
Content Tab
The Content tab controls layout and display options for landing page sections.
Test the landing page in a new browser tab after saving content changes to review the result.
SEO Tab
The SEO tab configures search engine metadata for the public landing page.
SEO best practices:
Example:
Meta Title:
CareNova Dental — Expert Dental Care in Casablanca
Meta Description:
Book appointments, manage your dental records,
and access personalized care at CareNova Dental
Clinic. Modern dentistry for the whole family.Update SEO fields before launching the public landing page — they directly affect how your clinic appears in search engine results.
Contact Tab
The Contact tab sets the clinic's publicly displayed contact information.
These values appear in the contact section of the landing page and in the footer. They are also stored on the clinics table and used across other parts of the platform.
Social Tab
The Social tab links your clinic's social media profiles. Configured links appear as icons in the landing page footer and contact section.
Leave any platform blank if your clinic does not use it — empty links do not render an icon.
Landing Page Assets
In addition to the settings configured here, the landing page displays images — hero backgrounds, service icons, team photos — stored in Supabase Storage.
Accepted formats: JPEG, PNG, WebP, SVG.
Default assets load from public/landing/ in the application folder. Images uploaded via Supabase Storage override the defaults.
Confirm the
landing-assetsbucket exists in Supabase Storage and is set to Public before uploading. See the Supabase Setup guide.
Clinic Type and Landing Page
The landing page layout adapts based on the active clinic type set in Dashboard → Settings → Clinic:
The settings configured in Landing Settings apply to whichever clinic type is currently active. Changing the clinic type changes the layout but preserves your saved settings.
To preview any clinic type without changing your actual settings, append a query parameter to the URL:
https://yourdomain.com/?clinic=dental
https://yourdomain.com/?clinic=ophthalmology
https://yourdomain.com/?clinic=generalSee the Clinic Type / Demo Mode guide for full details.
Multilingual Landing Page
CareNova supports four languages on the public landing page:
Visitors switch language via the selector in the landing page header. The selected language is stored in a landing_locale browser cookie.
Translated copy is defined in:
messages/landing/{dental|general|ophthalmology}/{locale}.jsonTo customize translated text, edit the relevant JSON file for your clinic type and language. This requires a code change — translations are not editable from the Landing Settings UI.
Resetting to Defaults
To discard all custom landing settings and return to the built-in defaults, run the following in Supabase SQL Editor:
DELETE FROM landing_page_settings
WHERE clinic_id = (SELECT id FROM clinics LIMIT 1);The landing page immediately falls back to the built-in defaults for your clinic type. You can then reconfigure from scratch.
Database Schema Reference
landing_page_settings
One row per clinic — enforced by the unique constraint on clinic_id.
Workflow Examples
Configuring the landing page for the first time:
Sidebar → Landing Settings
Branding tab — enter clinic name, upload logos and favicon, write hero tagline and subtitle, set CTA button text and link → Save
Colors tab — set primary and accent colors → Save
SEO tab — write meta title and description → Save
Contact tab — enter email, phone, address → Save
Social tab — add social media URLs → Save
Open public URL in a new tab to review the result
Updating hero text for a seasonal promotion:
Sidebar → Landing Settings → Branding tab
Update Hero Tagline and Subtitle
Update CTA Button Text (e.g. "Book Your Free Checkup")
Save and review on public page
Changing brand colors after a rebrand:
Sidebar → Landing Settings → Colors tab
Update Primary Color hex value
Update Accent Color hex value
Save — colors update immediately on the public landing page
Troubleshooting
Changes not appearing on the public landing page:
Hard refresh the browser (Cmd+Shift+R / Ctrl+Shift+R)
Settings are cached server-side — wait a few seconds after saving
Confirm the save was successful — check for a success toast notification
Check Supabase → Table Editor → landing_page_settings to confirm the record was updated
Logo not displaying after upload:
Confirm the
logosstorage bucket exists in Supabase and is set to PublicConfirm the file is under 2MB and in an accepted format
Paste the uploaded file URL directly in the browser to confirm it is publicly accessible
Landing Settings not visible in sidebar:
This module is Admin only
Confirm you are logged in with an Admin account
Confirm
settings.viewpermission is granted in Dashboard → Permissions
Landing page showing wrong clinic type layout:
Check for a
landing_clinic_democookie in your browser — it overrides the database settingClear the cookie or open in a fresh incognito window
Confirm clinic type is set correctly in Dashboard → Settings → Clinic
Colors not updating on the landing page:
Confirm the hex value includes the
#prefix (e.g.#4f46e5)Hard refresh after saving — old CSS variables may be cached
SEO metadata not updating in search results:
Search engine indexes take time to update — changes may not appear in Google for several days to weeks
Verify metadata is correct by viewing the page source and checking the
<title>and<meta name="description">tags
Next Step
Continue to the Blog & News module guide to learn how to create and manage public-facing clinic blog posts and news articles in CareNova.