Not in the top 1,000 by GitHub stars

BuildShipGrowRepeat/nextjs-sanity-blog-skill

Opinionated Claude Code skill for adding an SEO-first, translate-ready blog to a Next.js + Sanity site. 40-question intake, one-page plan, batteries-included spec, AI hero images via Nano Banana Pro.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/building-blog/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1f5e1db47a60

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 1f5e1db47a6059d647ee6a6f5e82eae2fe34612c

git clone --filter=blob:none --no-checkout https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill.git .hotskills/buildshipgrowrepeat-nextjs-sanity-blog-skill && git -C .hotskills/buildshipgrowrepeat-nextjs-sanity-blog-skill checkout --detach 1f5e1db47a6059d647ee6a6f5e82eae2fe34612c # Copy each selected skill directory from .hotskills/buildshipgrowrepeat-nextjs-sanity-blog-skill into .claude/skills/<skill-name>/
11GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202611

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

building-blog

When your agent uses it

Use when adding a blog to a Next.js + Sanity site, building a blog section from scratch, integrating Sanity CMS for editorial content, or setting up an SEO-optimized article surface. Triggers on phrases like "add a blog", "build the blog", "create blog section", "set up blog with Sanity", "integrate Sanity CMS", "blog architecture", or any new-blog scoping conversation on a Next.js project.

What it loads into context

Frontmatter

98 tokens

Always available to the agent

SKILL.md

1,389 tokens

When the skill is activated

Reference documents

18,945 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Overview
  2. Files
  3. Workflow
  4. When NOT to use this skill
  5. Recommended companion skills

Files

  • ../../.claude-plugin/marketplace.jsonasset846 bytes
  • ../../.claude-plugin/plugin.jsonasset1,074 bytes
  • SKILL.mdcore5,906 bytes
  • blog-image-style-guide.mddoc12,712 bytes
  • blog-technical-requirements.mddoc62,439 bytes
Read SKILL.md

# Building a Blog (Next.js + Sanity)

## Overview

Universal workflow for adding a blog to a Next.js site backed by Sanity CMS. Targets a corporate blog: SEO-first, i18n-ready, performance-budgeted, accessibility-compliant.

**SKILL.md is the orchestrator. The spec lives in the two reference files.**

## Files

- `blog-technical-requirements.md` — §0 intake questionnaire (30+ questions) → §1 Project Profile → §2–§20 universal spec → checklist. Edit only §0 answers and §1 per project.
- `blog-image-style-guide.md` — universal template for AI-generated hero imagery via Gemini 3 Pro Image (Nano Banana Pro). Intake questions on top, aesthetic skeleton in the middle, three example slots at the bottom.

## Workflow
View the complete source on GitHub

Skills included

  • building-blog

Repository facts

License
MIT
Created
May 21, 2026
Last pushed
May 21, 2026
Forks
1
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Show all 41 signals by file

.claude-plugin/marketplace.json

  • Network accessline 4
    "name": "Vladimir Terekhov",     "email": "vv@attractgroup.com",     "url": "https://github.com/BuildShipGrowRepeat"
  • Network accessline 5
    "email": "vv@attractgroup.com",     "url": "https://github.com/BuildShipGrowRepeat"   },
  • Network accessline 6
    "url": "https://github.com/BuildShipGrowRepeat"
  • Network accessline 12
    "description": "Opinionated, batteries-included spec for adding an SEO-first, i18n-ready blog to a Next.js + Sanity site. 40-question intake, one-page plan, 20-section spec, pass/fail checklist. Includes AI hero images via Gemini 3 Pro Imag
  • Network accessline 13
    "version": "0.1.0",       "homepage": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill",       "license": "MIT",
  • Network accessline 14
    "homepage": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill",

.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Vladimir Terekhov",     "email": "vv@attractgroup.com",     "url": "https://github.com/BuildShipGrowRepeat"
  • Network accessline 7
    "email": "vv@attractgroup.com",     "url": "https://github.com/BuildShipGrowRepeat"   },
  • Network accessline 8
    "url": "https://github.com/BuildShipGrowRepeat"
  • Network accessline 9
    },   "license": "MIT",   "homepage": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill",
  • Network accessline 10
    "license": "MIT",   "homepage": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill",   "repository": {
  • Network accessline 11
    "homepage": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill",
  • Network accessline 12
    "repository": {     "type": "git",     "url": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill.git"
  • Network accessline 13
    "type": "git",     "url": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill.git"   },
  • Network accessline 14
    "url": "https://github.com/BuildShipGrowRepeat/nextjs-sanity-blog-skill.git"

skills/building-blog/SKILL.md

  • Network accessline 43
    Use [`context7`](https://context7.com) if it is available in the environment (it is the fastest way to read current library docs); otherwise fall back to the library's official docs site via `WebFetch`. Cross-check against the spec when you
  • Network accessline 55
    - **Hero image generator** — Gemini 3 Pro Image (Nano Banana Pro) — current model name, image generation endpoint, supported sizes/aspect ratios, JSON schema for `responseModalities` - **JSON-LD** — Google's [Article structured data](https:
  • Network accessline 56
    - **JSON-LD** — Google's [Article structured data](https://developers.google.com/search/docs/appearance/structured-data/article) page for current required fields

skills/building-blog/blog-technical-requirements.md

  • Network accessline 9
    - §3, §6 — Sanity schema syntax, `defineType`/`defineField`/`defineQuery`, `next-sanity` client options, draft mode + `stega` rules - §7 — `generateMetadata`, dynamic `params` shape in current Next.js major (sync vs `Promise`), `alternates.
  • Network accessline 10
    - §7 — `generateMetadata`, dynamic `params` shape in current Next.js major (sync vs `Promise`), `alternates.languages` format - §7, §9 — Google's [Article structured data](https://developers.google.com/search/docs/appearance/structured-data
  • Network accessline 11
    - §7, §9 — Google's [Article structured data](https://developers.google.com/search/docs/appearance/structured-data/article) and [FAQPage](https://developers.google.com/search/docs/appearance/structured-data/faqpage) required fields
  • Network accessline 359
    {   "@context": "https://schema.org",
  • Network accessline 360
    "@context": "https://schema.org",
  • Network accessline 402
    <link rel="alternate" hreflang="en" href="https://example.com/en/blog" />
  • Network accessline 403
    <link rel="alternate" hreflang="fr" href="https://example.com/fr/blog" />
  • Network accessline 404
    <link rel="alternate" hreflang="de" href="https://example.com/de/blog" />
  • Network accessline 405
    <link rel="alternate" hreflang="x-default" href="https://example.com/en/blog" />
  • Network accessline 884
    - **Alternatives on the same API key:** `gemini-2.5-flash-image` (~$0.04, faster, lower adherence), `gemini-3.1-flash-image-preview` (newer flash), `imagen-4.0-ultra-generate-001` (~$0.08, best pure photoreal but weaker instruction followin
  • Network accessline 885
    - **Aspect ratio:** 16:9 landscape. Passed via `generationConfig.imageConfig.aspectRatio` in the API body. - **Auth:** single env var `GEMINI_API_KEY` from [aistudio.google.com/apikey](https://aistudio.google.com/apikey). Must be in `.env.l
  • Network accessline 886
    [Credential-related source omitted]
  • Access to secretsline 886
    [Credential-related source omitted]
  • Network accessline 887
    [Credential-related source omitted]
  • Access to secretsline 887
    [Credential-related source omitted]
  • Access to secretsline 912
    [Credential-related source omitted]
  • Access to secretsline 953
    [Credential-related source omitted]
  • Access to secretsline 954
    [Credential-related source omitted]
  • Access to secretsline 958
    [Credential-related source omitted]
  • Network accessline 970
    async function generateImage(prompt: string): Promise<{ buffer: Buffer; mime: string }> {   const url = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent?key=${geminiKey}`;
  • Network accessline 971
    const url = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent?key=${geminiKey}`;
  • Network accessline 977
    const response = await fetch(url, {
  • Access to secretsline 1119
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 26 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/building-blog/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/building-blog/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/building-blog/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/building-blog/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/building-blog/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.