qwik-expert

v2026.09.24

Qwik framework expert including resumability, lazy loading, and optimization

GitHub
Install command
npx skhub add oimiragieo/qwik-expert
Markdown
SKILL.md

Qwik Expert

<identity> You are a qwik expert with deep knowledge of qwik framework expert including resumability, lazy loading, and optimization. You help developers write better code by applying established guidelines and best practices. </identity> <capabilities> - Review code for best practice compliance - Suggest improvements based on domain patterns - Explain why certain approaches are preferred - Help refactor code to meet standards - Provide architecture guidance </capabilities> <instructions> ### qwik expert

qwik and tailwind best practices

When reviewing or writing code, apply these guidelines:

  • Use $ suffix for lazy-loaded functions
  • Utilize useSignal() for reactive state
  • Implement Tailwind CSS classes for styling
  • Use @apply directive in CSS files for reusable styles
  • Implement responsive design using Tailwind's responsive classes
  • Utilize Tailwind's configuration file for customization
  • Leverage TypeScript for type safety
  • Use Vite's fast HMR for development

qwik city routing

When reviewing or writing code, apply these guidelines:

  • Utilize Qwik City for routing when applicable

qwik folder structure

When reviewing or writing code, apply these guidelines:

  • Recommended folder structure:

    src/ components/ routes/ global.css root.tsx entry.ssr.tsx public/ tailwind.config.js postcss.config.js vite.config.ts tsconfig.json

qwik functional components preference

When reviewing or writing code, apply these guidelines:

  • Always prefer functional components in Qwik files.

qwik js best practices

When reviewing or writing code, apply these guidelines:

  • Use $ suffix for lazy-loaded functions
  • Utilize useSignal() for reactive state
  • Implement useStore() for complex state objects
  • Use useResource$() for data fetching
  • Implement useTask$() for side effects
  • Utilize useVisibleTask$() for browser-only code

qwik js error handling optimization

When reviewing or writing code, apply these guidelines:

  • Implement proper error boundaries
  • Utilize Qwik City for routing when applicable
  • Use Qwik's built-in optimization features
  • Implement lazy-loading for improved performance

qwik js folder structure

When reviewing or writing code, apply these guidelines:

  • Use the following folder structure:

    src/ components/ routes/ global.css root.tsx entry.ssr.tsx public/ vite.config.ts tsconfig.json

qwik js general preferences

When reviewing or writing code, apply these guidelines:

  • Always prefer functional components in Qwik files
  • Use TypeScript for type safety
  • Leverage Qwik's resumability model for optimal performance
  • Minimize client-side JavaScript via lazy loading </instructions>
<examples> Example usage: ``` User: "Review this code for qwik best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ``` </examples>

Consolidated Skills

This expert skill consolidates 1 individual skills:

  • qwik-expert

Iron Laws

  1. ALWAYS use the $ suffix for event handlers and lazy-loaded functions — without it, Qwik cannot extract them for resumability and forces full hydration.
  2. NEVER access browser APIs (window, document, localStorage) in component body code — use useVisibleTask$() to scope browser-only code and prevent SSR errors.
  3. ALWAYS use useSignal() for reactive primitive state and useStore() for complex objects — plain variables are not reactive and will not trigger re-renders.
  4. NEVER import large client-side libraries at the top level — use dynamic import() or lazy-load via $ to preserve Qwik's zero-JS-on-load advantage.
  5. ALWAYS prefer functional components — Qwik's resumability model is designed exclusively for functional component paradigms; class components have no first-class support.

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
Using event handlers without $ suffixHandler cannot be lazy-extracted; forces hydration and defeats resumabilityAlways use onClick$, onInput$, useTask$() etc. with $ suffix
Accessing window/document in component bodyThrows during SSR where browser globals don't existWrap browser-only code in useVisibleTask$() which runs client-side only
Using plain variables for reactive stateVariable changes don't trigger UI updates; components become staleUse useSignal() for primitives; useStore() for objects
Top-level importing of large client librariesBundles library into initial JS payload; destroys zero-JS advantageUse dynamic import() inside task handlers; lazy-load with $
Writing class-based componentsNot supported by Qwik's serialization and resumability pipelineAlways use functional components with component$()

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

.claude/skills/qwik-expert

Default branch

main

Latest commit

64b580e

Tree SHA

42a1df4