# License keys and deployment

Set a key before creating the product and check each product line in the real deployment environment.

First confirm scope through [free evaluation and community licenses](/en/classic/free) or [commercial use](/en/classic/commercial). Setting a key does not grant access to every package or replace an agreement.

## Configure and check

Before creating Classic in the browser, use `@quirekit/license` to set the application's supplied key. Commercial components on the page share this state; changing the key causes mounted license notices to recheck.

### recipes/license.ts

```ts
import { checkQuireKitLicense, setQuireKitLicense, type QuireKitLicenseCheck } from "@quirekit/license";

/**
 * Configures the page's issued key before creating Classic and checks its Standard product line.
 * @param key - Key supplied by the deployment, or null for evaluation.
 * @returns The public check result for host feedback; product components own their notices.
 */
export async function configureClassicLicense(key: string | null): Promise<QuireKitLicenseCheck> {
  setQuireKitLicense(key);
  return checkQuireKitLicense("classic");
}

```

This recipe checks Classic Standard, `classic`. Check `classic-pro` or `export` when needed; the license runtime resolves issued product coverage. The integration example's `licenseKey` is a host component property, not a top-level `createClassicEditor()` option.

## Interpret results

| `status` | Meaning | Host behavior |
| --- | --- | --- |
| `licensed` | The current environment passes verification | Continue using installed capabilities |
| `evaluation` | No key was supplied | Product components display the required notices |
| `invalid` | Verification failed or the key does not apply | Inspect `reason`, product coverage, domain and version |

Common reasons include `product`, `domain` and `updates-expired`, plus signature, format and revocation failures. Failure restores evaluation notices; it does not delete content or block editing. Actual use must still meet its license terms.

## Deployment environments

Keys are verified offline and need no activation server. Applications use issued keys; the signing private key stays outside the client.

The current development exemption only covers HTTP(S) local hosts/development domains on explicit ports. This site's `127.0.0.1:3220` preview hides evaluation notices and therefore does not prove production licensing is configured. Packaged desktop/mobile applications and headless production tasks cannot replace production authorization with a development-style domain.

Before release, check installed product lines, key coverage and version on the actual domain. Also verify editing, read-only mode, JSON persistence and required exports. This site's Nuxt host reads `NUXT_PUBLIC_QUIREKIT_LICENSE_KEY`; ordinary Vue projects use the same public SDK without Nuxt.
