Community playbook
The testers are the moat. This playbook describes how the community is structured, how people join and grow, how we keep it healthy, and what we measure.
Structure
- Workspace pools. Each developer manages tiers and members for their own campaigns (Testers page). Weight and permissions are per tier and enforced server-side.
- House Pool. A platform-operated pool (the
CustomerflaggedisPlatformPool) whose members carry reputation across campaigns. Tiers:
| Tier | Weight | How you get there |
|---|---|---|
| Newcomer | 0 → 1 after 3 cleared contributions and 48 h account age | apply |
| Trusted | 2 | 10 cleared, ≥ 1 deployed, no BLOCKED in 90 days |
| Senior | 3 | 50 cleared, ≥ 5 deployed, 3 confirmed re-verifications |
| Lead | 4 | operator promotion; may moderate public campaigns |
- Public campaigns. Developers opt in per campaign
(
Campaign.visibility = PUBLIC,minTierWeight). They appear in Discover for qualifying House Pool members.
Joining
- Tester Hub → Apply to the House Pool (
TesterApplication: motivation, devices, browsers, languages, optional X handle, referrer). - Operators review in the operator view (
/admin→ Applications); automatic approval to Newcomer is available (HOUSE_POOL_AUTO_APPROVE=true) for open beta phases. - Enrollment: Authentik enrollment flow on the tester application slug
(operator step — see operations). New identities get a
Testerrow on first hub visit.
Referrals
A tester can issue referral invites (TesterInvite.referrerTesterId). When the
newcomer's first contribution is cleared and later deployed, both receive a
REFERRAL ledger entry. Referral invites are capped per tester per month.
Rituals
- Weekly digest (
POST /api/platform-admin/digests/run, scheduled in Coolify): each active tester gets a notification with their contributions, deploys they influenced, points, and one recommended public campaign. - Ship notifications: when an item deploys, every contributor and voter is notified and asked to re-verify.
- Share (opt-in, default off): after a confirmed deploy the hub offers a
pre-filled X post ("A change I proposed just shipped on
") through a web intent. No hosted post generation; the tester edits and sends. Rate limited (25 per 30 minutes per tester). - Leaderboard: opt-in, per workspace and House Pool, weekly and all-time.
Moderation
- The safety pipeline flags before humans see anything; Lead testers and
operators clear or block public-campaign items from
/moderation. - Reputation, not funds, is slashed for BLOCKED submissions; three BLOCKED items in 90 days suspend House Pool membership pending review.
- Disputes: a tester may contest a REJECTED status from My contributions; the developer has 7 days to respond or the reputation effect is reversed.
- Code of conduct is linked from the hub and the extension panel.
Growth loop and metrics
public campaign → discover → contribute → deploy notification → confirm → share → new tester
| Metric | Target for beta |
|---|---|
| Weekly active testers | growth week over week |
| Median time to first feedback after joining | < 24 h |
| Cleared / submitted | > 85 % |
| Deployed / THRESHOLD_MET | > 60 % |
| 4-week tester retention | > 40 % |
| Referral share of new testers | > 20 % |
Developer-facing promises
- Testers see only what a campaign exposes; emails are never shown to developers unless a tester accepts a pool invite.
- Public campaigns receive only House Pool members at or above the chosen tier.
- Developers can revoke any member; operators can suspend across the network.