Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add Mindrally/skills --skill "nextjs-react-redux-typescript-cursor-rules"
Install specific skill from multi-skill repository
# Description
Comprehensive Next.js, React, Redux, and TypeScript development guidelines covering SOLID principles, component architecture, and best practices.
# SKILL.md
name: nextjs-react-redux-typescript-cursor-rules
description: Comprehensive Next.js, React, Redux, and TypeScript development guidelines covering SOLID principles, component architecture, and best practices.
Next.js React Redux TypeScript Cursor Rules
Complete development guidelines for building maintainable, scalable applications with Next.js, React, Redux Toolkit, and TypeScript.
Development Philosophy
- Produce maintainable, scalable code following SOLID principles
- Favor functional and declarative approaches over imperative styles
- Prioritize type safety and static analysis
- Embrace component-driven architecture
Code Style Standards
- Indentation: Use tabs
- Strings: Use single quotes (unless escaping needed)
- Semicolons: Omit unless disambiguation required
- Operators: Space around infix operators
- Functions: Space before declaration parentheses
- Equality: Always use
===over== - Line length: Maximum 80 characters
- Conditionals: Use braces for multi-line if statements
- Collections: Trailing commas in multiline arrays/objects
Naming Conventions
| Convention | Usage |
|---|---|
| PascalCase | Components, type definitions, interfaces |
| kebab-case | Directory and file names (e.g., user-profile.tsx) |
| camelCase | Variables, functions, methods, hooks, properties, props |
| UPPERCASE | Environment variables, constants, global configurations |
Prefixes
- Event handlers:
handle(e.g.,handleClick) - Booleans: verbs (e.g.,
isLoading,hasError,canSubmit) - Custom hooks:
use(e.g.,useAuth,useForm)
React Best Practices
Components
- Use functional components with TypeScript interfaces
- Define components using
functionkeyword - Extract reusable logic into custom hooks
- Apply composition patterns properly
- Leverage
React.memo()strategically - Implement cleanup in
useEffecthooks
Performance
- Use
useCallbackfor memoizing functions - Apply
useMemofor expensive computations - Avoid inline function definitions in JSX
- Implement code splitting via dynamic imports
- Use proper
keyprops in lists (never use index)
Next.js Best Practices
Core
- Use App Router for routing
- Implement metadata management
- Apply proper caching strategies
- Implement error boundaries
Components
- Use built-in components:
Image,Link,Script,Head - Implement loading states
- Use appropriate data fetching methods
Server Components
- Default to Server Components
- Use URL query parameters for server state
- Apply
use clientonly when necessary: - Event listeners
- Browser APIs
- State management
- Client libraries
TypeScript Implementation
- Enable strict mode
- Define clear interfaces for props, state, and Redux structure
- Use type guards for undefined/null safety
- Apply generics for flexibility
- Leverage utility types (
Partial,Pick,Omit) - Prefer
interfaceovertypefor objects - Use mapped types for dynamic type variations
UI and Styling
Libraries
- Shadcn UI: Consistent, accessible components
- Radix UI: Customizable primitives
- Composition patterns: Modularity
Styling
- Tailwind CSS utility-first approach
- Mobile-first responsive design
- Dark mode via CSS variables or Tailwind's dark mode
- Accessible color contrast ratios
- Consistent spacing values
- CSS variables for theme colors
State Management
Local State
useStatefor component-level stateuseReducerfor complex stateuseContextfor shared state
Global State (Redux Toolkit)
- Use
createSlicefor combined state/reducers/actions - Normalize state structure
- Use selectors for access encapsulation
- Separate concerns by feature (avoid monolithic slices)
Error Handling and Validation
Forms
- Zod for schema validation
- React Hook Form integration
- Clear error messaging
Error Boundaries
- Catch and handle React tree errors gracefully
- Log errors to external services (e.g., Sentry)
- Display user-friendly fallback UIs
Testing
Unit Testing
- Jest and React Testing Library
- Arrange-Act-Assert pattern
- Mock external dependencies and API calls
Integration Testing
- Focus on user workflows
- Proper test environment setup/teardown
- Selective snapshot testing
- Use testing utilities (
screenin RTL)
Accessibility (a11y)
- Semantic HTML
- Accurate ARIA attributes
- Full keyboard navigation
- Proper focus management
- Accessible color contrast
- Logical heading hierarchy
- Accessible interactive elements
- Clear error feedback
Security
- Input sanitization to prevent XSS
- DOMPurify for HTML sanitization
- Proper authentication methods
Internationalization (i18n)
- next-i18next for translations
- Locale detection
- Number and date formatting
- RTL support
- Currency formatting
Documentation
- JSDoc for all public functions, classes, methods, interfaces
- Complete sentences with proper punctuation
- Clear, concise descriptions
- Proper markdown, code blocks, links, headings, lists
- Examples when appropriate
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.