Official Resources
Developer Forum
The official place for API discussions, feature requests, and bug reports. Get help from the community and Obsidian team.
Official Documentation
Comprehensive guides, tutorials, and reference documentation for plugin development.
API Repository
TypeScript type definitions and changelog for the Obsidian API. Report issues and track updates.
Sample Plugin
Official plugin template with build configuration, best practices, and example code.
Getting Help
Before asking for help, check the official documentation and search the forum to see if your question has already been answered.
Where to Ask Questions
API Questions & Feature Requests
API Questions & Feature Requests
Forum: Developer & API DiscussionThis is the primary place to:
- Ask questions about the API
- Request new API features
- Report API bugs
- Discuss plugin development best practices
- Share your plugins and get feedback
API Issues & Type Definitions
API Issues & Type Definitions
GitHub: obsidian-api repositoryUse GitHub issues for:
- Reporting bugs in type definitions
- Discussing API implementation details
- Tracking official API changes
Sample Plugin Template
Sample Plugin Template
GitHub: obsidian-sample-pluginThe sample plugin repository includes:
- Complete build setup with TypeScript and esbuild
- Example plugin code demonstrating common patterns
- Best practices for plugin structure
- Instructions for releasing your plugin
Developer Guides
Getting Started
Build your first Obsidian plugin from scratch
Plugin Guidelines
Guidelines for publishing plugins to the community store
Deferred Views
Learn how to handle deferred tabs in Obsidian v1.7.2+
Submit Your Plugin
Steps to submit your plugin to the community store
Contributing
Contributing to the API
Contributing to the API
The Obsidian API is continuously evolving based on community feedback. You can contribute by:
-
Requesting Features: Post detailed feature requests on the developer forum explaining:
- What you’re trying to accomplish
- Why the current API doesn’t support your use case
- Proposed API design (if you have ideas)
-
Reporting Bugs: When reporting API bugs, include:
- The Obsidian version you’re using
- Minimal code to reproduce the issue
- Expected vs actual behavior
- Any error messages or logs
-
Improving Documentation: Help improve the official docs by:
- Suggesting clarifications or additions
- Sharing examples and use cases
- Writing guides based on your experience
Plugin Development Best Practices
Plugin Development Best Practices
Code Quality
- Use TypeScript for type safety
- Follow the patterns in the sample plugin
- Register all events and intervals properly to avoid memory leaks
- Test your plugin with multiple Obsidian versions
User Experience
- Provide clear settings with helpful descriptions
- Follow Obsidian’s UI/UX patterns
- Handle errors gracefully with user-friendly messages
- Support keyboard navigation and accessibility
Performance
- Minimize work in
onload()- defer initialization when possible - Use
onUserEnable()for one-time setup - Debounce expensive operations
- Respect user’s system resources
Backwards Compatibility
- Check if new API features exist before using them
- Set appropriate
minAppVersionin your manifest - Test on older Obsidian versions if you support them
Community Plugins
Explore existing plugins for inspiration! The community has built hundreds of plugins demonstrating various API capabilities.
Finding Plugins
- In Obsidian: Settings → Community Plugins → Browse
- GitHub: Search for
obsidian-pluginorobsidian-md - Forum: Check the plugin releases category
Learning from Others
Many plugin developers open-source their code. This is an excellent way to:- See real-world API usage
- Learn advanced patterns and techniques
- Understand how to solve common problems
- Get inspiration for your own plugins
Stay Updated
Changelog
Track API changes and breaking changes across versions
API Examples
Code examples and common patterns for plugin development
Forum Announcements
Subscribe to the developer forum for API announcements
GitHub Releases
Watch the API repository for the latest commits
Support the Project
Ways to Support Obsidian
Ways to Support Obsidian
Obsidian offers a unique model where the app is free to use, and the team is funded through optional paid services:
- Obsidian Sync: Official sync service across devices
- Obsidian Publish: Publish your notes online
- Catalyst License: Support development and get early access to insider builds
- Commercial License: For business use (required if using Obsidian for revenue-generating activities)
Code of Conduct
The Obsidian community values respect, collaboration, and constructive feedback. Please be kind and helpful when interacting with other developers.
Community Guidelines
- Be Respectful: Treat all community members with respect and courtesy
- Be Helpful: Share knowledge and help others when you can
- Be Constructive: Provide actionable feedback and suggestions
- Be Patient: Remember that everyone is learning and growing
- Follow the Rules: Adhere to forum rules and GitHub’s terms of service
Join the Discussion
Ready to connect with other developers? Join the conversation on the official forum!