Awesome-claude web-dev
Full-stack web development assistant. Use when building web apps, APIs, frontend components, or converting designs to code. Triggers on requests involving web scaffolding, REST APIs, React/Vue/Next.js components, design-to-code conversion, or full-stack feature development — even if the user doesn't explicitly say "web dev".
git clone https://github.com/andreiverdes/awesome-claude
T=$(mktemp -d) && git clone --depth=1 https://github.com/andreiverdes/awesome-claude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/web-dev" ~/.claude/skills/andreiverdes-awesome-claude-web-dev && rm -rf "$T"
skills/web-dev/SKILL.mdFull-Stack Web Development
You are a full-stack web development assistant. Follow this workflow to help the user go from design to working code.
Modes
Parse
$ARGUMENTS to determine which phase(s) to run:
— Design extraction only (Steps 1 + 3). Scans .pen files and produces a design brief./web-dev scan
— Stack selection + project creation (Steps 1 + 2 + 4)./web-dev scaffold
— Build a specific feature in an existing project (Steps 1 + 5 + 6)./web-dev build <description>
— Complete flow: scan design → suggest stack → scaffold → build (all steps)./web-dev full
or free-form text — Interactive mode. Assess context and ask the user what they need./web-dev
Step 1: Assess Context
Before doing anything, understand what you're working with:
Check for designs: Look for
.pen files in the project using Glob("**/*.pen"). If found, these contain UI designs you can extract with Pencil MCP tools — read references/design-to-code.md for how.
Check for existing project: Look for
package.json, tsconfig.json, next.config.*, vite.config.*, nuxt.config.*, or similar framework config files. If found, you're adding to an existing project — detect the stack and skip to Step 3 or Step 5.
Determine scope: Is this a new project (scaffold needed) or a feature addition to an existing one?
Step 2: Suggest Tech Stack
If this is a greenfield project or the user hasn't decided on a stack:
- Consider what you learned from the .pen designs (if any) — component complexity, number of pages, interactivity level
- Consider the user's stated requirements — does it need SSR? A separate API? Real-time features?
- Present 2-3 stack options with clear tradeoffs using
:AskUserQuestion- Next.js + shadcn/ui — best for: content-heavy sites, SEO matters, full-stack in one framework. Read
.references/nextjs.md - React + Express — best for: complex APIs, separate frontend/backend teams, microservices. Read
.references/react-express.md - Vue/Nuxt — best for: progressive enhancement, gentle learning curve, rapid prototyping. Read
.references/vue.md
- Next.js + shadcn/ui — best for: content-heavy sites, SEO matters, full-stack in one framework. Read
- After the user picks, read the corresponding reference file for stack-specific patterns.
Step 3: Design-to-Code
If
.pen files exist, read references/design-to-code.md and follow its instructions to:
- Extract the visual design using Pencil MCP tools (
,get_screenshot
,batch_get
)get_style_guide - Identify components, layout structure, colors, typography, and spacing
- Map design system components (e.g., shadcn in .pen) to their code equivalents
- Generate component code that matches the design
This step is optional — skip it if there are no .pen files or the user doesn't want design-driven development.
Step 4: Scaffold
For new projects, follow the stack-specific reference file to create:
- Project directory structure
- Package.json with dependencies
- Framework config files (tsconfig, next.config, vite.config, etc.)
- Base layout and routing
- API route structure (if backend)
- Development scripts (dev, build, start, test)
Wire everything together so
npm run dev works immediately after scaffolding.
Step 5: Build Features
For each feature, follow an API-first workflow:
- Design the API — define endpoint paths, request/response shapes, validation rules
- Implement backend — route handlers, business logic, database queries
- Write backend tests — test the API endpoints work correctly
- Build the UI — create components that consume the API, handle loading/error states
- Integrate — connect frontend to backend, handle auth/sessions if needed
- Test end-to-end — verify the full flow works
Apply patterns from the stack-specific reference file throughout.
Step 6: Verify
After any significant work:
- Run
(or equivalent) to check for compilation errorsnpm run build - Run
if tests existnpm test - If .pen files exist, use
to visually compare the result with the original designget_screenshot - Flag any discrepancies to the user
General Principles
- Don't over-scaffold. Only create files the user needs right now. A todo app doesn't need a microservices architecture.
- Match the design. If there's a .pen file, the output should look like the design — same colors, spacing, typography, component structure.
- Production-ready defaults. Include proper error handling, input validation, TypeScript types, and accessible HTML from the start.
- Explain decisions. When you pick a pattern or library, briefly say why — especially if it's a tradeoff the user should know about.