jotai-atom-architecture
Use when designing Jotai state architecture, setting up atom composition patterns, managing large objects, or debugging re-render issues - ensures proper atom…
Skill by nocksock
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nocksock-jotai-atom-architecture
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/jotai-atom-architecture
What's inside
- Skill name
jotai-atom-architecture- Description
- Use when designing Jotai state architecture, setting up atom composition patterns, managing large objects, or debugging re-render issues - ensures proper atom structure, memory management, and granular reactivity for maintainable atomic state
- License
- MIT
- Instructions
- 361 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Jotai Atom Architecture Skill
## When This Skill Applies
Use this skill when:
- Designing new Jotai state architecture for a feature
- Refactoring existing state management to Jotai
- Managing dynamic collections or large objects
- Experiencing unnecessary re-renders
- Setting up atom families for parameterized state
- Implementing async data fetching with atoms
- Debugging memory leaks in atom-based state
- Integrating Jotai with React Three Fiber or other libraries
## Atom Architecture Checklist
Follow this systematic approach when working with Jotai atoms:
### ☐ 1. Identify State Granularity
**Determine atomic units:**
```typescript
// WRONG: Monolithic state
const appStateAtom = atom({
user: {...},
todos: [...],
settings: {...},
ui: {...}
})
// CORRECT: Atomic granularity
const userAtom = atom({...})
const todosAtom = atom([...])
const settingsAtom = atom({...})
const uiStateAtom = atom({...})
```
**Principle**: "One atom per independent piece of state"
**Ask yourself**:
- Can this state be updated independently?
- Do different components need different parts?
- Will updates to one part affect unrelated components?
### ☐ 2. Choose Appropriate Atom Type
**Match pattern to use case:**
| Use Case | Atom Type | Example |
|----------|-----------|---------|
| Simple value | `atom(initial)` | `atom(0)` |
| Derived/computed | `atom((get) => ...)` | `atom((get) => get(a) + get(b))` |
| Async data | `atom(async (get) => ...)` | `atom(async () => fetch(...))` |
| Resettable | `atomWithReset(initial)` | `atomWithReset(0)` |
| Refreshable async | `atomWithRefresh(async () => ...)` | Pull-to-refresh |
| Persisted | `atomWithStorage('key', initial)` | localStorage sync |
| Reducer-based | `atomWithReducer(initial, reducer)` | Redux-like |
| Parameterized | `atomFamily((param) => atom(...))` | Dynamic collections |
### ☐ 3. Apply Focused Subscriptions for Large Objects
**Prevent unnecessary re-renders:**
```typescript
import { focusAtom } from 'jotai-optics'
const largeObjectAtom = atom({
users: [...], // 1000 users
posts: [...], // 5000 posts
comments: [...] // 10000 comments
})
// WRONG: Component re-renders on ANY property change
const data = useAtomValue(largeObjectAtom)
// CORRECT: Only re-renders when users change
const usersAtom = focusAtom(largeObjectAtom, (optic) => optic.prop('users'))
const users = useAtomValue(usersAtom)
```
**Impact**: Eliminates re-renders from unrelated data changes.
### ☐ 4. Use splitAtom for Array Management
**Enable item-level reactivity:**
```typescript
import { splitAtom } from 'jotai/utils'
const todosAtom = atom([...])
const todoAtomsAtom = splitAtom(todosAtom)
function TodoList() {
const [todoAtoms, dispatch] = useAtom(todoAtomsAtom)
return todoAtoms.map(todoAtom => (
<TodoItem
key={`${todoAtom}`} // Use atom.toString() as stable key
todoAtom={todoAtom}
onRemove={() => dispatch({ type: 'remove', atom: todoAtom })}
/>
))
}
function TodoItem({ todoAtom }) {
const [todo, setTodo] = useAtom(todoAtom)
// Only THIS item re-renders when updated
return <div>{todo.text}</div>
}
```
**Benefit**: Updating one item doesn't re-render the list or other items.
### ☐ 5. Implement Atom Families with Memory Management
**For dynamic parameterized state:**
```typescriptFrom nocksock/superpowers, MIT.
More from nocksock/superpowers
- 0.432score
deep-work-session
nocksock
Use when user explicitly mentions 'deep work' or signals substantial work ('let's build/implement X').
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
holistic-view
nocksock
Use this when given larger tasks, before starting the implementation, or during code reviews.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
making-commits
nocksock
Use when ready to commit code changes.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
r3f-performance-optimization
nocksock
Use when optimizing React Three Fiber scenes, experiencing frame drops, high draw calls, or implementing 3D performance features - ensures systematic…
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
component-authoring
nocksock
Use this when writing any kind of UI components in any language (heex, react, web components, and so on).
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
session-handoff
nocksock
Use when approaching context limits (75-85%) to write comprehensive handoff documents for session continuity.
SkillDFreshness: D★ 1Claude Code +9 - 0.431score
code-cleanup
nocksock
Use when asked to clean up code, or after introducing a new larger feature.
SkillDFreshness: D★ 1Claude Code +9 - 0.423score
prioritise-todos
nocksock
Use this to rate and prioritise todos
SkillDFreshness: D★ 1Claude Code +9 - 0.423score
elixir-code
nocksock
ALWAYS use this skill, whenever you touch elixir code
SkillDFreshness: D★ 1Claude Code +9 - 0.423score
find-code-todos
nocksock
Use this to find todos in the source code
SkillDFreshness: D★ 1Claude Code +9 - 0.409score
brainstorming
nocksock
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
SkillDFreshness: D★ 1Claude Code +9 - 0.407score
finishing-a-development-branch
nocksock
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting…
SkillDFreshness: D★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 18, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/nocksock/superpowers
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from nocksock
- 0.432score
r3f-performance-optimization
nocksock
Use when optimizing React Three Fiber scenes, experiencing frame drops, high draw calls, or implementing 3D performance features - ensures systematic…
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
making-commits
nocksock
Use when ready to commit code changes.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
deep-work-session
nocksock
Use when user explicitly mentions 'deep work' or signals substantial work ('let's build/implement X').
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
holistic-view
nocksock
Use this when given larger tasks, before starting the implementation, or during code reviews.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
component-authoring
nocksock
Use this when writing any kind of UI components in any language (heex, react, web components, and so on).
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
session-handoff
nocksock
Use when approaching context limits (75-85%) to write comprehensive handoff documents for session continuity.
SkillDFreshness: D★ 1Claude Code +9
Cite this page
jotai-atom-architecture skill. Agent Mart. https://agentmart.dev/skills/nocksock-jotai-atom-architecture (last updated 2026-10-24)