# With Quickback

Account UI is part of the Quickback Stack. The compiler builds it from source and bundles it into your Worker — there is no separate npm package or standalone deploy path.

## Compiler-Embedded

Add `account` to your `quickback.config.ts`:

```typescript title="quickback/quickback.config.ts"
export default {
  name: "my-app",
  template: "hono",
  account: {
    domain: "auth.example.com",
    name: "My App",
    companyName: "My Company",
    auth: {
      password: true,
      passkey: true,
      organizations: true,
      admin: true,
    },
  },
  // ...providers
};
```

Then compile and deploy:

```bash
quickback compile
npx wrangler deploy
```

### What Happens During Compilation

1. The compiler stages the **generic prebuilt** Account bundle (built once per compiler release — no per-project Vite build runs) into your output directory, rewriting only the `<title>` with your app name
2. The generated worker carries your per-project values (URLs, branding, auth feature flags) and injects them into every served Account shell as `window.__QUICKBACK_RUNTIME`
3. The SPA resolves each value runtime blob → baked `VITE_*` env → default, so the generic bundle behaves exactly as a per-project build would — the `VITE_*` env path remains for serving the assets outside a Quickback worker

Account assets go to `src/apps/account/` and are served at `/account/` (the root serves your API landing page, or the CMS when enabled).

### Custom Domains

With a custom domain, the Account SPA is served at root (`/`) on that domain:

```typescript
account: { domain: "auth.example.com" }
```

Add an admin domain to serve the admin panel on its own subdomain:

```typescript
account: {
  domain: "auth.example.com",
  adminDomain: "admin.example.com",
}
```

See [Multi-Domain Architecture](/configure/domains) for details on hostname routing and cross-subdomain cookies.

### Auth Feature Flags

Feature flags control which pages are included in the build:

```typescript
auth: {
  password: true,       // Email/password login + inline password change
  emailOTP: false,      // Email OTP login flow
  passkey: true,        // WebAuthn passkey setup + management
  organizations: true,  // /dashboard org list, org management, invitations
  admin: true,          // Admin panel (user management)
}
```

Disabled features guard themselves at runtime — the routes exist in the generic bundle but redirect away and hide from navigation when their flag is off. See [Configuration](/configure) for all options.

## Next Steps

- [Configuration](/configure) — CMS and Account config reference
- [Multi-Domain Architecture](/configure/domains) — Custom domains and hostname routing
- [Environment Variables](/ui/account/environment-variables) — Complete variable reference
- [Feature Flags](/ui/account/features) — Enable and disable features
- [Auth Hooks](/ui/account/hooks) — Run project code on signup, login, and session events
- [Customization](/ui/account/customization) — Branding, labels, and theming
