Launch Checklist
Pre-launch checklist covering SEO, performance, accessibility, analytics, and deployment.
- Every page has a unique title and description in its metadata export.
- Open Graph images are set on key pages (home, blog posts, portfolio items).
- Favicon is present in the public directory and renders correctly in the browser tab.
- sitemap.xml is generated and includes all public routes.
- robots.txt exists and allows crawling of public pages.
- Canonical URLs are set if the same content is accessible at multiple paths.
- All images are optimized — appropriate format (WebP/AVIF for photos, SVG for icons), reasonable dimensions, and file sizes under 200KB where possible.
- Fonts are self-hosted or loaded via next/font to avoid layout shift.
- No unnecessarily large third-party bundles. Check bundle size with next build output.
- Run a Lighthouse audit — aim for 90+ on Performance, Accessibility, Best Practices, and SEO.
- Verify Core Web Vitals (LCP, CLS, INP) are within acceptable thresholds.
- All forms submit correctly — validation fires, success/error states display, data reaches the backend.
- All internal links resolve. No broken routes or 404s from navigation.
- All external links open correctly (check target and rel attributes).
- The 404 page is styled and provides a way back to the site.
- The site is fully responsive — test on mobile, tablet, and desktop breakpoints.
- Dark mode works correctly across all pages with no flash of unstyled content.
- All images have meaningful alt text.
- The site is fully navigable via keyboard — tab order is logical, focus styles are visible.
- Color contrast meets WCAG AA (4.5:1 for text, 3:1 for large text).
- Semantic HTML is used throughout — headings, landmarks, lists, buttons vs. links.
- Interactive elements have accessible names (aria-label on icon buttons, labels on form fields).
- Test with a screen reader (VoiceOver on Mac) on at least the homepage and one key flow.
- The site is served over HTTPS with a valid SSL certificate.
- Environment variables are not exposed to the client — only NEXT_PUBLIC_ prefixed vars are intentionally public.
- No sensitive data (API keys, tokens, credentials) is committed to the repository.
- Content Security Policy headers are configured if the site loads third-party scripts.
- Analytics provider is installed and receiving data (verify in the dashboard).
- Key events are tracked — CTA clicks, form submissions, page views on critical routes.
- Analytics script does not block rendering (loaded async or deferred).
- Cookie/privacy consent banner is in place if required by jurisdiction.
- All environment variables are set in the hosting platform (Vercel, Netlify, etc.).
- Custom domain is configured with DNS pointing to the hosting provider.
- Redirects are in place for any changed or removed routes.
- Preview/staging build passes before promoting to production.
- Post-deploy smoke test — visit the live URL, click through key pages, submit a form.
LAUNCH.md
Copy this file into your project root. An AI agent can pick it up and programmatically audit your site against each item.
LAUNCH.md
# Launch Checklist
Pre-launch checklist for auditing the site before going live. Items marked with [agent] can be verified programmatically by an AI agent. Items marked with [manual] require human verification.
## SEO & Metadata
- [ ] Every page has a unique title and description in its metadata export [agent]
- [ ] Open Graph images are set on key pages (home, blog posts, portfolio items) [agent]
- [ ] Favicon is present in the public directory [agent]
- [ ] sitemap.xml is generated and includes all public routes [agent]
- [ ] robots.txt exists and allows crawling of public pages [agent]
- [ ] Canonical URLs are set if the same content is accessible at multiple paths [agent]
## Performance
- [ ] All images are optimized — appropriate format, reasonable dimensions, file sizes under 200KB [agent]
- [ ] Fonts are self-hosted or loaded via next/font [agent]
- [ ] No unnecessarily large third-party bundles — check next build output [agent]
- [ ] Lighthouse audit scores 90+ on Performance, Accessibility, Best Practices, and SEO [manual]
- [ ] Core Web Vitals (LCP, CLS, INP) are within acceptable thresholds [manual]
## Functionality
- [ ] All forms submit correctly — validation fires, success/error states display [manual]
- [ ] All internal links resolve — no broken routes or 404s [agent]
- [ ] All external links open correctly with appropriate target and rel attributes [agent]
- [ ] 404 page is styled and provides a way back to the site [agent]
- [ ] Site is fully responsive — test on mobile, tablet, and desktop breakpoints [manual]
- [ ] Dark mode works correctly across all pages with no flash of unstyled content [manual]
## Accessibility
- [ ] All images have meaningful alt text [agent]
- [ ] Site is fully navigable via keyboard — tab order is logical, focus styles are visible [manual]
- [ ] Color contrast meets WCAG AA (4.5:1 for text, 3:1 for large text) [manual]
- [ ] Semantic HTML is used — headings, landmarks, lists, buttons vs links [agent]
- [ ] Interactive elements have accessible names (aria-label on icon buttons, labels on inputs) [agent]
- [ ] Tested with a screen reader (VoiceOver on Mac) on at least the homepage [manual]
## Security
- [ ] Site is served over HTTPS with a valid SSL certificate [manual]
- [ ] Environment variables are not exposed to the client — only NEXT_PUBLIC_ prefixed vars are public [agent]
- [ ] No sensitive data (API keys, tokens, credentials) is committed to the repository [agent]
- [ ] Content Security Policy headers are configured if loading third-party scripts [manual]
## Analytics & Tracking
- [ ] Analytics provider is installed and receiving data [manual]
- [ ] Key events are tracked — CTA clicks, form submissions, page views on critical routes [manual]
- [ ] Analytics script does not block rendering (loaded async or deferred) [agent]
- [ ] Cookie/privacy consent banner is in place if required by jurisdiction [manual]
## Deployment
- [ ] All environment variables are set in the hosting platform [manual]
- [ ] Custom domain is configured with DNS pointing to the hosting provider [manual]
- [ ] Redirects are in place for any changed or removed routes [agent]
- [ ] Preview/staging build passes before promoting to production [agent]
- [ ] Post-deploy smoke test — visit the live URL, click through key pages, submit a form [manual]