Nextjs developer
Skill risadams/ink-and-agency/skills/language-specialists/nextjs-developer
A dual-host skills plugin for Claude Code and OpenAI Codex with a self-evolve loop that learns from every invocation.
npx -y skills add risadams/ink-and-agency --skill nextjs-developerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when building production Next.js 14+ applications — App Router, server components, server actions, Core Web Vitals, and SEO-optimized deployment.
SKILL.md
3.4 KB, 613 tokens by cl100k_base, as published. Nobody here has run it
Next.js Developer
You build Next.js applications where the server/client boundary is the central design decision.
Match the codebase first
Read the existing configuration, conventions, and dependency choices before applying anything below. Introducing a second idiom into a consistent codebase costs more than it returns; where the existing approach genuinely blocks the work, raise it as its own change rather than resolving it inside an unrelated ticket.
Know which side every component runs on
Server Components are the default in the App Router and cannot use state, effects, or browser
APIs. 'use client' marks a boundary, and everything imported below it joins the client
bundle — a single misplaced directive high in the tree can pull most of the application to the
client. Push client boundaries as deep as possible.
Never leak secrets across the boundary
Server Components can read environment variables and databases directly. Anything passed as a prop to a Client Component is serialized into the HTML and is visible to the user. This is the mistake with the worst consequences in this framework — check what crosses the boundary.
Caching is the thing that will confuse you
Next.js caches at several layers, and defaults have changed across versions. Be explicit about revalidation rather than relying on defaults, and know which layer is serving a stale value before debugging the data source. "It works in dev but shows old data in production" is almost always this.
Server Actions are public endpoints
They look like function calls and are HTTP handlers. Authenticate and authorize inside every one, and validate the arguments — the client controls them entirely, regardless of what the calling component does.
Fetch where the data is needed
Fetch in the Server Component that renders it rather than threading data down. Parallelize independent requests instead of awaiting sequentially — sequential awaits in a server component are a common and invisible latency cost. Suspense boundaries so a slow section does not block the page.
Images, fonts, and Core Web Vitals
next/image with dimensions to prevent layout shift, next/font to avoid the flash, and
explicit dynamic imports for heavy client-side libraries. These are the defaults that decide
the metrics.
Reporting
State which components are server versus client and why, the caching and revalidation strategy, and how Server Actions are secured.
<!-- self-evolve:start -->Host portability: tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see PORTABILITY.md.
Self-Evolve Loop
Journal: ~/.ink-and-agency/learnings/nextjs-developer.md (workspace-local
.ink-and-agency/learnings/nextjs-developer.md where the sandbox confines writes). Read it
first, append what the run taught last — SELF-EVOLVE.md.
What ships with it: 2 files
1.8 KB alongside SKILL.md
agents/
- openai.yaml280 B
- README.md1.6 KB
Gives 0 of the 12 instructions most seo skills give in 613 tokens
Counted across 454 of the 460 authors here whose files we hold, read 2026-08-07
- Implement structured data using JSON-LDin 29 of 454, across 25 files
- Write unique meta descriptions under 160 charactersin 25 of 454, across 20 files
- Verify one H1 exists per pagein 24 of 454, across 15 files
- Maintain a single H1 per pagein 24 of 454, across 15 files
- Use JSON-LD format for all schema markupin 23 of 454, across 16 files
- Use descriptive anchor text for internal linksin 22 of 454, across 18 files
- Add descriptive alt text to imagesin 19 of 454, across 15 files
- Read product marketing context before auditingin 19 of 454, across 11 files
- Write unique title tags under 60 charactersin 19 of 454, across 14 files
- Add unique title and meta description per pagein 19 of 454, across 17 files
- Fetch robots.txt and sitemap.xmlin 19 of 454, across 18 files
- Place the primary keyword in the first 100 wordsin 18 of 454, across 17 files
Said here and by no other author read
- read existing conventions before applying defaults
- push client boundaries as deep as possible
- check what props cross the server-client boundary
- be explicit about cache revalidation
- authenticate and authorize inside every server action
- validate all server action arguments
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.