AutoBlocksCalm automation for everyday life

Account and settings

Account settings live at autoblocks.run/settings. Here you view your profile, switch theme, manage notification preferences, read your in-app inbox, and sign out.

UI: apps/product-web/src/features/settings/settings-panel.tsx. API: apps/api/src/modules/auth/routes.ts, apps/api/src/modules/notifications/routes.ts.


Settings sections

SectionWhat you control
AccountDisplay name and email (read-only in Phase 1 UI)
AppearanceLight / dark theme toggle
NotificationsEmail on failure, email on complete, in-app enabled
In-app inboxRecent notifications; mark read
Sign outEnd session

Account profile

FieldSourceEditable in UI
NamedisplayName from sessionDisplay only (Phase 1)
EmailAuth user recordDisplay only (Phase 1)
WorkspacetenantId from sessionAutomatic on signup

Session endpoint: GET /auth/session (requires login).

sequenceDiagram
  participant You
  participant Settings
  participant API

  You->>Settings: Open /settings
  Settings->>API: GET /auth/session
  API-->>Settings: user + tenantId
  Settings->>API: GET /tenants/:id/notification-preferences
  API-->>Settings: preferences
  Settings-->>You: Render panels

Appearance

Theme preference is stored locally in your browser via the theme controller (apps/product-web/src/components/theme-controller.tsx).

ModeBehavior
LightDefault calm palette
DarkReduced glare for evening use

Tap Theme: Light/Dark to toggle. Does not sync across devices in Phase 1.


Notification preferences

ToggleAPI fieldRecommended
Email when a run failsemailOnFailureOn (default)
Email when a run completesemailOnRoutineCompleteOff unless you want every success email
In-app notificationsinAppEnabledOn (default)

Changes save via PATCH /tenants/:tenantId/notification-preferences.

Email delivery uses Resend in production (RESEND_API_KEY, RESEND_FROM_EMAIL in render.yaml).


In-app inbox

When in-app notifications are enabled, the inbox section on Settings lists recent items.

ActionAPI
ListGET /tenants/:tenantId/notifications
Mark readPATCH /tenants/:tenantId/notifications/:notificationId/read

Component: apps/product-web/src/features/notifications/in-app-inbox.tsx.


Sign out

StepResult
Tap Sign out on SettingsPOST /auth/sign-out
Session cookie clearedRedirect to login

Sign out from the dashboard nav area on mobile via Settings.


Auth routes reference

MethodPathPurpose
POST/auth/sign-upRegister + create tenant
POST/auth/sign-inLogin
POST/auth/sign-outLogout
GET/auth/sessionCurrent session

Product forms: apps/product-web/src/features/auth/auth-form.tsx.


Billing vs settings

ConcernRoute
Plan, trial, usage, checkout/billing
Profile, theme, notifications/settings

Do not expect plan changes under Settings — use Billing and plans.


Security practices

PracticeWhy
Sign out on shared devicesSession cookie grants full access
Keep webhook URLs privatePath token is a secret
Review notification emailsConfirms unexpected failures quickly

Related reading