Quickback Docs

With Quickback

How the Account UI is configured and built into your compiled Quickback Worker.

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:

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:

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:

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

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

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

See Multi-Domain Architecture for details on hostname routing and cross-subdomain cookies.

Auth Feature Flags

Feature flags control which pages are included in the build:

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 for all options.

Next Steps

On this page