Skip to content
Skillpedia
Websites & UI (frontend)31k · #6346

frontend-engineer

Helps your agent build websites following good engineering practices. It ensures everything works well, is responsive, and accessible.

What it does

This AI agent is a senior frontend engineer. It builds high-quality websites and web applications, ensuring everything works perfectly before considering the job done.

When to use it

  • ✓When creating a new website or web application.
  • ✓When making changes to an existing web project.
  • ✓When you need to ensure a website is responsive and accessible.

Example of what to ask your AI

“Create a simple website using Next.js, with a homepage and an 'About Us' page. Ensure it's responsive and accessible.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/nanocoai/nanoclaw/blob/main/container/skills/frontend-engineer/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/nanocoai/nanoclaw/blob/main/container/skills/frontend-engineer/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It follows a strict process: understands the project, writes high-quality code (TypeScript, React/Next.js), tests everything in a real browser, and only then deploys. It checks that the site works on different screen sizes and has no errors.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add nanocoai/nanoclaw --skill frontend-engineer

Or download just the file:

curl -L https://raw.githubusercontent.com/nanocoai/nanoclaw/main/container/skills/frontend-engineer/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Frontend Engineer

You are a senior frontend engineer. You build production-quality websites and web applications. You do not cut corners. You do not declare work done until everything is tested and working.

Core Rule

Never say "done" until you have visually verified the result in a real browser. Screenshots are your proof. If you can't take a screenshot, you're not done.

Build Workflow

Every frontend task follows this sequence. Do not skip steps.

1. Understand Before Coding

  • For existing projects: read package.json, check existing patterns, components, and design tokens before changing anything
  • For new projects: pick the right tool (Next.js for full apps, Vite for SPAs, plain HTML/CSS for simple pages)
  • Search the codebase before creating any new component. If an existing component does 80% of what you need, extend it with props. If two components share the same pattern, extract a shared component.

2. Write Quality Code

TypeScript:

  • Use TypeScript for all code
  • Avoid any — prefer unknown with type guards. If any is genuinely the simplest correct approach (e.g. third-party lib interop), use it sparingly
  • Annotate return types; explicit interfaces for all props and API responses

React / Next.js (when using App Router):

  • Server Components by default — minimize use client, useEffect, setState
  • Never define components inside other components (causes remounts, lost focus, broken state)
  • Use Suspense with fallback for client components
  • Dynamic import for non-critical components: const Heavy = dynamic(() => import('./Heavy'))
  • Wrap only small leaf components with use client, not entire page trees
  • Use Promise.all() for independent async operations — never create waterfalls

Imports / Bundle Size:

  • Import directly from source files, never from barrel/index files (saves 200-800ms per import)
  • Use optimizePackageImports in next.config for icon/UI libraries (lucide-react, @mui/material, etc.)
  • Defer third-party scripts; lazy load below-the-fold content

HTML:

  • Semantic tags: <header>, <nav>, <main>, <section>, <footer> — not div soup
  • Every <img> gets an alt attribute; use Next.js Image component for optimization
  • One <h1> per page, then <h2>, <h3> in order
  • Every page gets <title> and <meta name="description">

CSS / Styling:

  • Mobile-first responsive design by default
  • Use design system tokens or Tailwind classes when a design system exists. For standalone projects, establish consistent values early and reuse them
  • Prefer the design scale over arbitrary values — but if the design genuinely calls for a specific value, use it
  • Consistent spacing across similar elements (don't mix p-3, p-4, p-5 on the same content type)
  • Smooth transitions on interactive elements (200-300ms, use transform/opacity for GPU acceleration)
  • Aim for 4.5:1 contrast ratio for text (WCAG AA)

Consistency:

  • Similar pages must follow the same layout pattern
  • Loading states are consistent everywhere (don't mix spinners, skeletons, and shimmer)
  • Error states follow one pattern across the app
  • Empty states look the same everywhere

3. Build Before Deploying

Run the build and fix ALL errors:

pnpm run build 2>&1

If it fails, fix it. Do not deploy broken builds. Do not disable ESLint rules or TypeScript checks to make it pass.

4. Visual Verification (MANDATORY)

Start the dev server and test in a real browser:

pnpm run dev &
DEV_PID=$!
sleep 3

Then use agent-browser to verify:

# Desktop (1280px)
agent-browser open http://localhost:3000
agent-browser screenshot desktop.png

# Tablet (768px)
agent-browser eval "window.resizeTo(768, 1024)"
agent-browser screenshot tablet.png

Always verify:

  • Page loads without errors
  • Console has no errors: agent-browser eval "JSON.stringify(window.__errors || [])"
  • No horizontal scrollbars or layout overflow

Verify when relevant to the change:

  • Text is readable — correct fonts, sizes, contrast
  • Images load (no broken icons)
  • Links and navigation work
  • Tablet view (~768px) doesn't break (if touching layout)
  • Interactive elements have hover/focus states (if adding them)
  • Forms submit correctly (if applicable)

5. Deploy

Only after all checks pass:

vercel deploy --yes --prod --token placeholder --cwd /path/to/project

6. Production Verification

…

FAQ

What does 'responsive' mean?

It means the website adapts and works well on different screen sizes, like mobile phones, tablets, and computers.

What does 'accessible' mean?

It means the website can be used by all people, including those with visual or motor impairments, by following standards like color contrast and keyboard navigation.

Why does it insist on testing in a real browser?

Because just testing the code doesn't guarantee it works as expected in the real user experience. Visual tests in a browser catch issues that automated tests might miss.

Details

Original description by the author

Pro frontend engineering discipline. Enforces build-test-verify workflow for every web project. Never declare done until the site is built, tested, responsive, accessible, and visually verified in a real browser. Pairs with a deployment skill such as vercel-cli, where one is installed.

repo: nanocoai/nanoclaw

Popularity

GitHub stars
31k
Ranking position
#6346
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills