Files
e02bd5330d feat(cloud): launch pricing guardrails — egress caps, ignore defaults, storage tiering (#114)
QuotaProvider grows a read half: CheckRead(org, bytes) and RecordEgress(org, bytes). CheckRead is enforced on /s/* only — a public share link is the sole unauthenticated door to stored bytes, so it is the only egress a plan can cap. The sync proxy and viewer merely RecordEgress: refusing a device mid-cycle surfaces as ErrForbidden, which the syncer reads as "access is gone — pause and touch nothing", and sync must never break over a bill. UnlimitedQuota stays the OSS default. countingWriter bills what actually reached the client rather than a size claimed before the write.

bdrive init warns past 1 GiB or 20k files and says how to narrow scope; syncer.Measure sizes that through the real Filter and the one walkFolder predicate. starterIgnore gains video/archive/disk-image globs and Library/ — every version is kept forever, so a big binary committed once is paid for forever on every device.

deploy: a Nearline-at-30-days lifecycle rule and the arithmetic for why it stops there. Coldline and Archive only pay off below roughly one read per month, and a first sync pulls every historical blob rather than just the current tree, so blob read rate tracks device onboarding.

docs/launch-plan.md said Cloud was waitlist-only and framed Product Hunt as an OSS launch whose goal was not signups or revenue; both are stale.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 19:16:42 +09:00

4.2 KiB
Raw Permalink Blame History

GTM handoff — actions only Snow can take

Everything the GTM loop cannot do from inside the repo, prioritized. Draft copy is ready to paste; adjust voice as you like.

P0 — do before anything else (minutes each)

  1. Enable GitHub Discussions on runbear-io/beardrive (Settings → Features). Then add categories: Announcements, Q&A, Ideas, Show & tell. CONTRIBUTING.md already links "where to ask" there.

  2. Set GitHub repo topics: ai-agents, claude-code, file-sync, sync, agent-memory, self-hosted, golang, agpl. (Repo → About → gear.)

  3. Set the repo social-preview image (Settings → Social preview): use docs/assets/insights.png for now — it's the most striking frame; replace with a branded card later.

  4. Repo About blurb → paste:

    The open-source Google Drive for AI agents: one folder your team and their agents share — synced in seconds, every change attributed, with read analytics. Self-host in one Go binary. Website field: https://beardrive.ai.

  5. Verify the install path from a clean machine (the #1 CTA must not 404 on launch day): brew install runbear-io/tap/beardrive && bdrive version, and go install github.com/runbear-io/beardrive/cmd/bdrive@latest. If the tap is stale, cut a fresh goreleaser release first.

  6. Verify the full first run, not just the binary: on a clean machine, bdrive login <a working hub> && bdrive init && edit a file && bdrive log must succeed end to end. Until BearDrive Cloud is live, every try-path (README, website, launch posts) must route people to self-hosting — bare bdrive login defaults to beardrive.ai and MUST NOT be advertised until that hub actually accepts logins. Gate any launch on this check.

  7. Seed 35 good first issue / help wanted issues from ROADMAP.md (more agent platforms in bdrive hooks install; per-path access scopes design discussion; demo assets; docs gaps) — CONTRIBUTING.md promises curated starter issues; make it true.

P1 — demo assets (an hour)

  1. Record a 4560s demo GIF/video for the README hero and any launch post. Script (uses two terminals + a browser):
    • T1: bdrive init --name demo --yes in a folder with a few notes → show bdrive status (daemon running).
    • T1: have Claude Code write wiki/findings.md (or just edit it) → within seconds…
    • T2 (second machine/dir): the file appears; bdrive log -n 3 shows the change attributed to the agent session.
    • Browser: the hub's History view for that file, then Insights.
    • T1: bdrive share wiki/findings.md → open the public URL. Tools: vhs (charmbracelet) or QuickTime + gifski. Put the result at docs/assets/demo.gif and add it above the fold in README.
  2. Verify beardrive.ai serves the updated landing page (now cloud/web/landing/, served by the hub itself at / for signed-out visitors) after the next deploy.

P2 — when you're ready to be seen (launch window)

  1. Show HN post — full drafts in launch-plan.md: title, body, and the first-comment founder note. Post from your account; be present for the first 3 hours to answer everything.
  2. Product Hunt — drafts in launch-plan.md. Schedule after HN, not the same day. This one launches BearDrive Cloud, which is live with open signup and a public /pricing page; there is no waitlist and no mailto form anywhere, so nothing needs replacing before PH.
  3. Agent onboarding discoverability — announce the paste-prompt onboarding (INSTALL_FOR_AGENTS.md) wherever agent users gather. There is no Claude Code plugin or marketplace entry to submit — the integration is internal/agenthooks plus that runbook.

P3 — measurement plumbing (see metrics.md)

  1. Turn on GitHub traffic watching: stars/clones/views are under Insights → Traffic; consider a weekly note of the numbers in Discussions → Announcements.
  2. Homebrew install counts: brew info --analytics runbear-io/tap/beardrive (public analytics take ~30 days to appear).
  3. Decide on hub-side opt-in telemetry (proposal in metrics.md — requires your explicit approval before any implementation; nothing is wired today).