Smoke test required

...

← All documentation

Documentation

GTM Plan

**Status:** active · last reviewed 2026-05-03

source: docs/grand-plan/GTM_PLAN.md

Go-to-market spine. Launch sequence, business model, content strategy, support + abuse policy, success metrics. Reads after MANIFESTO.md. The first year, plotted.

Status: locked 2026-04-27 (Phase A pre-launch). v1 GTM plan. Bar: 10/10 across vision + craft + go-to-market. No category falls below A.


1. The plan in one paragraph

Phase A ships single-user (Kevin’s Ensemble dogfoods). Phases B–C deepen the experience while building publicly visible content (showcase pages, the orchestra Studio, the Canvas map) on Kevin’s Ensemble — so by the time we open multi-tenancy, there’s already proof of what it looks like at peak. Phase D opens via a curated 25-person closed beta of hand-picked makers seeded across creative domains. Phase E + open registration follow once the beta is dialed. The first public launch moment is Show HN + Product Hunt + a blog-ready manifesto post, timed when there are 100 active Ensembles with public Studios and the showcase feed has visible quality. Targets: 100 in beta by launch month, 1,000 paid in year one, 10,000 active by year two.


2. Launch sequence

Six waves, sequenced over ~9 months from now. Each wave is gated by a quality bar, not a date.

Wave 0 — Single-user dogfood (Phases A–C, ~6 weeks)

Goal: Phases A, B, C ship on Kevin’s Ensemble. The Studio is dialed. The Canvas map looks great. Showcase pages are ready to share.

Marketing during this wave: - Zero. No tweets, no waitlist page, no announcements. - Dogfood with Kevin and 1–2 trusted reviewers (Owen, possibly an early friend). - Internal notes captured at docs/playtest-notes.md.

Exit criteria: - Kevin has used his own Studio Room daily for 2+ weeks. - 5 built-in presets are all dialed (Apple-quality, no template-feeling). - Sprite library has ~85–100 sprites total (per PRODUCT_SPEC.md §3.3 — a deliberate quality-over-quantity step down from the morning spec’s 80+200 split). - Claude chat in edit mode produces useful output 80%+ of the time. - Showcase pages exist for at least 4 of Kevin’s 8 chats. - Map tab works with a real relates_to graph.

Wave 1 — Stealth waitlist (~2 weeks)

Goal: Build a 200-person waitlist of the right people without ever publicly announcing.

Marketing: - Single landing page at ensemble.tld with: hero (the collective showcase grid in seed form — Kevin’s own canvases plus 4–8 placeholder featured slots filled with the procedurally-generated canvases of pre-onboarded Wave-0 friends, animating live), the manifesto (essay-form, not feature list), a “Get notified” form. No screenshots of features. No feature list. (Wave 1 is pre-Chunk 5; this seed grid is the v1.0 collective-showcase grid in its earliest populated state, not a separate manifesto-only page.) - Page is shared only by Kevin in personal DMs to people whose work he’d want on the platform. Zero broadcast. - Each invite is personal: “I made this with you in mind because of [specific work]. Want early access?” - Goal: 200 hand-picked names, with notes on each (“indie iOS dev, ships with Claude,” “music producer, big Substack”).

Exit criteria: - 200 named waitlist entries. - 10 of those have replied with substantive interest (not just “sign me up”). - Kevin has written follow-up notes to all 200 explaining what’s next.

Wave 2 — Closed beta (Phase D, 25 people, ~6 weeks)

Goal: First 25 multi-tenant users. Each personally invited. They become the showcase + feed seed.

Marketing: - Personal invitations to the 25 highest-fit waitlisters (drawn from the personas in the manifesto §6). - Each invitation includes: their handle reserved, a “first you should…” onboarding doc, a private Slack/Discord for beta feedback. - Phase E (feed) ships during this wave. Beta members are the first feed contributors. Their Studios + showcase pages seed the feed with high quality. - Feedback loop: weekly beta-only office hours over Zoom (Kevin host, ~30 min, 6–8 people each).

Exit criteria: - 25 active users (defined: at least one save in the Studio, at least one public showcase page). - Feed has ~200 events. - Studio reliability >99% (no data loss). - Claude integration works for everyone (no rate-limit bottlenecks). - Net Promoter Score from beta members: 8.5+.

Wave 3 — Soft public launch (~4 weeks)

Goal: First 250 public signups. The platform handles itself without Kevin manually intervening.

Marketing: - The remaining 175 waitlisters get invited. - The blog (at ensemble.tld/journal) goes live with the manifesto + 2–3 case studies of beta users (with their permission). - Twitter / Bluesky presence opens — only sharing beta-user work, not “buy our product.” - Are.na block published at are.na/ensemble. - The waitlist landing page becomes a public homepage.

Exit criteria: - 250 signups. - 100 active (defined: 1+ save in Studio + 1+ public showcase). - Daily active users at ~30% of total (high engagement signal). - Support volume <2 tickets/day (sustainable).

Wave 4 — Show HN + Product Hunt (the launch moment)

Goal: The “we exist” moment. Done deliberately, once everything is ready.

Timing: when 100+ active Ensembles have public Studios visible AND the feed has 1000+ events AND 10+ stand-out showcase pages. Not before. Could be 3–6 months after Wave 3 starts.

Surface: - Show HN post linking to the live homepage + a curated showcase URL. - Product Hunt with a one-image hero (animated GIF of Kevin’s orchestra Studio). - A blog post on the day-of: “Building Ensemble: a year of solo making with Claude” — the founder’s-letter format. 3000-5000 words. Personal, specific, not promotional. - The launch is not the moment we ask for money. We ask for sign-ups, feedback, and curiosity.

Goal: 2,000 signups in 7 days. 500 active. Featured on PH #1–5 product of the day.

Wave 5 — Steady-state growth

Goal: Year 1 close at 1,000 paid users (~10% conversion of 10k signups).

Mechanisms: - Showcase pages naturally rank for project-name SEO. - Studio Rooms are screenshot-able + shareable on Twitter / Bluesky / Are.na. - Each public profile is a referral surface (people see what others built and want to try it). - Featured weekly: one outstanding new Ensemble member highlighted on the homepage + in the feed. - No paid acquisition in year 1.


3. The first 10 hand-picked beta users

Drawn from the personas in the Manifesto §6. These are TARGETS, not commitments. The actual roster is built during Wave 1.

# Persona Why they’re #1–#10
1 Indie musician with multi-platform release strategy Brings non-developer audience signal. The Studio puts Bandcamp + Substack + YouTube + Patreon in one walkable place.
2 Indie game developer with portfolio of releases Click-to-launch is the canonical demo: arcade cabinets that boot real games. Power-user of Studio sprite library.
3 Newsletter writer with adjacent podcast + recommendations Showcase pages + the bookshelf-as-essay-portfolio pattern. Tests long-form click-to-read.
4 Product designer building personal moodboard practice Most invested in Studio sprite-authoring depth. Tests the creative upper bound.
5 Illustrator with commissions + tutorials + Patreon Studio-as-gallery. Tests hover reveals + click-to-read at scale.
6 Two-person creative agency (small business case) Validates pitch-deck-as-Studio framing. Tests multi-author Rooms / Canvas curation.
7 Indie SaaS founder running personal + company brand Validates the dual-Ensemble (Pro tier 3 Ensembles) flow.
8 Educator / course creator Showcase as portfolio + landing page. Tests the public-facing surface.
9 Local creative business (restaurant, shop, studio) Validates beyond-software audience. Studio-as-storefront with chalkboard-menu sprites.
10 Multi-disciplinary creator (writes + makes + ships) Tests the canvas-as-snapshot mechanic — three Canvas slots match three disciplines.

Each gets: - Their handle reserved. - A 1-on-1 onboarding session (30 min over Zoom). - A personalized welcome note in the feed (Kevin’s message visible to them). - Direct Slack/Discord channel. - Free Pro tier for life (the first 25 beta users specifically).


4. Content strategy

What we publish; what we don’t.

4.1 The blog (ensemble.tld/journal)

Cadence: 2 posts/month. 1500–4000 words each. No sponsored content, no roundups, no listicles.

Category Cadence Tone
Founder’s letters Monthly Personal, narrative, what’s been built and why.
Beta-user case studies (with permission) Monthly Long-form portrait of one Ensemble member’s work.
Design diaries Quarterly The craft behind a specific decision (e.g. “Why pixel sprites in vector rooms”).
Manifesto-class essays Rare, 1–2/year Big arguments. The “why this exists” pieces.

Reference style: The Browser Company’s Notes app, Stripe’s blog circa 2018, Are.na’s editorial.

4.2 Social

  • Twitter / Bluesky — share beta-user work. Quote-amplify, never broadcast our own. Personal voice, not corporate.
  • Are.na — block called “Ensemble.” Curate showcase URLs from the platform + relevant outside references that show the genre.
  • Mastodon — minimal presence. Mirror Bluesky.
  • LinkedIn — none. The audience isn’t there for this product.
  • Newsletter — Substack at ensemble.substack.com. Two posts/month, mostly mirroring the blog. CTA: try the live thing.

4.3 What we don’t do

  • No SEO-bait roundup posts.
  • No “X tips for using AI” listicles.
  • No comparison posts (“Ensemble vs. Replit”).
  • No paid social ads (year 1).
  • No press releases.
  • No webinars.
  • No “AI tool of the day” tweets.

The discipline is: everything we publish is something a thoughtful reader would want to read on its own merit, not because it’s strategically positioned content.


5. Business model

5.1 Free tier

Free includes
1 Ensemble per account
Unlimited chats / projects within that Ensemble
1 editable Studio Room (per locked decision: free = 1 Room with 3 Canvas slots, not N Rooms)
3 published Canvas slots (the unit visitors see in the public Ensemble world; free users can swap which canvas is published anytime). Pro tier (§5.2) lifts the slot cap to unlimited and unlocks unlimited editable Rooms.
Procedural-fill first canvas (auto-seeded from signup answers + GitHub if connected; never blank)
All built-in presets + sprite library (core 80)
Showcase pages (up to 5 public)
Map tab + Canvas map
Feed (read + post)
Bring-your-own Anthropic API key (no platform-provided allotment when key is linked; otherwise 5 calls/day, 30/month from platform)
Standard support (best-effort, ≤7-day response)

5.1.1 Theme customization (every tier — locked 2026-04-29 evening)

Two-axis theme system available on every paid + free account from v1.0:

  • Primary color — pick from 21 themes (the bronze-on-ink default plus 20 alternates spanning warm-to-cool, see ART_DIRECTION.md §2.2).
  • Secondary accent — optional override for highlights / CTAs; defaults to primary’s accent.
  • Mode — Light / Dark / Auto (Auto follows prefers-color-scheme).

Combined with BYOK, “pick your color, bring your key” is the v1.0 free-tier mechanic — both customisation surfaces are unlocked at signup. See PRODUCT_SPEC.md §3.5 and CHUNK_PREFS_API_CONTRACT.md for the full schema.

5.2 Paid tier — “Studio Pro”

Price: $12/month or $108/year (25% annual discount). Per individual user.

Pro adds
3 Ensembles per account (run multiple workspaces)
Unlimited editable Studio Rooms
Unlimited published Canvas slots (free has 3; Pro has no cap on how many canvases you can publish to the Ensemble world)
Extended sprite library (community catalog access + post-launch Pro-only sprite drops; v1.0 ships with the ~85–100 core set per PRODUCT_SPEC.md §3.3)
Unlimited public showcase pages
Hosted Claude allotment: 500 prompts/month from platform key + unlimited via BYOK
Pro-only sound packs (extended ambient + action library)
Priority support (≤24-hour response, weekdays)
Verified profile badge (after 30 days of paid status)
Early access to new presets + components
Export full data anytime (already in free tier; promoted on Pro)

Why $12/month: sits below the psychological “premium subscription” threshold ($15+) but above the “throw-away” threshold ($5). Comparable to Notion ($10), Things 3 (one-time $50, ~$1/month over 4 years), Are.na ($5–$25/yr by tier), Glasp ($10/mo). $108/yr matches the “indie maker $9/month” sweet spot.

Hosted Claude allotment: 500 prompts/month covers 80% of users at average usage. Heavy users hit the cap and either upgrade to add-on packs ($5 / 500 additional) or revert to bring-your-own-key. Cost to us at sonnet 4.7 pricing: ~$2/user/month gross, ~$1/user net after API discounts at scale. Margin: $11/user/month at the $12 tier.

5.3 Team tier (Phase F+)

For organizations using Ensemble: $40/user/month with 5 users included ($200 base), shared workspaces, collaborative Studio editing, admin controls, SSO. Not a Phase A concern; placeholder so we don’t paint ourselves in.

5.4 What we never charge for

  • Auth.
  • Basic dashboard usage.
  • Showcase pages on free tier (within limits).
  • Reading the feed.
  • Switching plans down (no penalty).
  • Procedural empty-state fill. Every signup gets a populated first canvas regardless of tier. The world feels lived-in for everyone; that’s a public good, not a paywall.

5.5 Refund policy

30-day no-questions-asked. Full refund on any paid plan within first 30 days. Pro-rated refund anytime for annual plans (mature operations move).


6. Marketing surfaces

The platform itself is the strongest marketing surface. Each of these is operational from Phase D onward:

6.1 Public profiles

ensemble.tld/<handle> — the user’s public profile page, showing: - Their Ensemble’s Studio Room (live, animated, theme-applied). - Their public showcase pages. - Their recent feed events. - A “Made with Ensemble” badge linking back to the homepage.

Every member is a referral link. Every showcase URL surfaces the platform.

6.2 The collective showcase at homepage hero

The homepage (/index.html) shows the collective showcase grid — a beautiful static grid of canvases from across the community (per PRODUCT_SPEC.md §3.6.6). Pagination, light filtering (newest / featured / random), click any canvas to fly into it. Kevin’s own Studio appears on the grid as one canvas among many — featured by curation, not by being the homepage. When you visit ensemble.tld, you see “the work everyone created together,” not a stock illustration and not a single creator’s Studio.

6.3 Showcase URL embeds

Every public showcase has og:image + open-graph metadata so links shared on Twitter / Bluesky / iMessage render as a rich card with the project’s pie chart, name, phase, and accent color. Free passive marketing.

6.4 Curated weekly highlight

Every Friday at 10am ET: a single Ensemble member featured on the homepage above the fold. Featured member gets a designed badge in the feed + 1k–10k impressions. Earned distribution.

6.5 Genre tags + discovery

Public Ensembles can self-tag with primary genre (music / writing / design / dev / education / research / other). The Discover tab in the feed surfaces by genre. Members find each other within their domain.


7. Safety + trust policy

What we do when bad things happen.

7.1 Content policy

Public showcase pages, Studio Rooms, and feed posts must: - Not violate copyright (especially for sprite-authoring outputs — Claude SVG generations are flagged for derivative-works risk). - Not contain hate speech, harassment, or content targeting individuals. - Not contain CSAM or content sexualizing minors. - Not promote violence or self-harm. - Not impersonate other people or organizations. - Not contain malware or attempt to compromise other users’ browsers.

Reports go to a triage queue. SLA for first response: - Critical (CSAM, malware, doxing): immediate action, content removed within 1 hour, account suspended pending review. - High (harassment, hate speech): action within 24 hours. - Medium (copyright, low-confidence rule violation): action within 72 hours. - Low (style, taste, preference): no action; reported to the user.

7.2 Reporting flow

Every public surface has a Report link in the footer. Reporters describe the issue + cite the offending element. Reports land in a single inbox (initially Kevin; later, a small moderation rotation).

Three actions available to the moderator: 1. No action (with rationale logged for audit). 2. Hide (content unpublished but recoverable; user notified). 3. Remove + suspend (content gone permanently; account suspended pending appeal).

Appeals via email; reviewed within 72 hours.

7.3 Data retention + deletion

  • Free / paid users: data retained as long as the account is active.
  • Suspended accounts: data retained for 30 days; user can export during this window.
  • Deleted accounts: user-initiated deletion hard-deletes within 30 days (for backup recovery), unrecoverable after.
  • Reported / removed content: kept in audit log for 1 year, otherwise deleted.

7.4 Privacy-by-default

Restated from the architecture doc: - Every Studio Room is private until explicitly published. - No third-party scripts. - No analytics on user content. - User audio / video / images are user property; never used for training.

7.5 Audit log

Every state-changing action (publish, unpublish, content removal, account suspension, refund) is logged to audit-log/<date>.jsonl with full context. Logs retained for 1 year. Available to user on request (their own actions only).


8. Support

8.1 Channels

  • In-app “Need help?” link in Settings. Shows: FAQ → Email → Discord (if subscribed).
  • Email: support@ensemble.tld. SLA: ≤7 days free, ≤24 hours paid.
  • Discord: invite-only for Pro subscribers. Real-time chat with Kevin + future support team. ~1k users at year 1 = manageable for one person.
  • Status page: status.ensemble.tld. Auto-updated by uptime monitor.

8.2 FAQ

Maintained at docs/faq.md (in-product) and ensemble.tld/help (public). Five categories: - Getting started (10–15 questions) - Studio (10 questions) - Privacy + security (5 questions) - Billing + plans (5 questions) - Troubleshooting (10 questions)

8.3 Issue templates

Three intake forms: - Bug report: structured, includes auto-collected version + browser + last-action info (with user consent). - Feature request: free-form, with category tags. - Account / billing: priority routed to Kevin.

8.4 Response posture

Tone matches the product: direct, confident, terse. No corporate-support-speak.

Don’t Do
“Thank you for reaching out!” “Hey [name] — saw the report.”
“We apologize for any inconvenience.” “That’s a bug. Fixing now.”
“Please bear with us.” “Will land within 24h. Will reply when shipped.”
Form-letter responses. Specific, named, accountable.

9. Success metrics

What we track. What we ignore.

9.1 The four metrics

# Metric Why Target year 1
1 Active Ensembles (=user has saved their Studio in last 30 days) The truest “they care” signal 1,000
2 Showcase pages published Cross-platform visibility 2,500
3 Paid conversion rate (active → paid) Sustainability 10%
4 Net Promoter Score Quality ≥50

These are the only metrics that get reviewed weekly. Everything else is operational color.

9.2 What we don’t optimize for

  • DAU/MAU ratio. Ensemble is for daily-but-considered use; not for habit-loop engagement.
  • Time-on-site. We’d rather you spend 20 minutes a day in the Studio than 4 hours scrolling the feed.
  • Click-through rates on emails / notifications.
  • Viral coefficient. We grow on quality, not virality.
  • Total signup count. Active users matter; sign-ups don’t.

10. The first year — month-by-month

Month 1 (now → Phase A ship)

  • Phase A built (Studio v1).
  • Kevin dogfoods.
  • Manifesto + ART_DIRECTION + ARCHITECTURE + PRODUCT_SPEC docs final.
  • Internal-only.

Month 2

  • Phase B (Map tab) built.
  • Phase C (Showcase pages) built.
  • Kevin’s 8 chats all have showcase pages live.
  • Internal-only still.

Month 3

  • Quality bar review against the v1 ship list.
  • Stealth waitlist landing page live (Wave 1).
  • Hand-pick + invite 200 to waitlist.

Months 4–5

  • Phase D infrastructure built (multi-tenancy + auth).
  • 25 closed beta invites sent (Wave 2).
  • Phase E (feed) built during this period.
  • Weekly beta office hours.

Months 6–7

  • Beta dialed.
  • Soft public launch (Wave 3): waitlist opens.
  • Blog goes live with founder’s letter + 2 case studies.
  • Twitter / Bluesky / Are.na presence opens.

Months 8–10

  • 100+ active users sustained.
  • 10+ standout showcase pages.
  • Wave 4 prep: write the manifesto-class launch post.

Month 11

  • Show HN + Product Hunt launch (Wave 4).
  • Target: 2k signups in launch week, 500 active by EOM.

Month 12

  • Steady-state growth.
  • Year-end review: 1,000 paid, 10,000 signups, NPS ≥50.
  • Plan year 2 (Phase F + team tier + maybe a desktop app).

11. What this GTM plan is not

It is the people + business spine. How we find users, what they pay (or don’t), how we keep them safe, what we measure. Where this is silent, the manifesto adjudicates.


Locked 2026-04-27. The first 25 beta-user roster gets compiled during Wave 1; the actual launch date is gated by the v1 ship list, not the calendar.