create-baton 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/bin/create-baton.js +9 -0
- package/package.json +36 -0
- package/src/constants.js +30 -0
- package/src/index.js +35 -0
- package/src/prompts.js +54 -0
- package/src/scaffold.js +193 -0
- package/templates/BATON_v3.1.md +849 -0
- package/templates/ide/CLAUDE.md.template +105 -0
- package/templates/ide/cursorrules.template +64 -0
- package/templates/skills/core/anti-overengineering/SKILL.md +180 -0
- package/templates/skills/core/cost-awareness/SKILL.md +207 -0
- package/templates/skills/core/launch-prep/SKILL.md +232 -0
- package/templates/skills/core/milestones/SKILL.md +167 -0
- package/templates/skills/core/production-readiness/SKILL.md +307 -0
- package/templates/skills/core/security/SKILL.md +309 -0
- package/templates/skills/core/testing/SKILL.md +307 -0
- package/templates/skills/core/ui-ux/SKILL.md +155 -0
- package/templates/skills/patterns/api-integration/SKILL.md +143 -0
- package/templates/skills/stacks/nextjs/SKILL.md +230 -0
- package/templates/skills/stacks/supabase/SKILL.md +402 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: launch-prep
|
|
3
|
+
description: >-
|
|
4
|
+
Launch preparation and shipping guidance. Covers pre-launch questions,
|
|
5
|
+
launch options (silent/soft/public), launch checklists, and post-launch
|
|
6
|
+
protocol. Use at session 8+ when approaching launch, when the user
|
|
7
|
+
mentions launching, shipping, or getting real users.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Launch Prep Skill
|
|
11
|
+
|
|
12
|
+
> Building is easy. Launching is hard.
|
|
13
|
+
> Start thinking about launch from Session 8, not Session 20.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## When to Load This Skill
|
|
18
|
+
|
|
19
|
+
- Session 8+ (after MVP features work)
|
|
20
|
+
- When user mentions "launch" or "users"
|
|
21
|
+
- When backlog keeps growing without shipping
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## The Launch Mindset
|
|
26
|
+
|
|
27
|
+
Most projects fail not because they're bad, but because they never launch.
|
|
28
|
+
|
|
29
|
+
**The formula:**
|
|
30
|
+
```
|
|
31
|
+
Launched + Imperfect > Perfect + Never Shipped
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Pre-Launch Questions (Session 8-10)
|
|
37
|
+
|
|
38
|
+
Ask the user:
|
|
39
|
+
|
|
40
|
+
### 1. Who is the first user?
|
|
41
|
+
|
|
42
|
+
> "Who will use this first?
|
|
43
|
+
> - Yourself only?
|
|
44
|
+
> - Friends/family?
|
|
45
|
+
> - A specific person you know?
|
|
46
|
+
> - Strangers on the internet?"
|
|
47
|
+
|
|
48
|
+
**Why it matters:** First user determines launch complexity.
|
|
49
|
+
|
|
50
|
+
### 2. How will they find it?
|
|
51
|
+
|
|
52
|
+
> "How will first users discover this?
|
|
53
|
+
> - You'll send them a link directly
|
|
54
|
+
> - Post on social media
|
|
55
|
+
> - Product Hunt / Hacker News
|
|
56
|
+
> - SEO / organic search
|
|
57
|
+
> - Other?"
|
|
58
|
+
|
|
59
|
+
**Why it matters:** Distribution determines what needs to be ready.
|
|
60
|
+
|
|
61
|
+
### 3. What's the minimum to launch?
|
|
62
|
+
|
|
63
|
+
> "If you had to launch tomorrow, what's truly missing?
|
|
64
|
+
> List only BLOCKERS, not nice-to-haves."
|
|
65
|
+
|
|
66
|
+
**Why it matters:** Separates real blockers from perfectionism.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Launch Options
|
|
71
|
+
|
|
72
|
+
### Option A: Silent Launch
|
|
73
|
+
|
|
74
|
+
Just deploy. Share link with a few people. No announcement.
|
|
75
|
+
|
|
76
|
+
**Good for:**
|
|
77
|
+
- Testing with real users
|
|
78
|
+
- Low pressure
|
|
79
|
+
- Finding bugs before public launch
|
|
80
|
+
|
|
81
|
+
**Requires:**
|
|
82
|
+
- [ ] Core feature works
|
|
83
|
+
- [ ] No obvious crashes
|
|
84
|
+
- [ ] Basic error handling
|
|
85
|
+
- Nothing else
|
|
86
|
+
|
|
87
|
+
### Option B: Soft Launch
|
|
88
|
+
|
|
89
|
+
Deploy + announce to a small audience (Twitter, friends, community).
|
|
90
|
+
|
|
91
|
+
**Good for:**
|
|
92
|
+
- Getting initial feedback
|
|
93
|
+
- Building early users
|
|
94
|
+
- Testing positioning
|
|
95
|
+
|
|
96
|
+
**Requires:**
|
|
97
|
+
- [ ] Everything from Silent Launch
|
|
98
|
+
- [ ] Landing page / clear value prop
|
|
99
|
+
- [ ] Way to collect feedback
|
|
100
|
+
- [ ] Basic analytics
|
|
101
|
+
|
|
102
|
+
### Option C: Public Launch
|
|
103
|
+
|
|
104
|
+
Product Hunt, Hacker News, press outreach.
|
|
105
|
+
|
|
106
|
+
**Good for:**
|
|
107
|
+
- Maximum initial exposure
|
|
108
|
+
- Building credibility
|
|
109
|
+
- "Launch moment" marketing
|
|
110
|
+
|
|
111
|
+
**Requires:**
|
|
112
|
+
- [ ] Everything from Soft Launch
|
|
113
|
+
- [ ] Polished UI/UX
|
|
114
|
+
- [ ] Ready for traffic spike
|
|
115
|
+
- [ ] Prepared for feedback/criticism
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Launch Checklist
|
|
120
|
+
|
|
121
|
+
### Must Have (Blockers)
|
|
122
|
+
|
|
123
|
+
- [ ] Core feature works reliably
|
|
124
|
+
- [ ] Users can sign up / log in
|
|
125
|
+
- [ ] No data loss bugs
|
|
126
|
+
- [ ] Basic error handling (doesn't crash)
|
|
127
|
+
- [ ] Works on mobile (if web app)
|
|
128
|
+
- [ ] HTTPS enabled
|
|
129
|
+
|
|
130
|
+
### Should Have (Important)
|
|
131
|
+
|
|
132
|
+
- [ ] Clear value proposition on landing page
|
|
133
|
+
- [ ] Way to contact you (email, chat)
|
|
134
|
+
- [ ] Basic analytics installed
|
|
135
|
+
- [ ] Error monitoring (Sentry)
|
|
136
|
+
- [ ] Feedback collection method
|
|
137
|
+
|
|
138
|
+
### Nice to Have (Not Launch Blockers)
|
|
139
|
+
|
|
140
|
+
- [ ] Perfect UI polish
|
|
141
|
+
- [ ] All edge cases handled
|
|
142
|
+
- [ ] Comprehensive onboarding
|
|
143
|
+
- [ ] Advanced features
|
|
144
|
+
- [ ] Performance optimization
|
|
145
|
+
|
|
146
|
+
**Don't let "nice to have" delay launch.**
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Launch Week Protocol
|
|
151
|
+
|
|
152
|
+
### 3 Days Before
|
|
153
|
+
|
|
154
|
+
- [ ] Final smoke test
|
|
155
|
+
- [ ] Check production environment
|
|
156
|
+
- [ ] Prepare announcement (post, tweet, email)
|
|
157
|
+
- [ ] Tell 2-3 friends to be ready to try it
|
|
158
|
+
|
|
159
|
+
### Launch Day
|
|
160
|
+
|
|
161
|
+
- [ ] Deploy final version
|
|
162
|
+
- [ ] Verify everything works
|
|
163
|
+
- [ ] Post announcement
|
|
164
|
+
- [ ] Monitor for errors (watch Sentry/logs)
|
|
165
|
+
- [ ] Respond to all feedback quickly
|
|
166
|
+
|
|
167
|
+
### Week After
|
|
168
|
+
|
|
169
|
+
- [ ] Collect feedback themes
|
|
170
|
+
- [ ] Fix critical bugs immediately
|
|
171
|
+
- [ ] Note feature requests (don't build yet)
|
|
172
|
+
- [ ] Thank early users personally
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Post-Launch: What's Next?
|
|
177
|
+
|
|
178
|
+
After launch, priorities change:
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
Before launch: Build features
|
|
182
|
+
After launch: Fix what users report + observe usage
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### First 2 Weeks After Launch
|
|
186
|
+
|
|
187
|
+
1. **Fix bugs** reported by real users
|
|
188
|
+
2. **Observe** how people actually use it
|
|
189
|
+
3. **Talk** to users directly
|
|
190
|
+
4. **Don't** add new features yet
|
|
191
|
+
|
|
192
|
+
### Then
|
|
193
|
+
|
|
194
|
+
Use real feedback to decide what to build next.
|
|
195
|
+
Not your backlog. Not your ideas. What users actually need.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## When User Keeps Delaying
|
|
200
|
+
|
|
201
|
+
If user repeatedly says "one more feature before launch":
|
|
202
|
+
|
|
203
|
+
> "I notice we've delayed launch a few times. Can I share an observation?
|
|
204
|
+
>
|
|
205
|
+
> Most successful products launch earlier than feels comfortable. The feedback from ONE real user is worth more than 10 features built in isolation.
|
|
206
|
+
>
|
|
207
|
+
> What would it take to do a silent launch this week, just to a few people?"
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Marketing Basics (If Needed)
|
|
212
|
+
|
|
213
|
+
### Minimum Viable Marketing
|
|
214
|
+
|
|
215
|
+
1. **One sentence:** What does it do? For whom?
|
|
216
|
+
2. **Screenshot:** What does it look like?
|
|
217
|
+
3. **Link:** Where can people try it?
|
|
218
|
+
|
|
219
|
+
That's enough to launch.
|
|
220
|
+
|
|
221
|
+
### If User Wants More
|
|
222
|
+
|
|
223
|
+
Point to resources:
|
|
224
|
+
- Product Hunt launch guide
|
|
225
|
+
- Marketing skills (if available)
|
|
226
|
+
- Launch strategy templates
|
|
227
|
+
|
|
228
|
+
But don't let marketing planning delay the actual launch.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
*Last updated: Baton Protocol v3.1*
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: milestones
|
|
3
|
+
description: >-
|
|
4
|
+
Project milestone tracking and scope creep detection. Defines standard
|
|
5
|
+
milestone phases (Foundation, MVP, Polish, Launch, Iterate) with session
|
|
6
|
+
targets and review checkpoints. Use when planning project phases,
|
|
7
|
+
detecting scope creep, or when milestones slip.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Milestones Skill
|
|
11
|
+
|
|
12
|
+
> Sessions are tactics. Milestones are strategy.
|
|
13
|
+
> Know where you're going, not just what you're doing today.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Why Milestones Matter
|
|
18
|
+
|
|
19
|
+
Without milestones:
|
|
20
|
+
- Build forever, never ship
|
|
21
|
+
- Lose sight of the goal
|
|
22
|
+
- Features without users
|
|
23
|
+
- Burnout from endless work
|
|
24
|
+
|
|
25
|
+
With milestones:
|
|
26
|
+
- Clear checkpoints
|
|
27
|
+
- Celebrate progress
|
|
28
|
+
- Ship early, iterate
|
|
29
|
+
- Sustainable pace
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Standard Milestone Template
|
|
34
|
+
|
|
35
|
+
| Phase | Sessions | Goal | Checkpoint |
|
|
36
|
+
|-------|----------|------|------------|
|
|
37
|
+
| **Foundation** | 1-3 | Project setup, auth, core UI | "Can a user log in and see the main screen?" |
|
|
38
|
+
| **MVP** | 4-7 | Core features working | "Can a user do the ONE main thing?" |
|
|
39
|
+
| **Polish** | 8-10 | UX, testing, hardening | "Would I be embarrassed to show this?" |
|
|
40
|
+
| **Launch** | 11-12 | Deploy, soft launch | "Is one real person using this?" |
|
|
41
|
+
| **Iterate** | 13+ | User feedback driven | "What did users actually need?" |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Milestone Reviews
|
|
46
|
+
|
|
47
|
+
### At Session 3 (End of Foundation)
|
|
48
|
+
|
|
49
|
+
Ask user:
|
|
50
|
+
> "Foundation complete. We have [summary].
|
|
51
|
+
>
|
|
52
|
+
> Before moving to MVP features:
|
|
53
|
+
> 1. Is the base solid?
|
|
54
|
+
> 2. Any concerns about architecture?
|
|
55
|
+
> 3. Ready to build core features?"
|
|
56
|
+
|
|
57
|
+
### At Session 7 (End of MVP)
|
|
58
|
+
|
|
59
|
+
Ask user:
|
|
60
|
+
> "MVP features complete. The app can [core function].
|
|
61
|
+
>
|
|
62
|
+
> Decision point:
|
|
63
|
+
> - **Option A:** Polish and launch with current features
|
|
64
|
+
> - **Option B:** Add [2-3 more features] then launch
|
|
65
|
+
> - **Option C:** Keep building (not recommended)
|
|
66
|
+
>
|
|
67
|
+
> Most successful products launch earlier than feels comfortable."
|
|
68
|
+
|
|
69
|
+
### At Session 10 (End of Polish)
|
|
70
|
+
|
|
71
|
+
Ask user:
|
|
72
|
+
> "App is polished and tested.
|
|
73
|
+
>
|
|
74
|
+
> Launch checklist:
|
|
75
|
+
> - [ ] Core features work
|
|
76
|
+
> - [ ] Obvious bugs fixed
|
|
77
|
+
> - [ ] Basic error handling
|
|
78
|
+
> - [ ] Mobile works (if applicable)
|
|
79
|
+
>
|
|
80
|
+
> **It's time to get real users.** What's the launch plan?"
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Milestone Tracking
|
|
85
|
+
|
|
86
|
+
Add to PROGRESS.md:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
## Milestones
|
|
90
|
+
|
|
91
|
+
| Phase | Target | Actual | Status |
|
|
92
|
+
|-------|--------|--------|--------|
|
|
93
|
+
| Foundation | Session 3 | Session 3 | ✅ Complete |
|
|
94
|
+
| MVP | Session 7 | Session 8 | ✅ Complete |
|
|
95
|
+
| Polish | Session 10 | - | 🔄 In Progress |
|
|
96
|
+
| Launch | Session 12 | - | ⏳ Upcoming |
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Update at end of each session.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Scope Creep Detection
|
|
104
|
+
|
|
105
|
+
At each session start, check:
|
|
106
|
+
|
|
107
|
+
1. **Are we still in the same milestone?**
|
|
108
|
+
- If milestone changed without completing previous → flag it
|
|
109
|
+
|
|
110
|
+
2. **How many sessions since last milestone?**
|
|
111
|
+
- If 5+ sessions in same milestone → something's wrong
|
|
112
|
+
|
|
113
|
+
3. **Is backlog growing faster than completing?**
|
|
114
|
+
- If yes → stop adding, start finishing
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## When Milestones Slip
|
|
119
|
+
|
|
120
|
+
If a milestone takes longer than expected:
|
|
121
|
+
|
|
122
|
+
1. **Acknowledge it** — "We're at Session 9, MVP was planned for Session 7"
|
|
123
|
+
2. **Diagnose** — Scope creep? Unexpected complexity? Rework?
|
|
124
|
+
3. **Adjust** — Reduce scope or extend timeline
|
|
125
|
+
4. **Document** — Note in PROGRESS.md what happened
|
|
126
|
+
|
|
127
|
+
Don't silently let milestones slip. Make it visible.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Anti-Pattern: The Endless Build
|
|
132
|
+
|
|
133
|
+
Warning signs:
|
|
134
|
+
- Session 15+ without real users
|
|
135
|
+
- "Just one more feature before launch"
|
|
136
|
+
- Backlog grows every session
|
|
137
|
+
- No milestone ever completed
|
|
138
|
+
|
|
139
|
+
Solution:
|
|
140
|
+
- Stop adding features
|
|
141
|
+
- Launch what you have
|
|
142
|
+
- Get real feedback
|
|
143
|
+
- THEN decide what's next
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Custom Milestones
|
|
148
|
+
|
|
149
|
+
For non-standard projects, define milestones in Baton setup:
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
## Project Milestones
|
|
153
|
+
|
|
154
|
+
| Phase | Sessions | Definition of Done |
|
|
155
|
+
|-------|----------|-------------------|
|
|
156
|
+
| [Phase 1] | 1-X | [What must be true?] |
|
|
157
|
+
| [Phase 2] | X-Y | [What must be true?] |
|
|
158
|
+
| [Launch] | Y-Z | [What must be true?] |
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Every project needs at least:
|
|
162
|
+
1. A "working" milestone (MVP)
|
|
163
|
+
2. A "launch" milestone (real users)
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
*Last updated: Baton Protocol v3.1*
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: production-readiness
|
|
3
|
+
description: >-
|
|
4
|
+
Pre-launch production checklist covering security, error handling,
|
|
5
|
+
monitoring, database, deployment, UX polish, performance, analytics,
|
|
6
|
+
and legal requirements. Use before launching to real users or when
|
|
7
|
+
reviewing production readiness.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Production Readiness Skill — Launch Checklist
|
|
11
|
+
|
|
12
|
+
> Complete this checklist before launching to real users.
|
|
13
|
+
> Not every item applies to every project — mark N/A where appropriate.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Pre-Launch Gate
|
|
18
|
+
|
|
19
|
+
**Do not launch until you can answer YES to all critical items.**
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Security (Critical)
|
|
24
|
+
|
|
25
|
+
See `skills/core/security/SKILL.md` for details.
|
|
26
|
+
|
|
27
|
+
### Must Have
|
|
28
|
+
- [ ] No secrets in codebase
|
|
29
|
+
- [ ] Environment variables for all sensitive config
|
|
30
|
+
- [ ] RLS enabled on all database tables
|
|
31
|
+
- [ ] Input validation on all forms and APIs
|
|
32
|
+
- [ ] Authentication on all protected routes
|
|
33
|
+
- [ ] HTTPS enforced
|
|
34
|
+
|
|
35
|
+
### Should Have
|
|
36
|
+
- [ ] Rate limiting on public endpoints
|
|
37
|
+
- [ ] Security headers configured
|
|
38
|
+
- [ ] File upload validation (type + size)
|
|
39
|
+
- [ ] Error messages don't leak internals
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 2. Error Handling (Critical)
|
|
44
|
+
|
|
45
|
+
### Must Have
|
|
46
|
+
- [ ] Global error boundary (catches React crashes)
|
|
47
|
+
- [ ] API routes return proper error responses
|
|
48
|
+
- [ ] Forms show validation errors to users
|
|
49
|
+
- [ ] Database errors don't crash the app
|
|
50
|
+
|
|
51
|
+
### Implementation
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
// Error boundary (app/error.tsx)
|
|
55
|
+
'use client'
|
|
56
|
+
|
|
57
|
+
export default function Error({
|
|
58
|
+
error,
|
|
59
|
+
reset,
|
|
60
|
+
}: {
|
|
61
|
+
error: Error
|
|
62
|
+
reset: () => void
|
|
63
|
+
}) {
|
|
64
|
+
return (
|
|
65
|
+
<div>
|
|
66
|
+
<h2>Something went wrong</h2>
|
|
67
|
+
<button onClick={reset}>Try again</button>
|
|
68
|
+
</div>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3. Monitoring & Observability (Critical)
|
|
76
|
+
|
|
77
|
+
### Must Have
|
|
78
|
+
- [ ] Error tracking installed (Sentry, LogRocket, etc.)
|
|
79
|
+
- [ ] Errors are captured with context
|
|
80
|
+
- [ ] Alerts configured for critical errors
|
|
81
|
+
|
|
82
|
+
### Should Have
|
|
83
|
+
- [ ] Health check endpoint (`/api/health`)
|
|
84
|
+
- [ ] Uptime monitoring (Vercel, UptimeRobot, etc.)
|
|
85
|
+
- [ ] Performance monitoring (Core Web Vitals)
|
|
86
|
+
|
|
87
|
+
### Health Check Example
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// app/api/health/route.ts
|
|
91
|
+
export async function GET() {
|
|
92
|
+
try {
|
|
93
|
+
// Check database connection
|
|
94
|
+
await db.query('SELECT 1')
|
|
95
|
+
|
|
96
|
+
return Response.json({
|
|
97
|
+
status: 'healthy',
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
})
|
|
100
|
+
} catch (error) {
|
|
101
|
+
return Response.json(
|
|
102
|
+
{ status: 'unhealthy', error: 'Database connection failed' },
|
|
103
|
+
{ status: 503 }
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 4. Database (Critical)
|
|
112
|
+
|
|
113
|
+
### Must Have
|
|
114
|
+
- [ ] Backups configured (Supabase/provider handles this)
|
|
115
|
+
- [ ] Backup restoration tested at least once
|
|
116
|
+
- [ ] Migrations versioned and tracked
|
|
117
|
+
- [ ] Indexes on frequently queried columns
|
|
118
|
+
|
|
119
|
+
### Should Have
|
|
120
|
+
- [ ] Connection pooling configured
|
|
121
|
+
- [ ] Query performance reviewed
|
|
122
|
+
- [ ] Soft deletes for important data (audit trail)
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 5. Deployment (Critical)
|
|
127
|
+
|
|
128
|
+
### Must Have
|
|
129
|
+
- [ ] Production environment configured
|
|
130
|
+
- [ ] Environment variables set in production
|
|
131
|
+
- [ ] Build passes in production environment
|
|
132
|
+
- [ ] Domain configured and working
|
|
133
|
+
|
|
134
|
+
### Should Have
|
|
135
|
+
- [ ] CI/CD pipeline configured
|
|
136
|
+
- [ ] Preview deployments for PRs
|
|
137
|
+
- [ ] Rollback procedure documented
|
|
138
|
+
|
|
139
|
+
### Rollback Procedure Template
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
## Rollback Procedure
|
|
143
|
+
|
|
144
|
+
1. Go to [Vercel/Netlify/etc.] dashboard
|
|
145
|
+
2. Navigate to Deployments
|
|
146
|
+
3. Find last working deployment
|
|
147
|
+
4. Click "Promote to Production" or "Redeploy"
|
|
148
|
+
5. Verify rollback successful
|
|
149
|
+
6. Investigate and fix the issue
|
|
150
|
+
7. Deploy fix when ready
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 6. UX Polish (Important)
|
|
156
|
+
|
|
157
|
+
### Must Have
|
|
158
|
+
- [ ] Empty states for all lists ("No items yet")
|
|
159
|
+
- [ ] Loading states for async operations
|
|
160
|
+
- [ ] Error states with recovery options
|
|
161
|
+
- [ ] Mobile responsive (unless desktop-only)
|
|
162
|
+
|
|
163
|
+
### Should Have
|
|
164
|
+
- [ ] Confirmation dialogs for destructive actions
|
|
165
|
+
- [ ] Success feedback for completed actions
|
|
166
|
+
- [ ] Keyboard accessible (Tab navigation works)
|
|
167
|
+
- [ ] Focus management (modals trap focus)
|
|
168
|
+
|
|
169
|
+
### Empty State Example
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
{items.length === 0 ? (
|
|
173
|
+
<div className="text-center py-12">
|
|
174
|
+
<h3>No items yet</h3>
|
|
175
|
+
<p>Create your first item to get started.</p>
|
|
176
|
+
<Button onClick={openCreateModal}>Create Item</Button>
|
|
177
|
+
</div>
|
|
178
|
+
) : (
|
|
179
|
+
<ItemsList items={items} />
|
|
180
|
+
)}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 7. Performance (Important)
|
|
186
|
+
|
|
187
|
+
### Must Have
|
|
188
|
+
- [ ] No blocking resources on initial load
|
|
189
|
+
- [ ] Images optimized (Next.js Image, WebP, etc.)
|
|
190
|
+
- [ ] Build size reasonable (<500KB JS initial)
|
|
191
|
+
|
|
192
|
+
### Should Have
|
|
193
|
+
- [ ] Core Web Vitals passing (LCP, FID, CLS)
|
|
194
|
+
- [ ] Lazy loading for below-fold content
|
|
195
|
+
- [ ] Caching strategy defined
|
|
196
|
+
|
|
197
|
+
### Check Performance
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Run Lighthouse audit
|
|
201
|
+
npx lighthouse https://yourdomain.com --view
|
|
202
|
+
|
|
203
|
+
# Or use Vercel Speed Insights, PageSpeed Insights
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 8. Analytics (Important)
|
|
209
|
+
|
|
210
|
+
### Should Have
|
|
211
|
+
- [ ] Page view tracking
|
|
212
|
+
- [ ] Key action tracking (signups, conversions)
|
|
213
|
+
- [ ] Error tracking linked to user sessions
|
|
214
|
+
|
|
215
|
+
### Options
|
|
216
|
+
|
|
217
|
+
| Tool | Best For |
|
|
218
|
+
|------|----------|
|
|
219
|
+
| Vercel Analytics | Simple, privacy-focused |
|
|
220
|
+
| Plausible | Privacy-focused, EU compliant |
|
|
221
|
+
| PostHog | Product analytics, session replay |
|
|
222
|
+
| Google Analytics | Comprehensive, free |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 9. Legal (If Public)
|
|
227
|
+
|
|
228
|
+
### Must Have (If Collecting User Data)
|
|
229
|
+
- [ ] Privacy Policy page
|
|
230
|
+
- [ ] Terms of Service page
|
|
231
|
+
- [ ] Cookie consent (if using cookies for tracking)
|
|
232
|
+
|
|
233
|
+
### Should Have
|
|
234
|
+
- [ ] GDPR compliance (if EU users)
|
|
235
|
+
- [ ] Data deletion capability
|
|
236
|
+
- [ ] Clear data usage explanation
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 10. Documentation (Important)
|
|
241
|
+
|
|
242
|
+
### Must Have
|
|
243
|
+
- [ ] README with setup instructions
|
|
244
|
+
- [ ] Environment variables documented
|
|
245
|
+
- [ ] Key features documented for users
|
|
246
|
+
|
|
247
|
+
### Should Have
|
|
248
|
+
- [ ] API documentation (if applicable)
|
|
249
|
+
- [ ] Deployment guide
|
|
250
|
+
- [ ] Troubleshooting guide
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Launch Readiness Score
|
|
255
|
+
|
|
256
|
+
Rate each category:
|
|
257
|
+
- ✅ Complete
|
|
258
|
+
- 🟡 Partial (acceptable for launch)
|
|
259
|
+
- ❌ Incomplete (blocker)
|
|
260
|
+
|
|
261
|
+
| Category | Status | Notes |
|
|
262
|
+
|----------|--------|-------|
|
|
263
|
+
| Security | | |
|
|
264
|
+
| Error Handling | | |
|
|
265
|
+
| Monitoring | | |
|
|
266
|
+
| Database | | |
|
|
267
|
+
| Deployment | | |
|
|
268
|
+
| UX Polish | | |
|
|
269
|
+
| Performance | | |
|
|
270
|
+
| Analytics | | |
|
|
271
|
+
| Legal | | |
|
|
272
|
+
| Documentation | | |
|
|
273
|
+
|
|
274
|
+
**Launch when:** All critical items are ✅, important items are at least 🟡.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Post-Launch Checklist
|
|
279
|
+
|
|
280
|
+
First 24 hours:
|
|
281
|
+
- [ ] Monitor error tracking for new errors
|
|
282
|
+
- [ ] Watch for performance issues
|
|
283
|
+
- [ ] Respond to user feedback quickly
|
|
284
|
+
- [ ] Check analytics are recording
|
|
285
|
+
|
|
286
|
+
First week:
|
|
287
|
+
- [ ] Review error patterns
|
|
288
|
+
- [ ] Address critical bugs immediately
|
|
289
|
+
- [ ] Collect user feedback
|
|
290
|
+
- [ ] Plan improvements based on real usage
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Common Launch Mistakes
|
|
295
|
+
|
|
296
|
+
| Mistake | Prevention |
|
|
297
|
+
|---------|------------|
|
|
298
|
+
| Forgot to set production env vars | Use checklist, verify before launch |
|
|
299
|
+
| No error tracking | Install Sentry before launch |
|
|
300
|
+
| No backup strategy | Verify provider backups, test restore |
|
|
301
|
+
| Missing empty states | QA with empty database |
|
|
302
|
+
| No rate limiting | Add before launch, not after attack |
|
|
303
|
+
| No rollback plan | Document procedure, test it |
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
*Last updated: Baton Protocol v3.1*
|