You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove em dashes across code and docs (house style)
Replace every em/en dash with context-appropriate punctuation (colon,
period, comma, or parentheses) across READMEs, CLI help, error and console
output, code comments, and test fixtures. No logic changed; test suites green.
Also replace the README demo-GIF placeholder with the real check output.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
[](LICENSE)[](https://martellosystems.com)
4
4
5
-
**A self-hosted viral waitlist in a box.** Signup, referral codes with attribution, position tracking + leaderboard, an admin dashboard, an embeddable widget, and email automation — all in one deployable Next.js app. This is the thing you deploy, not a template you assemble.
5
+
**A self-hosted viral waitlist in a box.** Signup, referral codes with attribution, position tracking + leaderboard, an admin dashboard, an embeddable widget, and email automation, all in one deployable Next.js app. This is the thing you deploy, not a template you assemble.
6
6
7
7
-**Referral loops built in.** Every signup gets a unique referral link. Each successful (verified) referral moves them up the line.
8
8
-**Double opt-in.** Signups confirm their email via a verification link; only verified referrals count (anti-gaming). Toggle off if you don't want it.
@@ -90,8 +90,8 @@ The public `POST /api/signup` endpoint is rate-limited per client IP using an in
90
90
| Method | Route | Auth | Description |
91
91
|---|---|---|---|
92
92
|`POST`|`/api/signup`| rate-limited | Body `{ email, referredByCode? }` → `{ referralCode, position, referralLink, pendingVerification }`. `409` on duplicate email, `429` over the rate limit. |
93
-
|`GET`/`POST`|`/api/verify?token=…`|—| Confirms a signup. Redirects to `/?verified=1` (or `?verified=error`); returns JSON when `Accept: application/json`. |
94
-
|`GET`|`/api/leaderboard?limit=10`|—| Top referrers by **verified** referrals (emails masked). |
93
+
|`GET`/`POST`|`/api/verify?token=…`|none| Confirms a signup. Redirects to `/?verified=1` (or `?verified=error`); returns JSON when `Accept: application/json`. |
94
+
|`GET`|`/api/leaderboard?limit=10`|none| Top referrers by **verified** referrals (emails masked). |
95
95
|`GET`|`/api/admin/signups?take=&skip=`| Bearer `ADMIN_TOKEN`| Full signup list with referral counts + verified status. |
-**Rate limiting is in-memory and per-instance.** It's correct for a single self-hosted instance (the common case). Behind a load balancer / on serverless, each instance keeps its own window, so the effective global limit is roughly `limit × instances`. For multi-instance setups, back the same `RateLimiter` interface with a shared store (Redis/Upstash). v1 deliberately avoids that infra.
165
165
-**Verification tokens don't expire.** A token is single-use (cleared on verify) but has no TTL in v1. Add an expiry check if you need one.
166
166
-**Email masking on the public leaderboard** is best-effort obfuscation, not anonymization.
167
-
-**Single-table model** — no multi-project/multi-tenant support (roadmap).
167
+
-**Single-table model:** no multi-project/multi-tenant support (roadmap).
<sub>Built by **Martello Systems** — we design and ship AI-driven software.
188
+
<sub>Built by **Martello Systems**. We design and ship AI-driven software.
189
189
Part of the Martello open-source dev-tools family.</sub>
190
190
191
191
---
192
192
193
193
## Built by Martello Systems
194
194
195
-
`launchpad` is part of the open-source toolkit from **[Martello Systems](https://martellosystems.com)** — we ship AI-built software, spec to delivery in days. If this saved you time, come [see what we do](https://martellosystems.com).
195
+
`launchpad` is part of the open-source toolkit from **[Martello Systems](https://martellosystems.com)**. We ship AI-built software, spec to delivery in days. If this saved you time, come [see what we do](https://martellosystems.com).
{"ts": "2026-06-25T00:35:24", "agent": "_main-session", "tool": "Bash", "decision": "allow", "reason": "main-session audit-only", "mode": "warn-only", "main_session": true, "tool_input": {"command": "cd ~/Dev/OpenSourceMartelloSystems\nMSG=\"Remove em dashes across code and docs (house style)\n\nReplace every em/en dash with context-appropriate punctuation (colon,\nperiod, comma, or parentheses) across READMEs, CLI help, error and console\noutput, code comments, and test fixtures. No logic changed; test suites green.\nAlso replace the README demo-GIF placeholder with the real check output.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\"\n\nfor r in envz launchpad agent-firewall spec-verify snapdb; do\n cd ~/Dev/OpenSourceMartelloSystems/$r\n git add -A\n git commit -q -m \"$MSG\" && echo \"$r: committed\" || echo \"$r: nothing to commit\"\ndone\necho \"=== push ===\"\nfor r in envz launchpad agent-firewall spec-verify snapdb; do\n cd ~/Dev/OpenSourceMartelloSystems/$r\n git push -q origin \"$(git branch --show-current)\" && echo \"$r: pushed ✓\" || echo \"$r: PUSH FAILED\"\ndone", "description": "Commit and push em-dash purge across all 5 repos"}}
0 commit comments