Loading...
Loading...
Production readiness checklist covering domains, SEO, security, and deployment. Use when asked to "ship it", "deploy to production", "go live", "launch", or when preparing a project for production deployment.
npx skill4agent add howells/arc letsgodocs/progress.mdDetection signals:
├── Framework: package.json (next, remix, astro, etc.)
├── Auth: auth libraries, OAuth config, session handling
├── Payments: stripe, paddle, lemon-squeezy
├── Email: resend, sendgrid, postmark, nodemailer
├── Database: prisma, drizzle, supabase, planetscale
├── Analytics: GA, mixpanel, posthog, plausible
├── i18n: next-intl, i18next, locale files
├── CMS: sanity, contentful, payload
├── File uploads: uploadthing, cloudinary, S3 config
└── Existing meta: robots.txt, sitemap, og images## Project Detection
**Framework:** Next.js 14 (App Router)
**Detected features:**
- ✓ Authentication (NextAuth with Google, GitHub providers)
- ✓ Payments (Stripe)
- ✓ Database (Prisma + PostgreSQL)
- ✓ Email (Resend)
- ✗ i18n (not detected)
- ✗ Analytics (not configured)
**Existing production config:**
- ✓ robots.txt present
- ✗ sitemap.xml missing
- ✗ Site verification meta tags missing**Questions to scope your checklist:**
1. **Target platforms for site verification?**
- [ ] Google Search Console
- [ ] Bing Webmaster Tools
- [ ] Pinterest
- [ ] Twitter/X
- [ ] Facebook/Meta
- [ ] Yandex
- [ ] Other: ___
2. **Social sharing requirements?**
- [ ] Need OG images for all pages
- [ ] Twitter Cards (summary vs large image)
- [ ] LinkedIn sharing
- [ ] Pinterest Rich Pins
3. **Email sending from custom domain?**
- [ ] Yes (need SPF/DKIM/DMARC DNS records)
- [ ] No (using provider's domain)
4. **Compliance requirements?**
- [ ] GDPR (EU users)
- [ ] CCPA (California)
- [ ] Cookie consent banner
- [ ] Accessibility (WCAG 2.1)
5. **Launch type?**
- [ ] Soft launch (limited audience)
- [ ] Public launch (SEO, marketing)
- [ ] Migration (redirects needed)<!-- Google Search Console -->
<meta name="google-site-verification" content="..." />
<!-- Bing Webmaster -->
<meta name="msvalidate.01" content="..." />
<!-- Pinterest -->
<meta name="p:domain_verify" content="..." />
<!-- Twitter/X (for analytics, not cards) -->
<meta name="twitter:site:id" content="..." />
<!-- Facebook/Meta domain verification -->
<meta name="facebook-domain-verification" content="..." />
<!-- Yandex -->
<meta name="yandex-verification" content="..." />Reference:for full SEO rules.${CLAUDE_PLUGIN_ROOT}/rules/seo.md
<html lang="..."><meta name="viewport"><h1>altnoindex/arc:seoImageResponse// app/og/route.tsx - Dynamic OG image generation
import { ImageResponse } from 'next/og'
export async function GET(request: Request) {
const { searchParams } = new URL(request.url)
const title = searchParams.get('title') ?? 'Default Title'
return new ImageResponse(
(
<div style={{ /* your design */ }}>
<h1>{title}</h1>
</div>
),
{ width: 1200, height: 630 }
)
}// app/layout.tsx or page.tsx
export const metadata: Metadata = {
openGraph: {
images: ['/og?title=Your+Page+Title'],
},
}/arc:designapp/
├── icon.tsx # Dynamic favicon (uses ImageResponse)
├── icon.png # Or static favicon (auto-detected)
├── apple-icon.png # Apple touch icon (auto-detected)
└── opengraph-image.tsx # Dynamic OG image per route// app/icon.tsx
import { ImageResponse } from 'next/og'
export const size = { width: 32, height: 32 }
export const contentType = 'image/png'
export default function Icon() {
return new ImageResponse(
(
<div style={{
fontSize: 24,
background: '#000',
color: '#fff',
width: '100%',
height: '100%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
borderRadius: 4,
}}>
A
</div>
),
{ ...size }
)
}/arc:designnext build<body>// Tailwind CSS
<body className="antialiased">
// Or with more control:
<body className="antialiased text-base leading-relaxed text-foreground bg-background">body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}antialiasedoverflow-x-hiddenscroll-behavior: smoothscroll-smoothmin-h-screenvercel-react-best-practicesInvoke skill: vercel-react-best-practices
"Review performance patterns. Check: component rendering, data fetching, bundle optimization"vercel-react-native-skillsInvoke skill: vercel-react-native-skills
"Review React Native production readiness. Check: list performance, animation optimization, memory leaks, native module usage, Expo config"pnpm auditInvoke skill: /arc:legal
"Generate Privacy Policy, Terms of Service, and Cookie Policy for this project"pnpm tsc --noEmitpnpm biome check ./arc:audit --hygieneWRONG → CORRECT
Github → GitHub
Javascript → JavaScript
Typescript → TypeScript
NextJS/Nextjs → Next.js
NodeJS/Nodejs → Node.js
VSCode → VS Code
MacOS → macOS
iOS (correct) → iOS (not IOS)
PostgreSQL → PostgreSQL (not Postgres in formal contexts)
MongoDB → MongoDB (not Mongo in formal contexts)
LinkedIn → LinkedIn (not Linkedin)
YouTube → YouTube (not Youtube)
PayPal → PayPal (not Paypal)# Find potential casing issues (case-insensitive search, then review)
grep -ri "github\|javascript\|typescript\|nextjs\|nodejs" --include="*.tsx" --include="*.ts" --include="*.md" | grep -v node_modules/arc:responsivetabular-numsprefers-reduced-motion@media (hover: hover)aria-labeltext-basetransition: allisolation: isolateAlertDialogconfirm()Reference:for detailed rules on each item.${CLAUDE_PLUGIN_ROOT}/rules/interface/
# Build production
pnpm build
# Run tests
pnpm test
# Check for issues
pnpm tsc --noEmit
pnpm biome check .
# Check bundle for secrets (manual review)
# Look for API keys, tokens, passwords in build output# Deploy via Vercel CLI
vercel --prod
# Or via git (if Vercel GitHub integration set up)
git push origin mainvercel:deployInvoke skill: vercel:deploy${CLAUDE_PLUGIN_ROOT}/references/arc-log.md/arc:letsgo — [Deployed to URL / Checklist complete]