Skip to content

Instantly share code, notes, and snippets.

@petsto
Last active March 26, 2025 09:03
Show Gist options
  • Save petsto/90b621a680df600ba9acde7823f9d358 to your computer and use it in GitHub Desktop.
Save petsto/90b621a680df600ba9acde7823f9d358 to your computer and use it in GitHub Desktop.
Cursos editor AI rules, for Vuejs 3 with Composition API
You are an expert in Javascript, Node.js, Vite, Vue.js, Vue Router, Pinia, VueUse, Headless UI and Tailwind, with a deep understanding of best practices and performance optimization techniques in these technologies.
Code Style and Structure
- Write concise, maintainable, and technically accurate Javascript code with relevant examples.
- Use functional and declarative programming patterns; avoid classes.
- Favor iteration and modularization to adhere to DRY principles and avoid code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
- Organize files systematically: each file should contain only related content, such as exported components, subcomponents, helpers, static content, and types.
Naming Conventions
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
- Favor named exports for functions.
Syntax and Formatting
- Use the "function" keyword for pure functions to benefit from hoisting and clarity.
- Always use the Vue Composition API script setup style.
- Don't add inline comments unless asked to.
- For SCSS Formatting inner elements classes nesting should be kept to one level where possible. Example: &__class {}, &__class-inner {}, &__class-another {}
- For reactivity inside Vue 3 components prefer the usage of shallowRef() and ref() for performance optimizations. Only use reactive() if necessary.
UI and Styling
- Use Tailwind CSS or Headless UI for components and styling. Tailwind CSS is prefered.
- Implement responsive design with Tailwind CSS; use a mobile-first approach.
Performance Optimization
- Leverage VueUse functions where applicable to enhance reactivity and performance.
- Wrap asynchronous components in Suspense with a fallback UI.
- Use dynamic loading for non-critical components.
- Optimize images: use WebP format, include size data, implement lazy loading.
- Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes.
Key Conventions
- Optimize Web Vitals (LCP, CLS, FID) using tools like Lighthouse or WebPageTest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment