Skip to content

Settings

The settings section allows users to manage their account configuration. It uses a dedicated layout with a sidebar for navigating between settings sub-pages.

RouteFileDescription
/settings(app)/settings/+page.server.tsSettings index (redirects to profile)
/settings/profile(app)/settings/profile/+page.svelteEdit display name, bio, avatar
/settings/account(app)/settings/account/+page.svelteEmail, username, account actions
/settings/security(app)/settings/security/+page.sveltePassword, two-factor authentication
/settings/privacy(app)/settings/privacy/+page.svelteVisibility, blocking, data controls
/settings/notifications(app)/settings/notifications/+page.svelteNotification preferences
/settings/social(app)/settings/social/+page.svelteSocial media links

All routes are protected (authentication + onboarding required).

The settings section has its own +layout.svelte and +layout.server.ts at (app)/settings/. The layout renders a sidebar with links to each sub-page, nested inside the main app shell.

Allows users to update their public profile information:

  • Display name (first name, last name)
  • Username
  • Bio / about text
  • Profile avatar upload
  • Cover image

Manages core account details:

  • Email address
  • Username changes
  • Account deletion or deactivation

Password and authentication management:

  • Change password
  • Enable/disable two-factor authentication (2FA)
  • Active sessions management

Controls who can see and interact with the user’s content:

  • Profile visibility (public, followers-only, private)
  • Who can send messages
  • Who can see activity status
  • Blocked users management
  • Data export/download

Notification settings (/settings/notifications)

Section titled “Notification settings (/settings/notifications)”

Granular control over notification delivery:

  • Email notification preferences
  • Push notification preferences
  • Per-category toggles (follows, likes, comments, mentions, system)

Manage linked social media profiles and external links displayed on the user’s profile page.