obsidian-plugin-react-best-practices
Obsidian Plugin React Best Practices
Use this umbrella skill when a plugin UI is built with React and you need performance-oriented guidance that goes beyond correctness.
Typical triggers
- "This React view feels slow"
- "Do we need
useMemohere?" - "How can we reduce rerenders in this plugin panel?"
- "Should this be dynamically imported?"
- "Can you apply React best practices to this plugin UI?"
Applicability check
This skill is most useful when the plugin has a React-based frontend.
- Many rules apply directly to client-side React in Obsidian plugin views, modals, and settings tabs.
- Some rules are Next.js or server-component specific and should only be applied when the plugin repo actually uses Next.js, SSR, RSC, or server actions.
- For non-React plugin UIs, prefer
obsidian-plugin-dev,obsidian-plugin-css-styling, andobsidian-plugin-accessibility.
Highest-value categories for Obsidian plugins
- Bundle size optimization — important because plugin payload size affects startup and view-load cost.
- Re-render optimization — especially important for settings panes, search UIs, dashboards, and graph-heavy panels.
- Rendering performance — helps avoid sluggishness in larger plugin views.
- Client-side patterns — useful for event listeners, browser storage, and deduplicated subscriptions.
- JavaScript hot-path cleanup — helpful in large vault views, filtering, sorting, and repeated lookups.
Categories included
- async waterfall elimination
- bundle-size optimization
- server-side performance
- client-side data fetching and subscriptions
- re-render optimization
- rendering performance
- JavaScript micro-performance
- advanced callback and initialization patterns
Obsidian-specific adaptation notes
When using this skill in a plugin:
- prioritize the client-side React guidance first
- treat SSR/RSC/server-action rules as optional unless the project truly uses those technologies
- optimize for responsive note-adjacent UI rather than abstract benchmarks
- combine with
obsidian-plugin-shadcn-uiwhen the plugin uses React + Tailwind + shadcn/ui - combine with
obsidian-plugin-accessibilityso optimization never regresses usability
Bundled resources
references/AGENTS.md— compiled Vercel guidereferences/README.md— structure and maintenance notesreferences/rules/— individual rule files by category
Related skills
obsidian-plugin-react-performanceobsidian-plugin-react-componentsobsidian-plugin-shadcn-uiobsidian-plugin-shadcn-compositionobsidian-plugin-accessibilityobsidian-plugin-css-stylingobsidian-plugin-devobsidian-dev
More from zpankz/obsidian-skills
viva-llm
Use VIVA LLM for multi-provider chat, voice calls, terminal integration, assistants, skills, MCP tools, and agent mode inside Obsidian. Trigger when the user mentions VIVA LLM, voice chat, realtime voice, LLM providers in Obsidian, or vault-integrated AI chat.
1tasks
Create and query tasks using the Tasks plugin syntax including due dates, recurrence, priorities, and task queries. Use when the user mentions Tasks plugin, recurring tasks, task queries, or advanced task management in Obsidian.
1dataview
Create Dataview queries using DQL (Dataview Query Language), inline queries, and DataviewJS. Use when the user mentions Dataview, DQL, querying notes, listing notes by metadata, or creating dynamic views of vault content.
1datacore
Create Datacore views using JSX/React syntax and the dc.* API. Use when the user mentions Datacore, dc.useQuery, JSX views, or React-based vault queries. Datacore is the successor to Dataview with better performance and interactive views.
1obc
Run OBC vault commands for AI-augmented PKM: daily planning, vault analysis, idea connections, and structured thinking workflows. Trigger on /today, /connect, /map, or any vault interaction command.
1notemdpro
Use this umbrella skill when a task spans multiple NoteMD Pro workflows and you need to route to the right specialized notemdpro-* skill.
1