nexxeln/opencode-config/solidjs
Claude Code and agent skill by nexxeln/opencode-config
- community
Checking that the SKILL.md file is still in the repository.
Best practices and idiomatic patterns for SolidJS development. Use when writing, reviewing, or refactoring SolidJS components, signals, stores, effects, or reactive primitives. Triggers on: SolidJS, Solid.js, solid-js, createSignal, createEffect, createMemo, createStore, createResource, or when the project uses SolidJS as its UI framework.
Install
npx vskill@latest install nexxeln/opencode-config/solidjsSKILL.md
SolidJS Best Practices
Reactivity Model
SolidJS components run once as setup code. The component body is not reactive. Reactivity only occurs inside reactive scopes: JSX expressions, createEffect, createMemo, and createResource.
All guidance below follows from this core principle.
Rules
1. Call signal accessors when passing to JSX props
Pass id={id()} not id={id}. Components should not need to know whether a prop came from a signal or a static value. Calling the accessor at the call site keeps prop types uniform.
2. Never destructure props
Props are reactive via getters. Destructuring extracts the value and breaks tracking.
Use splitProps when prop splitting is genuinely needed.
3. Wrap derived values in functions or createMemo
A signal read in the component body runs once and never updates.
Use a plain function wrapper when the computation is trivial. Use createMemo when the derived value is read in multiple places or the computation is expensive.
4. Use <Show> and <For> instead of JS conditionals/map
Solid provides control-flow components that integrate with its reactive system.
<For> preserves item identity and applies minimal DOM updates. <Show> gives explicit conditional rendering with fallback support.
5. Use createEffect sparingly
createEffect is for side effects that interact with the outside world (DOM APIs, third-party libraries). It is not for derived state or data fetching.
Anti-pattern — derived state via effect:
Anti-pattern — data fetching via effect:
createResource integrates with Suspense and handles loading, error states, and race conditions.
6. Derive state instead of syncing it
When one value is a pure function of another, express that relationship directly instead of syncing via effects.
Derived values keep the dependency graph explicit. Effects hide relationships and add unnecessary indirection.
7. Use stores for complex/nested objects
Signals replace the entire value on update. Stores provide fine-grained reactivity at the property level.
Stores are deeply reactive. Accessing board.settings.theme in JSX tracks only that path.
Summary Checklist
When writing or reviewing SolidJS code, verify:
- [ ] Signal accessors are called at JSX call sites (
signal()notsignal) - [ ] Props are accessed via
props.x, never destructured - [ ] Derived values use function wrappers or
createMemo, not bare reads in component body - [ ]
<Show>and<For>are used instead of inline JS conditionals and.map() - [ ]
createEffectis only used for genuine side effects (DOM, external APIs) - [ ] State relationships are expressed as derivations, not effect-based sync
- [ ] Complex/nested objects use
createStoreinstead ofcreateSignal
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskill/solidjs/SKILL.md
Popularity
- Repository stars
- 203
- Repository forks
- 8
- 7-day trend score
- 27
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 16 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nexxeln/opencode-config/solidjs)