.cursorrules (deprecated)
1/framework_rules/rules/react-typescript-nextjs-nodejs-cursorrules-prompt-/.cursorrules.cursorrules
Quality
44/100
Scores the file, not the repository.Length
644 words
0 headings · 1 code blocksRepository
28
— · pushed 478 days agoLast changed
3 days ago
First indexed 3 days ago.1You are an expert in Solidity, TypeScript, Node.js, Next.js 14 App Router, React, Vite, Viem v2, Wagmi v2, Shadcn UI, Radix UI, and Tailwind Aria.23Key Principles:45- Write concise, technical responses with accurate TypeScript examples.6- Use functional, declarative programming. Avoid classes.7- Prefer iteration and modularization over duplication.8- Use descriptive variable names with auxiliary verbs (e.g., isLoading).9- Use lowercase with dashes for directories (e.g., components/auth-wizard).10- Favor named exports for components.11- Use the Receive an Object, Return an Object (RORO) pattern.1213JavaScript/TypeScript:1415- Use "function" keyword for pure functions. Omit semicolons.16- Use TypeScript for all code. Prefer interfaces over types. Avoid enums, use maps.17- File structure: Exported component, subcomponents, helpers, static content, types.18- Avoid unnecessary curly braces in conditional statements.19- For single-line statements in conditionals, omit curly braces.20- Use concise, one-line syntax for simple conditional statements (e.g., if (condition) doSomething()).21- Prioritize error handling and edge cases:22 - Handle errors and edge cases at the beginning of functions.23 - Use early returns for error conditions to avoid deeply nested if statements.24 - Place the happy path last in the function for improved readability.25 - Avoid unnecessary else statements; use if-return pattern instead.26 - Use guard clauses to handle preconditions and invalid states early.27 - Implement proper error logging and user-friendly error messages.28 - Consider using custom error types or error factories for consistent error handling.2930Dependencies:3132- Next.js 14 App Router33- Wagmi v234- Viem v23536React/Next.js:3738- Use functional components and TypeScript interfaces.39- Use declarative JSX.40- Use function, not const, for components.41- Use Shadcn UI, Radix, and Tailwind Aria for components and styling.42- Implement responsive design with Tailwind CSS.43- Use mobile-first approach for responsive design.44- Place static content and interfaces at file end.45- Use content variables for static content outside render functions.46- Minimize 'use client', 'useEffect', and 'setState'. Favor RSC.47- Use Zod for form validation.48- Wrap client components in Suspense with fallback.49- Use dynamic loading for non-critical components.50- Optimize images: WebP format, size data, lazy loading.51- Model expected errors as return values: Avoid using try/catch for expected errors in Server Actions. Use useActionState to manage these errors and return them to the client.52- Use error boundaries for unexpected errors: Implement error boundaries using error.tsx and global-error.tsx files to handle unexpected errors and provide a fallback UI.53- Use useActionState with react-hook-form for form validation.54- Code in services/ dir always throw user-friendly errors that tanStackQuery can catch and show to the user.55- Use next-safe-action for all server actions:56 - Implement type-safe server actions with proper validation.57 - Utilize the `action` function from next-safe-action for creating actions.58 - Define input schemas using Zod for robust type checking and validation.59 - Handle errors gracefully and return appropriate responses.60 - Use import type { ActionResponse } from '@/types/actions'61 - Ensure all server actions return the ActionResponse type62 - Implement consistent error handling and success responses using ActionResponse63 - Example:64```typescript65 'use server'66 import { createSafeActionClient } from 'next-safe-action'67 import { z } from 'zod'68 import type { ActionResponse } from '@/app/actions/actions'69 const schema = z.object({70 value: z.string()71 })72 export const someAction = createSafeActionClient()73 .schema(schema)74 .action(async (input): Promise => {75 try {76 // Action logic here77 return { success: true, data: /* result */ }78 } catch (error) {79 return { success: false, error: error instanceof AppError ? error : appErrors.UNEXPECTED_ERROR, }80 }81 })82```8384Key Conventions:85861. Rely on Next.js App Router for state changes.872. Prioritize Web Vitals (LCP, CLS, FID).883. Minimize 'use client' usage:89 - Prefer server components and Next.js SSR features.90 - Use 'use client' only for Web API access in small components.91 - Avoid using 'use client' for data fetching or state management.9293Refer to Next.js documentation for Data Fetching, Rendering, and Routing best practices.9495
Also in paulpham157/paul-s-cursor-rules
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/react-styled-components-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | style | 42/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/.cursorrules · 28 | .cursorrules | docs | 34/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/android-jetpack-compose-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | testing-strategy | 38/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/angular-novo-elements-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | testlint-formatstylearch+3 | 70/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/angular-typescript-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | teststyledocs | 38/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/ascii-simulation-game-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | no sections | 34/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/aspnet-abp-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | testlint-formatstylearch+5 | 70/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/astro-typescript-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | git | 30/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/chrome-extension-dev-js-typescript-cursorrules-pro/.cursorrules · 28 | .cursorrules | style | 38/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/cpp-programming-guidelines-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | teststylearchperformance | 68/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/cursor-ai-react-typescript-shadcn-ui-cursorrules-p/.cursorrules · 28 | .cursorrules | no sections | 16/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/cursorrules-cursor-ai-nextjs-14-tailwind-seo-setup/.cursorrules · 28 | .cursorrules | styletypesuido-not | 65/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/cursorrules-cursor-ai-wordpress-draft-macos-prompt/.cursorrules · 28 | .cursorrules | no sections | 16/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/cursorrules-file-cursor-ai-python-fastapi-api/.cursorrules · 28 | .cursorrules | styletypes | 38/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/deno-integration-techniques-cursorrules-prompt-fil/.cursorrules · 28 | .cursorrules | no sections | 16/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/dragonruby-best-practices-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | style | 34/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/drupal-11-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | style | 46/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/elixir-engineer-guidelines-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | no sections | 16/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/elixir-phoenix-docker-setup-cursorrules-prompt-fil/.cursorrules · 28 | .cursorrules | git | 30/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/es-module-nodejs-guidelines-cursorrules-prompt-fil/.cursorrules · 28 | .cursorrules | docs | 39/100 | 3 days ago |
Diff against 1/framework_rules/rules/react-styled-components-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/.cursorrules Diff against 1/framework_rules/rules/android-jetpack-compose-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/angular-novo-elements-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/angular-typescript-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/ascii-simulation-game-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/aspnet-abp-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/astro-typescript-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/chrome-extension-dev-js-typescript-cursorrules-pro/.cursorrules Diff against 1/framework_rules/rules/cpp-programming-guidelines-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/cursor-ai-react-typescript-shadcn-ui-cursorrules-p/.cursorrules Diff against 1/framework_rules/rules/cursorrules-cursor-ai-nextjs-14-tailwind-seo-setup/.cursorrules Diff against 1/framework_rules/rules/cursorrules-cursor-ai-wordpress-draft-macos-prompt/.cursorrules Diff against 1/framework_rules/rules/cursorrules-file-cursor-ai-python-fastapi-api/.cursorrules Diff against 1/framework_rules/rules/deno-integration-techniques-cursorrules-prompt-fil/.cursorrules Diff against 1/framework_rules/rules/dragonruby-best-practices-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/drupal-11-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/elixir-engineer-guidelines-cursorrules-prompt-file/.cursorrules Diff against 1/framework_rules/rules/elixir-phoenix-docker-setup-cursorrules-prompt-fil/.cursorrules Diff against 1/framework_rules/rules/es-module-nodejs-guidelines-cursorrules-prompt-fil/.cursorrules
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| SkeneTechnologies/skene-cookbook.cursorrules · 51 | .cursorrules | setuptestlint-formatstyle+11 | 96/100 | 2 days ago | |
| fall-out-bug/sdp_lab.cursorrules · 0 | .cursorrules | setupbuildtestlint-format+3 | 86/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/python-llm-ml-workflow-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | testlint-formatstyletypes+4 | 80/100 | 3 days ago | |
| storybookjs/storybook.cursorrules · 91k | .cursorrules | teststylearchdo-not+1 | 78/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/flutter-riverpod-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | stylearchdo-notagent-behaviour | 71/100 | 3 days ago | |
| forem/forem.cursorrules · 23k | .cursorrules | teststyletypesdatabase+4 | 71/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/aspnet-abp-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | testlint-formatstylearch+5 | 70/100 | 3 days ago | |
| paulpham157/paul-s-cursor-rules1/framework_rules/rules/nextjs-supabase-shadcn-pwa-cursorrules-prompt-file/.cursorrules · 28 | .cursorrules | buildstylearchdo-not | 70/100 | 3 days ago |
