Cursor 101

Published on: 9/9/2024

What are Cursor Rules? There are two main ways to implement Cursor Rules: global and project-specific rules. Learn how to set global and project-specific rules (.cursorrules)to optimize your coding experience.

Cursor Rules: Customizing AI Behavior for Personalized Coding

In the realm of AI-assisted coding, Cursor has introduced a game-changing feature known as Cursor Rules. This powerful functionality allows developers to fine-tune the AI's behavior, creating a more personalized and efficient coding experience. Let's dive into what Cursor Rules are and why they're crucial for modern development workflows.

What are Cursor Rules?

Cursor Rules are custom instructions for the AI assistant in Cursor, guiding its behavior when interpreting code, generating suggestions, and responding to queries. There are two main types of Cursor Rules:

  1. Global Rules: Set in Cursor Settings under General > Rules for AI.
  2. Project-Specific Rules: Defined in a .cursorrules file in your project's root directory.

These rules allow you to tailor the AI's behavior to match your coding style and project requirements.

How to Use Cursor Rules

Setting Global Rules

  1. Open Cursor Settings
  2. Navigate to General > Rules for AI
  3. Enter your custom instructions in the provided text area
  4. Click "Save" to apply your global rules
  5. Remember to enable include .cursorrules file to apply project-specific rules.

Cursor Global AI Rules

Global rules example

1. Bug Fixes:
   - Analyze the problem thoroughly before suggesting fixes
   - Provide precise, targeted solutions
   - Explain the root cause of the bug

2. Keep It Simple:
   - Prioritize readability and maintainability
   - Avoid over-engineering solutions
   - Use standard libraries and patterns when possible

3. Code Changes:
   - Propose a clear plan before making changes
   - Apply all modifications to a single file at once
   - Do not alter unrelated files

Remember to always consider the context and specific requirements of each project.

Creating Project-Specific Rules

  1. Create a .cursorrules file in your project's root directory
  2. Add your custom instructions to this file

Example .cursorrules:

  You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI and Tailwind.
  
  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 interfaces over types.
  - Avoid enums; use maps instead.
  - Use functional components with TypeScript interfaces.
  
  Syntax and Formatting
  - Use the "function" keyword for pure functions.
  - Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.
  - Use declarative JSX.
  
  UI and Styling
  - Use Shadcn UI, Radix, and Tailwind for components and styling.
  - Implement responsive design with Tailwind CSS; 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.

From Pontus Abrahamsson and Cursor Directory

Why are Cursor Rules Important?

  1. Project Context Understanding: Provide the AI with crucial information about your project's structure, technologies, and specific requirements.

  2. Adaptive Behavior: Adjust the AI's responses based on its performance, allowing you to fine-tune its behavior over time.

  3. Error Correction: Clarify misconceptions and guide the AI away from common mistakes, improving the accuracy of its suggestions and code generation.

Getting Started with Cursor Rules

For newcomers to Cursor, here are some tips to help you write effective Cursor Rules:

  1. Start Simple: Begin with basic instructions that reflect your immediate needs or common coding practices.

  2. Be Specific: Clearly state your preferences or requirements. For example, "Use 2 spaces for indentation" is more effective than "Use proper indentation".

  3. Use Natural Language: Write your rules in plain English. The AI is designed to understand natural language instructions.

  4. Prioritize Important Rules: List the most critical rules first, as they'll have the strongest influence on the AI's behavior.

  5. Iterate and Refine: As you use Cursor more, you'll identify areas where the AI could be more helpful. Update your rules accordingly.

Common Questions for Cursor Rules Beginners

Q: How detailed should my Cursor Rules be?

A: Start with a few key rules and gradually add more as you become comfortable. Aim for a balance between providing enough guidance and avoiding overly restrictive instructions.

Q: Can I use Cursor Rules to enforce coding standards?

A: Absolutely! Cursor Rules are an excellent way to ensure consistent coding standards across your project or team.

Q: Will Cursor Rules affect the AI's ability to provide diverse solutions?

A: While rules guide the AI, they don't completely restrict its creativity. The AI will still offer various solutions within the boundaries you set.

Q: How often should I update my Cursor Rules?

A: Review and update your rules periodically, especially when starting new projects or adopting new coding practices.

Q: Can Cursor Rules help with specific frameworks or libraries?

A: Yes! You can create rules tailored to specific technologies. For example: "Use React hooks instead of class components" or "Follow Vue.js 3 composition API patterns".

Best Practices for Writing Cursor Rules

  1. Be Consistent: Ensure your rules don't contradict each other.

  2. Cover Multiple Aspects: Address coding style, documentation, error handling, and performance considerations.

  3. Include Project-Specific Context: Mention important project details, such as the primary programming language, framework, or unique architectural decisions.

  4. Balance Flexibility and Strictness: Allow some room for the AI to suggest innovative solutions while still adhering to your core principles.

  5. Use Examples: When possible, provide brief code snippets to illustrate your preferred practices.

Recommended Resources

To further enhance your understanding and usage of Cursor Rules, we recommend exploring the following resources:

  • Cursor Community Rules Sharing Thread: A valuable forum thread where Cursor users share and discuss their custom rules, providing inspiration and practical examples for crafting effective AI instructions.

  • Cursor Directory: An extensive collection of Cursor rules, snippets, and best practices curated by the community. This resource is particularly useful for discovering advanced techniques and staying updated with the latest trends in AI-assisted coding.

These resources can help you refine your Cursor Rules and discover new ways to optimize your AI-powered development workflow.

  • Official Cursor Documentation on Rules for AI: The authoritative source for understanding and implementing Cursor Rules, directly from the Cursor team. This documentation provides comprehensive guidance on creating effective AI instructions and leveraging the full potential of Cursor's AI capabilities.

  • Base AI Rules: What I'm Running (Reddit Discussion): A community-driven discussion on effective base AI rules for Cursor, offering practical insights and real-world examples of AI instructions.

We recommend exploring this resource to gain inspiration for your own Cursor Rules and to understand how other developers are leveraging AI to improve their coding workflow.