# Distribution channel for alpha

Decision needed before the first alpha invite. Four options ranked by friction-to-recipient.

---

## Option A — Public GitHub release zip

What: Tag `v0.1.0-alpha` on master, push, GitHub auto-generates a download zip. INSTALL.md tells the recipient to download the zip, unzip, `cd` in, `bash scripts/install.sh`.

**Recipient friction:** download → unzip → terminal. ~3 steps.
**Your setup:** add the recipient as a collaborator OR make the repo public.
**Updates:** `git pull` works after they clone — but the zip path doesn't. They'd re-download for each update.

⚠️ Requires the repo to be public or per-user-shared. If private, every recipient needs a collaborator invite.

---

## Option B — `git clone` + collaborator access

What: Stay on the private repo. Invite the alpha PM as a collaborator. They `git clone` + `install.sh`. INSTALL.md already documents this flow.

**Recipient friction:** GitHub account → accept invite → terminal. ~3 steps.
**Your setup:** add ~5 collaborators manually as you invite people.
**Updates:** seamless `git pull` for everyone.

✅ Lowest setup cost for you, no exposure of code beyond invited users. ⚠️ Requires each invitee to have GitHub.

---

## Option C — Public `curl … | bash` one-liner

What: Host a small bootstrap script on a personal domain (`knitor.pavelracu.com/install`) or GitHub Pages. The bootstrap clones (from a public mirror repo or fetches a tagged zip) and runs `install.sh`.

**Recipient friction:** terminal only. 1 step:
```bash
curl -fsSL https://knitor.pavelracu.com/install | bash
```

**Your setup:** Cloudflare Pages / GitHub Pages with one file; public mirror repo; possibly DNS.
**Updates:** depends on how you build it — if it always clones latest, seamless.

⚠️ Curl-pipe-bash is a security smell. Sophisticated users hate it. PMs probably don't care.

---

## Option D — Homebrew tap

What: Host a `pavelracu/knitor` tap. `brew install pavelracu/knitor/knitor` installs Bun + clones the repo + builds + creates a `knitor` command that runs `bun start` from the clone.

**Recipient friction:** terminal only. 2 steps:
```bash
brew tap pavelracu/knitor
brew install knitor
```

**Your setup:** Tap repo + Homebrew formula + bottle hosting. ~2 hours to set up the first time, free after.
**Updates:** `brew upgrade knitor`.

⚠️ Most professional but most setup. Worth it if you expect to send invites for months.

---

## My recommendation

**Start with Option B (git clone + collaborator) for the first 3–5 invites.**

Reasoning:
- No new infra to maintain
- Updates are seamless (`git pull` already works)
- The friction added by GitHub-collaborator-invite is real but tiny for the kind of person you're inviting (PMs who can navigate `git clone` are also comfortable accepting a GitHub invite)
- You learn what breaks before committing to a public distribution surface

**After 3–5 successful installs:**
- If invites continue and people complain about the GitHub step → switch to **Option C (curl | bash from public mirror)**
- If you want to position knitor as a "real product" before public alpha → set up **Option D (Homebrew tap)**

Don't pre-build C or D. Both are reversible.

---

## What ships now

If you agree with Option B:

1. **Decide the public-vs-private question.** Stay private + invite collaborators. (No code change.)
2. **Tag `v0.1.0-alpha` on master** once Tier 1 ships:
   ```bash
   git tag -a v0.1.0-alpha -m "Alpha-internal release — ready for first invites"
   git push origin v0.1.0-alpha
   ```
3. **Send invites with this template:**
   ```
   Hey [name],
   
   I'm building a Head of Product co-pilot called knitor. It surfaces
   what needs your attention from Linear/Notion/files, lets you chat
   with Claude with your workspace as context, and replaces the
   "what do I do next" tab.
   
   I'd love your eyes on it. 10-15 min install:
     1. https://github.com/pavelracu/head-of-product-ui-v2/invitations → accept
     2. Follow INSTALL.md
   
   Bug reports / weirdness → please share screenshots over text.
   
   — Pavel
   ```

If you'd rather start with another option, tell me and I'll set it up.
