# Launch validation checklist Manual QA pass for v0.1.0. Performed on a staging environment that mirrors production (Docker Compose with the prod overrides, real SMTP, public DNS + TLS termination). The goal is to convince yourself a brand-new user can go from landing page to first note without confusion, and that a contributor can file an issue or open a PR through the templates. ## Environment - [ ] Staging URL reachable over HTTPS. - [ ] `LIBRENOTES_BASE_URL` matches the staging URL exactly. - [ ] SMTP credentials valid; test send to a real inbox succeeds. - [ ] `/healthz` returns 200 from outside the Docker network. ## End-user flow ### Desktop — Chrome - [ ] Landing page (`/`) loads and renders correctly. - [ ] All links in the header and footer work. - [ ] "Sign in with email" → `/login.html`. - [ ] Submit a never-before-seen address → success state shows. - [ ] Magic-link email arrives within 30s. - [ ] Click link → `/verify.html` → "Go to your notes". - [ ] Token is stripped from the address bar after verification. - [ ] App shell shows email + sync badge transitions to "synced" within a few seconds. - [ ] Onboarding dialog appears. - [ ] Welcome note exists in the notebook. - [ ] Dismissing the dialog does not reopen on reload. - [ ] Theme toggle persists across reload. - [ ] Sign out clears session and tenant store; signing back in does NOT show onboarding again (same device, same tenant). ### Desktop — Firefox - [ ] Repeat the same flow with no console errors specific to Firefox. ### Mobile — iOS Safari - [ ] Layout has no horizontal scroll on iPhone SE (320px). - [ ] Touch handles for any interactive controls respond without ghost clicks. - [ ] PWA installable via "Add to Home Screen". ### Mobile — Android Chrome - [ ] beforeinstallprompt surfaces the install button. - [ ] Installed PWA opens in standalone mode. - [ ] Offline: open the app with airplane mode on; the shell renders and the welcome note loads from IndexedDB. ## Documentation - [ ] User guide accurate (reflects current behaviour). - [ ] Self-hosting guide produces a working stack on a fresh Debian box (re-run quick-start). - [ ] API reference matches actual responses for /auth and /api/notes. - [ ] CONTRIBUTING dev-setup section runs to a green `make test` from a fresh clone. ## Community infrastructure - [ ] "New issue" page shows two templates (bug, feature). - [ ] Bug template's required fields actually require input. - [ ] PR template renders on the new-PR form. - [ ] CoC reachable from the README. ## Backup & restore - [ ] `scripts/backup.sh` produces an archive on the staging host. - [ ] `scripts/backup-restore-test.sh` passes against that archive. - [ ] Retention prune leaves the right number of files. ## Sign-off - [ ] All checked. Any failures filed as separate bug reports against the v0.1.0 milestone. - [ ] QA performer: ____________________ - [ ] Date (UTC): ____________________