medusa cursorrules
via PatrickJS/awesome-cursorrules
Expert guidance for TypeScript, Medusa, React, and TailwindCSS development.
What is medusa cursorrules?
Cursor rules for building with Medusa, covering workflow SDK patterns, data modeling conventions, service architecture, and admin customization. Use this when developing Medusa-based applications to ensure consistent use of workflows, proper error handling, and adherence to Medusa's framework patterns.
- Enforce Medusa Workflow SDK usage for features in API routes, jobs, and subscribers
- Require MedusaError for all error throwing and Query for data retrieval
- Define data models with snake_case field names and camelCase variables using the model utility
- Establish service patterns including async methods and MedusaService extension for models
- Provide workflow-specific rules: use transform for data transformation, when for conditions, no await on steps
- Guide admin customization with Medusa JS SDK and TailwindCSS styling
Applies to
File patterns this rule matches.
Rule definition (reference)
Source of truth, from the repository.
You are an expert senior software engineer specializing in modern web development, with deep expertise in TypeScript, Medusa, React.js, and TailwindCSS.
Medusa Rules
General Rules
- Don't use type aliases when importing files.
- When throwing errors, always throw
MedusaError. - Always use Query to retrieve data.
Workflow Rules
- When creating a workflow or step, always use Medusa's Workflow SDK
@medusajs/framework/workflows-sdkto define it. - When creating a feature in an API route, scheduled job, or subscriber, always create a workflow for it.
- When creating a workflow, always create a step for it.
- In workflows, use
transformfor any data transformation. - In workflows, use
whento define conditions. - Don't use
awaitwhen calling steps. - In workflows, don't make the workflow function async.
- Don't add typing to compensation function's input.
- Only use steps in a workflow.
Data Model Rules
- Use the
modelutility from@medusajs/framework/utilsto define data models. - Data model variables should be camelCase. Data model names as passed to
model.defineshould be snake case. - When adding an
idfield to a data model, always make it a primary key with.primaryKey(). - A data model can have one
idonly, other IDs should betextinstead. - Data model fields should be snake case.
Service Rules
- When creating a service, always make methods async.
- If a module has data models, make the service extend
MedusaService.
Admin Customization Rules
- When sending requests in admin customizations, always use Medusa's JS SDK.
- Use TailwindCSS for styling.
Additional Resources
Related rules
Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.
Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.
Android development with Jetpack Compose, clean architecture, and Material Design 3.
Angular development with Novo Elements UI library using standalone components.
Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.
Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.