Skip to content
Agentmart
Submit a tool
This entry duplicates frontend-web, which is the one we list in search.

frontend-web

Modern web development patterns for React, Vue, and vanilla JS including component architecture, state management, and performance.

Skill by nathan-oakes

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nathan-oakes-frontend-web

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Modern web development patterns for React, Vue, and vanilla JS including component architecture, state management, and performance. Use when building web UIs, optimizing frontend performance, or implementing accessibility.

Use cases: frontend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
frontend-web
Description
Modern web development patterns for React, Vue, and vanilla JS including component architecture, state management, and performance. Use when building web UIs, optimizing frontend performance, or implementing accessibility.
License
MIT
Instructions
446 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (3)

  • SKILL.md
  • react-patterns.md · examples/
  • react.md · examples/

SKILL.md (first lines)

# Frontend Web Development

## When to Use

- Building web user interfaces
- Implementing component architecture
- Managing application state
- Optimizing performance
- Ensuring accessibility
- Handling forms and validation

## Component Architecture

### Component Types

| Type | Purpose | State | Examples |
|------|---------|-------|----------|
| **Presentational** | UI rendering | None/props only | Button, Card, Avatar |
| **Container** | Data fetching, logic | Yes | UserList, OrderPage |
| **Layout** | Page structure | Minimal | Header, Sidebar, Grid |
| **Feature** | Complete feature | Yes | LoginForm, Checkout |

### Component Structure

```
components/
├── ui/                    # Presentational (reusable)
│   ├── Button/
│   │   ├── Button.tsx
│   │   ├── Button.test.tsx
│   │   └── Button.css
│   ├── Input/
│   └── Card/
├── features/              # Feature-specific
│   ├── auth/
│   │   ├── LoginForm.tsx
│   │   └── SignupForm.tsx
│   └── dashboard/
│       └── DashboardStats.tsx
└── layout/                # Layout components
    ├── Header.tsx
    ├── Sidebar.tsx
    └── PageLayout.tsx
```

### Component Patterns

**Composition over Props**

```tsx
// Good: Composable
<Card>
  <Card.Header>Title</Card.Header>
  <Card.Body>Content</Card.Body>
  <Card.Footer>Actions</Card.Footer>
</Card>

// Avoid: Prop overload
<Card 
  title="Title"
  body="Content"
  footer="Actions"
  showBorder
  variant="elevated"
  ...dozens more props
/>
```

**Render Props / Slots**

```tsx
// React: Render props
<DataFetcher url="/api/users">
  {({ data, loading, error }) => (
    loading ? <Spinner /> : <UserList users={data} />
  )}
</DataFetcher>

// Vue: Slots
<template>
  <DataFetcher url="/api/users" v-slot="{ data, loading }">
    <Spinner v-if="loading" />
    <UserList v-else :users="data" />
  </DataFetcher>
</template>
```

## State Management

### When to Use What

| State Type | Location | Example |
|------------|----------|---------|
| **Local UI** | Component state | Modal open/closed |
| **Form** | Form library | Input values |
| **Server** | React Query/SWR | API data |
| **Global UI** | Context/Store | Theme, sidebar |
| **Global App** | Store | User session |

### React State Patterns

```tsx
// Local state
const [count, setCount] = useState(0);

// Server state with React Query
const { data, isLoading } = useQuery({
  queryKey: ['users'],
  queryFn: fetchUsers,
});

// Global state with Context
const ThemeContext = createContext<Theme>('light');

function App() {
  const [theme, setTheme] = useState<Theme>('light');
  return (
    <ThemeContext.Provider value={{ theme, setTheme }}>
      <Layout />

From nathan-oakes/AI-DLC, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Apr 13, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

Cite this page

frontend-web skill. Agent Mart. https://agentmart.dev/skills/nathan-oakes-frontend-web (last updated 2026-10-24)