Loading...
Loading...
Run /check-virality, then fix the highest priority virality issue. Creates one fix per invocation. Invoke again for next issue. Use /log-virality-issues to create issues without fixing.
npx skill4agent add phrazzld/claude-config fix-virality/check-virality/virality/check-viralityapp/layout.tsximport type { Metadata } from 'next';
export const metadata: Metadata = {
metadataBase: new URL(process.env.NEXT_PUBLIC_APP_URL!),
title: {
default: 'Your Product - Tagline',
template: '%s | Your Product',
},
description: 'One sentence that makes people want to try it.',
openGraph: {
type: 'website',
locale: 'en_US',
siteName: 'Your Product',
images: ['/og-default.png'],
},
twitter: {
card: 'summary_large_image',
creator: '@yourhandle',
},
};pnpm add @vercel/ogapp/api/og/route.tsximport { ImageResponse } from 'next/og';
export const runtime = 'edge';
export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
const title = searchParams.get('title') ?? 'Your Product';
return new ImageResponse(
(
<div style={{
height: '100%',
width: '100%',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#000',
color: '#fff',
}}>
<div style={{ fontSize: 60, fontWeight: 'bold' }}>{title}</div>
</div>
),
{ width: 1200, height: 630 }
);
}components/share-button.tsx'use client';
import { useState } from 'react';
export function ShareButton({ url, title }: { url: string; title: string }) {
const [copied, setCopied] = useState(false);
const share = async () => {
if (navigator.share) {
await navigator.share({ url, title });
} else {
await navigator.clipboard.writeText(url);
setCopied(true);
setTimeout(() => setCopied(false), 2000);
}
};
return <button onClick={share}>{copied ? 'Copied!' : 'Share'}</button>;
}# Test OG tags
curl -s https://yoursite.com | grep -E "og:|twitter:" | head -10
# Test OG image endpoint
curl -I "http://localhost:3000/api/og?title=Test"Fixed: [P0] No OG tags configured
Updated: app/layout.tsx
- Added metadataBase
- Added openGraph configuration
- Added Twitter card configuration
Verified: curl shows og:title, og:image, twitter:card
Next highest priority: [P1] No dynamic OG images
Run /fix-virality again to continue.git checkout -b feat/virality-$(date +%Y%m%d)/fix-virality/check-virality/log-virality-issues/virality/launch-strategy