feat: vibestack rebrand, vendored skills, blog swarm, SEO foundation#95
Merged
Merged
Conversation
Rebrand - Rename workspace from @Starter-SAAS to @VibeStack across 230+ files - Marketing hero, header, footer, OG route, metadata updated - README, CONTEXT.md, CLAUDE.md, AGENTS.md rewritten around the "AI-first SaaS starter" positioning Vendored Claude Code skills (.claude/skills/) - grill-with-docs, grill-me, to-prd, to-issues, triage, tdd, diagnose, prototype, improve-codebase-architecture, write-a-skill - New: setup (first-run env bootstrap), blog-writer (5-agent swarm), impeccable (frontend design, mandatory entry for UI work) - scripts/update-skills.sh + pnpm skills:update Web app redesign ("The Lit Reading Room") - Token overlay in apps/web/src/index.css maps shadcn vars to the marketing palette (deep blue-black ink, warm gold accent, parchment fg) - Fraunces + Geist + JetBrains Mono wired via next/font/google - Auth layout, sign-in/sign-up/forgot/verify/reset pages redesigned - App shell sidebar with gold active strip, mono section labels, vibe/stack logomark - Dashboard: typographic ledger replaces the 4-card stat grid - Success page, onboarding wizard hero updated - requireAdmin redirects fixed (no more localhost loop) SEO foundation - apps/marketing/src/app/robots.ts + sitemap.ts - metadataBase, alternates.canonical, hreflang on root layout - Per-page metadata for home, blog index, docs, docs slug - JSON-LD (Website, SoftwareApplication, BlogPosting, TechArticle) - Atom feed at /blog/feed.xml (top-level, outside [locale] matcher) - NEXT_PUBLIC_WEB_APP_URL required in prod, dev fallback warns - /og route runtime=edge, revalidate=86400 - rel=noopener noreferrer on external links, real GitHub URL, #how-it-works and #faq anchor IDs Toprank plugin wired - .mcp.json NotFair-GoogleAds + NotFair-MetaAds HTTP servers - /setup skill instructs marketplace install - CLAUDE.md/AGENTS.md route SEO/GEO/Ads intents to /toprank:* Blog writer swarm - Five-agent topology: researcher → writer → (SEO editor + image prompt architect)parallel → image producer - Image Prompt Architect rewrites placeholders with section-anchored prompts before any image is generated, avoiding generic abstract output - Gemini text + image worker scripts (write-long-blog-post.ts, gen-blog-inline-images.ts) - Images served from apps/marketing/public/blog/<slug>/, HTML <img> tags in MDX so fumadocs doesn't try to import them as modules - DynamicIslandTOC component in @vibestack/ui (motion + lucide-react), mounts on every blog post - Editorial typography (.blog-body) replaces @tailwindcss/typography - Two seed posts shipped as drafts ADRs - 0004 AI-first positioning - 0005 impeccable as default frontend skill - 0006 toprank for SEO/GEO/Ads - 0007 blog-writer swarm Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Big positioning + workflow PR. Rebrands the repo to vibestack, vendors the Claude Code skill set, ships the blog-writer swarm, redesigns the web app, lays the SEO foundation, and wires the toprank plugin.
@starter-saas→@vibestackacross 230+ files. Marketing hero, footer, OG, metadata, README, CLAUDE/CONTEXT/AGENTS docs rewritten around the AI-first SaaS starter positioning..claude/skills/: grill-with-docs, grill-me, to-prd, to-issues, triage, tdd, diagnose, prototype, improve-codebase-architecture, write-a-skill + newsetup,blog-writer,impeccable. Update viapnpm skills:update.apps/web/src/index.css, Fraunces + Geist + JetBrains Mono fonts, redesigned auth flow, app shell, dashboard typographic ledger, success page, onboarding hero.requireAdminredirect loop fixed./blog/feed.xml, og route on edge runtime, rel-noopener sweep, required production env vars..mcp.json./setupskill instructs marketplace install. CLAUDE.md/AGENTS.md route SEO/GEO/Ads intents to/toprank:*.apps/marketing/public/blog/<slug>/.@vibestack/ui(motion + lucide-react), mounts on every blog post. Editorial typography (.blog-body) replaces@tailwindcss/typography.Test plan
pnpm install+pnpm typecheck(5/5 packages green locally)pnpm devboots web :3001, marketing :3000, admin :3002/,/blog,/docs,/changelog,/robots.txt,/sitemap.xml,/blog/feed.xml.env.examplefiles updated; addNEXT_PUBLIC_MARKETING_URLandNEXT_PUBLIC_WEB_APP_URLbefore deploying/blog-writerto generate a fresh post via the swarm/toprank:seo-analysis <deployed-url>post-merge🤖 Generated with Claude Code