Personal Accounts

Manage personal account features including dashboard, profile, settings, and account deletion.

Every MakerKit user gets a personal account automatically on sign-up. Personal accounts store user-specific settings - profile, security, preferences - separate from team/organization workspaces. The personal account uses the same accounts table as team accounts (with is_personal_account = true), enabling unified billing and permissions logic. Access personal settings at /settings whether you're using personal-only or organizations-enabled mode.

A personal account is the individual workspace created for each user at sign-up, containing user-specific data and settings distinct from shared team accounts.

Features

  • ✅ Personal dashboard (with mock data, for demonstration purposes)
  • ✅ Profile management (name and image, account deletion)
  • ✅ Security settings (password, email, MFA)
  • ✅ Custom account deletion policies

Topics

  1. Dashboard - Personal dashboard
  2. Profile Settings - Name and image
  3. Security Settings - Password, email, MFA
  4. Preferences - Theme and language
  5. Authorization Policies - Custom account deletion rules

Common Pitfalls

  • Confusing personal account ID with user ID: In personal context, they're the same (user.id === account.id). In team context, they differ. Always use the appropriate ID for your query context.
  • Forgetting personal accounts exist in organizations-only mode: Users still have personal accounts - they're hidden from navigation but accessible at /settings. Account deletion still applies.
  • Deleting personal account without understanding cascade: Deleting a personal account deletes the user entirely. There's no soft delete by default - implement one if you need account recovery.
  • Querying accounts without filtering: Personal and team accounts share the accounts table. Filter with is_personal_account when you need only one type.

Frequently Asked Questions

What is the difference between personal accounts and team accounts?
Personal accounts store individual user data (profile, preferences, security settings) and are created automatically at sign-up. Team accounts are shared workspaces for collaboration with multiple members, roles, and shared billing.
Can I disable personal accounts entirely?
No. Every user has a personal account for identity management. In organizations-only mode, the personal dashboard is hidden but settings remain accessible at /settings.
How do I query only personal accounts from the database?
Filter the accounts table with is_personal_account = true. For team accounts, use is_personal_account = false.
What happens when a user deletes their personal account?
The user and all associated data are permanently deleted. Active subscriptions must be cancelled and owned organizations transferred first. This behavior is controlled by authorization policies.
Is the personal account ID the same as the user ID?
Yes. For personal accounts, account.id equals user.id. This differs from team accounts where account.id is independent of any user ID.

Next: Dashboard →