Set up the Email Framework

After purchase you have two install paths — the private npm registry (lifetime updates via pnpm up) or a self-contained zip. Both deliver the same engine, CLI, skills, and templates. Path A starts from the public scaffolder; Path B is a self-contained zip — no scaffolder, and no private registry or GitHub Packages token (the bundled starter still runs pnpm install to pull public deps like React).

Start: scaffold a project

The public scaffolder bootstraps email.config.ts, a welcome starter, the .claude/ skills, and the scripts. Path A only — the Path B zip already bundles a ready-to-run starter-project, so skip this step if you’re installing from the zip.

npx create-adsights-email@latest my-emails
cd my-emails

Path A — private npm registry (≈5 min)

Lifetime updates via the registry. Needs a free GitHub token.

  1. 1

    Add your GitHub token

    Create a token with read:packages scope, then:
    cp .npmrc.example .npmrc
    # paste your token where it says YOUR_TOKEN_HERE
    We grant your GitHub handle access to the email-framework-buyers team at checkout (using the handle you provide). Set it later from your account if you skipped it.
  2. 2

    Install

    pnpm install

Path B — self-contained zip (≈3 min)

No scaffolder, no private registry, no token — the private packages are bundled (public deps still install from npm).

  1. 1

    Download + unzip

    Grab the latest zip from your account and unzip it anywhere. It bundles the pre-packed packages, the .claude/ skills, and a ready-to-run starter-project/ — you do not need the scaffolder step above for this path.
  2. 2

    Install from the bundled starter-project

    cd adsights-email-framework-v*/starter-project
    pnpm install   # private pkgs from ../packages/*.tgz — no .npmrc, no GitHub Packages
    The bundled starter-project/package.json already points its dependencies at the local tarballs, so install never touches GitHub Packages.

Configure + render

  1. 1

    Set your brand + sender (required before sending)

    Open email.config.ts and set a real sender.postalAddress and sender.unsubscribeUrl — both are legally required (CAN-SPAM / GDPR) — plus your hosted logo URLs. Or run /email-init in Claude Code to do it interactively.
  2. 2

    Render your first email

    pnpm email:render welcome        # → out/welcome__apple-mail.html (+ .txt)
    pnpm email:render-all welcome    # → every enabled client profile + a manifest
    Open the out/*.html in a browser to preview, then upload the HTML + plaintext to your ESP (Klaviyo, Mailchimp, Customer.io, Postmark, …).
  3. 3

    Or let Claude drive it

    In Claude Code: /email-quickstart "<your product>" renders a brand-applied email in under five minutes; /email-review runs an adversarial deliverability pass before you send.
Stuck? Your license + install instructions are always on your account, or see the skills reference.