AI prompts
base on Find the best cursor rules for your framework and language ![hero](image.png)
## Recognition
<a href="https://news.ycombinator.com/item?id=41346156">
<img
style="width: 250px; height: 54px;" width="250" height="54"
alt="Featured on Hacker News"
src="https://hackernews-badge.vercel.app/api?id=41346156"
/>
</a>
# How to Contribute to Cursor AI
### This guide will help you understand how to add new rules or prompts to the Cursor AI directory.
#### 1. Fork the Repo
#### 2. Adding a New Rule
If you want to submit a **new rule** that does not already exist in the Cursor directory, follow these steps:
1. **Locate the Rule Index**:
Add your new rule in the `src/data/index.ts` file. For example:
```typescript
import { cRules } from "./rules/c";
2. **Create a Rule File**:
Create a new file in the `src/data/rules/` directory with the appropriate name. For example, if you're adding a rule for Next.js, name the file `nextjs.ts`.
3. **Define the Rule**:
Add your prompts inside the newly created file. Refer to the existing rules for formatting guidance. Make sure your prompts are accurate, clear, and helpful to developers.
Your prompts should:
- Be accurate and related to the rule.
- Be clearly worded to help developers understand and use them easily.
- Be actionable, providing steps or insights to solve common problems or optimize workflows.
- Test your prompts: Before submitting, ensure that your prompts have been tested and work as expected in the relevant development environment. This ensures that other developers can rely your contributions :) .
#### 3. Adding New Prompts/Content to Existing Rules
If you want to add new prompts to an existing rule, follow these steps:
1. **Find the Existing Rule**:
Navigate to the `src/data/rules/` directory and open the relevant file for the rule you want to update. For example, if you're adding prompts for **Next.js**, open `nextjs.ts`.
2. **Add Your New Prompts**:
Add your new prompts below the existing ones. Ensure that your additions are tested.
#### 4. Important Parameters in Rule Files
When creating or updating rules, be sure to include the following parameters for consistency and clarity:
1. **tags**: Add language-specific tags to categorize the rule.
```
tags: ["JavaScript", "Next.js"]
2. **title**: Provide an appropriate title that describes the rule.
```
title: "Next.js Best Practices"
3. **slug**: Create a unique slug that reflects the purpose of the rule.
```
slug: "nextjs-best-practices"
4. **content**: Write the content of your prompt here. Make sure it is clear, actionable, and helpful to developers. Be concise, but provide enough detail to assist cursor ai in completing tasks effectively...
```
content: `your amazing prompt`
5. **author**: Include details about yourself as the contributor. This helps others recognize your contributions and allows them to reach out if needed.
- **name**: Your full name or GitHub username.
- **URL**: A link to your GitHub, Twitter, website, or any other profile you want to share. This is optional but recommended.
- **avatar**: The URL path to an image or avatar that represents you. You can use a photo from a service like Gravatar or any image hosting service.
### 5. Create a PR
## Getting Started
First, run the development server:
```bash
npm install
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
### 6. How to Use Cursor Rules in Your Project.
- First, create a `.cursorrules` file in the root directory of your project.
- Navigate to the Cursor directory and copy the relevant rules.
- Paste these rules into the `.cursorrules` file.
- When using the Cursor AI editor (in the chat box or composer), inform the AI to "follow the cursor rules" to ensure the prompts align with the rules youdefined in the `.cursorrules` file. The AI will generate output that adheres to the guidelines set in your custom rules.
", Assign "at most 3 tags" to the expected json: {"id":"12431","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"