0 / 93 done · 0% · critical 0/25 Weekly review · pillars: OG · Socials · Desktop/iPad/Mobile ResetProgress saves in this browser only.
OG Static PNG/JPG 1200×630, non-empty body, metadata wired, curl size ≫ 0
Socials X + TG (at minimum) · avatars/headers · bio links · footer row · draft→approve
Desktop · iPad · Mobile Design + verify all three · inputs ≥16px · no field zoom · touch targets
Must-pass pillars 0/7 Ship is blocked until OG, socials, and all three breakpoints pass.
OG card complete Critical Static PNG/JPG 1200×630 — never SVG · filled design · metadata images ?v= · curl size ≫ 0 · X/TG/iMessage unfurl looks right Twitter/X large card Critical summary_large_image · same art as OG or dedicated twitter.png · test with card validator / paste in DM Socials live Critical X handle · Telegram · footer icons · bios point at prod URL · brand avatars/headers Desktop layout pass Critical ≥1280px — hierarchy, density, no stretched junk iPad layout pass Critical 768–1024px portrait + landscape — not a broken desktop or phone squeeze Mobile layout pass Critical ≤430px — stack, 44px targets, no horizontal scroll, readable type Mobile fields never zoom Critical inputs/textareas/selects font-size ≥ 16px
0. Intent 0/5
One-liner What it is and who it’s for Name + slug Product name, URL slug, ticker if any Stack Next.js, Cloudflare, wallet, DB Solana or not If not Solana, no Solana chrome in UI Success metric MVP routes that must return 200
1. Telegram / session 0/4
Ops topic created One topic = one project Topic ID recorded Session stays in that topic only Portfolio / projects registry row added
2. Domain & DNS 0/7
Domain chosen / registered Registrar + expiry logged Cloudflare zone added NS migrated if needed Apex + www plan www → apex 301 preferred Preview host [slug].metasal.xyz via CF tunnel Prod host Workers custom domain or Pages Verify dig + curl 200 after flips
3. Email 0/4
Routing address hello@, gm@, or product@ CF Email Routing / Resend domain From-name + reply-to decided Contact flow Form / Typeform → Telegram optional
4. Repo & code baseline 0/11
GitHub repo private Git author set metasal1 / gm@metasal.xyz .env gitignored before first commit Next.js baseline Current default stack sitemap.ts included Cloudflare deploy path locked OpenNext Worker or Pages RPC if on-chain Helius mainnet Auth Privy only if wallet needed; skip login fluff No PostHog / no DexScreener Icons only in UI Lucide; solana-icons if Solana — no emoji Footer / Made-by branding correct
5. Brand 0/7
Logo Mark, wordmark, dark + light if needed Press kit path Project /press and/or studio press Colours Primary, secondary, bg, text, accent hex Type Heading + body fonts Voice 3 adjectives + words to avoid Brand asset source locked Favicon PNG (+ apple-touch) Never SVG favicon
6. Open Graph (critical) 0/5 First impression in every share. Empty or SVG OG = failed ship.
Static OG PNG/JPG committed Critical public/og.png (or per-route) — never edge ImageResponse-only on CF Pages 1200×630 exact Critical file(1) confirms dimensions Metadata images wired Critical openGraph + twitter images with ?v= cache bust on every regen Prod OG curl size ≫ 0 Critical HTTP 200 + image/png|jpeg + body not empty Unfurl smoke Critical Paste prod URL in X/TG — card shows title + image
7. Socials (critical) 0/8 Accounts, assets, and site chrome — not optional polish.
X handle Critical Created or explicitly deferred with reason X avatar + header from brand kit Critical X bio + link = prod URL Critical X posting rules Draft → Metasal approve → post · no hashtags · never before live 200 Telegram public/channel if product needs it Critical Site footer / header social row Critical X · TG · GitHub as relevant — real icons not emoji Discord / Farcaster / LinkedIn / IG — yes or no In-product share uses OG URL Share buttons / copy-link hit canonical with working card
8. Desktop · iPad · Mobile (critical) 0/6 Three real layouts. Not one layout that kinda shrinks.
Desktop designed Critical Wide grid, nav, tables — verify ≥1280px iPad designed Critical Portrait + landscape 768–1024 — touch-friendly Mobile designed Critical Stacked, thumbs, safe areas — ≤430px Form fields ≥16px Critical No iOS Safari zoom on focus Touch targets ≥44px on mobile/iPad Preview checked on all three before PR Critical
9. Analytics & SEO 0/6
GA4 property + tag in layout Measurement ID recorded Google Search Console + sitemap submit robots.txt / crawler policy Canonical URLs (+ JSON-LD if product site) Uptime monitor
10. Infra & secrets 0/6
CF zone / account access confirmed Preview tunnel route Prod Worker / Pages project name Env vars set before first prod rely API keys stored safely Never in git DB backup note if applicable
11. Legal / ops 0/4
Privacy / terms if user data or payments Support email on site Invoice path if client work Shared docs folder if needed
12. Ship loop 0/9
Local dev + CF tunnel Preview URL 200 end-to-end Desktop / iPad / mobile pass signed off Critical Pillar section complete OG + social unfurl pass signed off Critical PR → merge (never straight to main) CF deploy Prod curl markers 200 Critical Home, key routes, OG bytes, sitemap GSC sitemap OK Announce only after live 200
13. Closeout 0/4
Project note filled Links, IDs, brand tokens Portfolio registry complete Shipped URL + leftover TODOs noted Recurring site skill optional Do not Emoji in UI SVG OG or favicon Empty OG body Skip socials Desktop-only layout Inputs under 16px on mobile PostHog DexScreener Public repo by default Push to main Tweet before live Skip GA4 Name:
Slug:
One-liner:
Domain:
Registrar:
CF zone:
Preview: https://<slug>.metasal.xyz
Prod:
Telegram topic ID:
Repo:
Worker/Pages name:
Email:
X @:
TG:
GA4:
Colours:
Fonts:
Logo path:
Press:
OG path (1200×630 PNG):
Desktop pass:
iPad pass:
Mobile pass: