markdown · 2442 bytes Raw Blame History

v0.1.0 launch retro

Cutover date: TBD (filled in by the operator on launch day).

Cutover window: TBD (e.g., "Saturday 2026-MM-DD 22:00–22:45 UTC").

A short, blameless retro filled in within 24 hours of the cutover. Lives in docs/internal/retro/ so future v2/v3 launches can read the prior one and learn.

What worked

(Filled in post-cutover. Bullets, two sentences each. Examples from a hypothetical good run:

  • The Ansible playbook applied first-try; ~12s downtime measured end-to-end. Lower than the 30s budget.
  • The smoke script caught a misconfigured Caddy header within 60s of the deploy reporting success — fixed before any user noticed.
  • HSTS + the Caddy default cert-renewal worked on first request; no manual cert ceremony needed.)

What surprised us

(Things we hadn't predicted. Honest writeups; this isn't a brag sheet.)

Top 3 user-reported issues in the first 24h

# Severity Title Status
1 TBD TBD TBD
2 TBD TBD TBD
3 TBD TBD TBD

Numbers

Metric Value
Cutover window length TBD
Downtime during cutover TBD
Signups in first 24h TBD
Repos created in first 24h TBD
Pushes in first 24h TBD
Peak RPS during HN spike TBD
5xx rate during HN spike TBD
Backups successful since cutover TBD
Alerts paged TBD
Alerts that were false positives TBD

What goes into the next sprint

The first post-launch sprint focuses on:

  1. (Top user-reported issue from the table above, fix.)
  2. (Second-highest issue, or a parked S41+ feature if no urgent bug.)
  3. (Drop the GitHub mirror? Track its disposition; default plan is to keep it 90 days.)

Lessons for the next major release

(Things we'd do differently for v2.0.0. Operator-facing notes, not rehash of every minor decision.)

Closing

shithub is now real. The v0.1.0 surface is what users will judge the project against; what we ship from here forward is judged in the context of a public, dogfood-driven instance. That's the forcing function we wanted.

View source
1 # v0.1.0 launch retro
2
3 **Cutover date:** TBD (filled in by the operator on launch day).
4
5 **Cutover window:** TBD (e.g., "Saturday 2026-MM-DD 22:00–22:45 UTC").
6
7 A short, blameless retro filled in within 24 hours of the cutover.
8 Lives in `docs/internal/retro/` so future v2/v3 launches can read
9 the prior one and learn.
10
11 ## What worked
12
13 (Filled in post-cutover. Bullets, two sentences each. Examples
14 from a hypothetical good run:
15
16 - The Ansible playbook applied first-try; ~12s downtime measured
17 end-to-end. Lower than the 30s budget.
18 - The smoke script caught a misconfigured Caddy header within 60s
19 of the deploy reporting success — fixed before any user noticed.
20 - HSTS + the Caddy default cert-renewal worked on first request;
21 no manual cert ceremony needed.)
22
23 ## What surprised us
24
25 (Things we hadn't predicted. Honest writeups; this isn't a brag
26 sheet.)
27
28 ## Top 3 user-reported issues in the first 24h
29
30 | # | Severity | Title | Status |
31 |---|----------|-------|--------|
32 | 1 | TBD | TBD | TBD |
33 | 2 | TBD | TBD | TBD |
34 | 3 | TBD | TBD | TBD |
35
36 ## Numbers
37
38 | Metric | Value |
39 |-------------------------------------------|---------|
40 | Cutover window length | TBD |
41 | Downtime during cutover | TBD |
42 | Signups in first 24h | TBD |
43 | Repos created in first 24h | TBD |
44 | Pushes in first 24h | TBD |
45 | Peak RPS during HN spike | TBD |
46 | 5xx rate during HN spike | TBD |
47 | Backups successful since cutover | TBD |
48 | Alerts paged | TBD |
49 | Alerts that were false positives | TBD |
50
51 ## What goes into the next sprint
52
53 The first post-launch sprint focuses on:
54
55 1. (Top user-reported issue from the table above, fix.)
56 2. (Second-highest issue, or a parked S41+ feature if no urgent
57 bug.)
58 3. (Drop the GitHub mirror? Track its disposition; default plan
59 is to keep it 90 days.)
60
61 ## Lessons for the next major release
62
63 (Things we'd do differently for v2.0.0. Operator-facing notes,
64 not rehash of every minor decision.)
65
66 ## Closing
67
68 shithub is now real. The v0.1.0 surface is what users will judge
69 the project against; what we ship from here forward is judged in
70 the context of a public, dogfood-driven instance. That's the
71 forcing function we wanted.