# Personal Accounts

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

*Canonical: https://makerkit.dev/docs/nextjs-prisma/personal-accounts/overview*

---

Every MakerKit user gets personal account context automatically on sign-up. Personal settings - profile, security, preferences - remain separate from organization workspaces and stay available 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](./dashboard)** - Personal dashboard
2. **[Profile Settings](./profile-settings)** - Name and image
3. **[Security Settings](./security-settings)** - Password, email, MFA
4. **[Preferences](./preferences)** - Theme and language
5. **[Authorization Policies](./authorization-policies)** - Custom account deletion rules

## Common Pitfalls

- **Confusing personal context with organization context**: Personal mode is derived from the current session having no active organization. Organization mode uses `session.activeOrganizationId`.
- **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.
- **Assuming a shared `accounts` table exists**: Personal context comes from the authenticated user plus active organization state, not from a separate personal-account row.

{% faq
   title="Frequently Asked Questions"
   items=[
     {"question": "What is the difference between personal accounts and team accounts?", "answer": "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."},
     {"question": "Can I disable personal accounts entirely?", "answer": "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."},
     {"question": "How do I detect personal context in code?", "answer": "Use getAccountContext() on the server or useAccountContext() on the client. Personal context means there is no active organization in the current session."},
     {"question": "What happens when a user deletes their personal account?", "answer": "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."},
     {"question": "Is there a separate personal-account row in the database?", "answer": "No. Personal context is derived from the authenticated user and the absence of an active organization. Organizations are stored separately and joined through memberships."}
   ]
/%}

---

**Next:** [Dashboard →](./dashboard)
