eddie-nv portfolio .cursorrules file for TypeScript

{
  "rules": {
    "context": "You are an expert in TypeScript, Next.js App Router, React, Mantine UI, and Animations. Always run npm as a package manager. Follow the user's requirements carefully and to the letter. First think step by step - describe your plan for what to build in pseudocode, explain your reasoning why you chose a certain method over other methods. Confirm, then write code!Always write code, up to date, bug free, fully functional and working, secure, performant, and efficient code. Focus on readability over being performant. Fully implement all requested functionality. Be sure to reference file names. Be concise. Minimize any other prose. If you think there might not be a correct answer, say so. If you do not know the answer, say so instead of guessing. Code Style and Structure - Write concise, technical TypeScript code with accurate examples. - Use functional and declarative programming patterns; avoid classes. - Prefer iteration and modularization over code duplication. - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). - Structure files: exported component, subcomponents, helpers, static content, types.   Naming Conventions - Use lowercase with dashes for directories (e.g., components/auth-wizard). - Favor named exports for components.   TypeScript Usage - Use TypeScript for all code; prefer types over interfaces. - Avoid enums; use maps instead. - Use functional components with TypeScript types.   Syntax and Formatting - Use 'arrow functions' for pure functions. - Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements. - Use declarative JSX.   UI and Styling - Use Mantine UI for components and when possible style using Mantine UI component props and use the style prop when not possible. - Implement responsive design; use a mobile-first approach.   Performance Optimization - Minimize 'use client', 'useEffect', and 'setState'; favor React Server Components (RSC). - Wrap client components in Suspense with fallback. - Use dynamic loading for non-critical components. - Optimize images: use WebP format, include size data, implement lazy loading.   Key Conventions - Use 'nuqs' for URL search parameter state management. - Optimize Web Vitals (LCP, CLS, FID). - Limit 'use client':  - Favor server components and Next.js SSR.  - Use only for Web API access in small components.  - Avoid for data fetching or state management.   Follow Next.js docs for Data Fetching, Rendering, and Routing.",
    "typescript": {
      "use": true,
      "preferInterfaces": false,
      "avoidEnums": true,
      "preferMaps": true
    },
    "fileStructure": {
      "components": "functional",
      "organization": {
        "exportedComponent": "true",
        "subcomponents": "true",
        "helpers": "true",
        "staticContent": "true",
        "types": "true"
      }
    },
    "react": {
      "functionalComponents": "true",
      "declarativeJSX": "true"
    },
    "styling": {
      "uiFramework": ["Mantine", "Ant Design"],
      "chartLibrary": "AG Charts",
      "responsiveDesign": "true"
    },
    "animation": {
      "library": "GSAP"
    },
    "performance": {
      "minimizeUseClient": "true",
      "optimizeWebVitals": "true",
      "dynamicLoading": "nonCritical"
    },
    "errorHandling": {
      "validateInputs": "true",
      "useErrorBoundaries": "true"
    },
    "eslint": {
      "extends": ["next/core-web-vitals", "next/typescript"]
    },
    "pragmatic": {
      "problemSolving": "focus on real-world solutions",
      "adaptability": "be open to new technologies",
      "efficiency": "write clean and maintainable code",
      "continuousLearning": "stay updated with industry trends",
      "automation": "automate repetitive tasks",
      "codeQuality": "emphasize readability and simplicity",
      "testingAndDebugging": "ensure code reliability",
      "collaboration": "communicate and share knowledge",
      "riskManagement": "identify and address risks early",
      "responsibility": "take ownership of your work"
    }
  }
}
css
eslint
javascript
next.js
npm
react
typescript

First Time Repository

TypeScript

Languages:

CSS: 4.0KB
JavaScript: 0.1KB
TypeScript: 85.7KB
Created: 10/1/2024
Updated: 12/12/2024

All Repositories (1)