A modern Obsidian plugin starter template that integrates Svelte for UI development, powered by esbuild and Bun for fast builds and dependency management.
- ✅ Svelte Integration – Build reactive plugin interfaces using Svelte
- ⚡ Esbuild for Svelte – Fast bundling via esbuild with Svelte support
- 🐰 Bun Lockfile – Uses Bun for dependency resolution and a
bun.lockb
file - 📦 Standard Structure – Source code in a
src/
folder, output to adist/
folder - 🔁 Automatic Rebuilds – Run
bun run dev
to watch for changes and auto-export todist/
- 🚀 Release Ready – Includes a GitHub Actions
release.yml
workflow for building and publishing releases
Before you begin, make sure you have the following installed:
- Bun – required for dependency management and running build scripts
- Node.js v22 (suggested) – for optimal compatibility with modern APIs and tooling
You can verify your environment with:
bun --version
node --version
-
Click "Use this template" on GitHub to create your own plugin repository
-
Install dependencies:
bun install
-
Build the plugin into the
dist/
folder, run:bun run dev
-
To test the plugin locally in your Obsidian vault, create a symbolic link:
ln -s /path/to/your/template/dist /path/to/your/vault/.obsidian/plugins/your-plugin-name
e.g.
ln -s /decaf-dev/repos/my-plugin/dist /decaf-dev/desktop/obsidian-development/.obsidian/plugins/my-plugin
-
Open Obsidian. Navigate to Community Plugins and enable your plugin
To automatically generate plugin bundles when tagging a new release:
-
Go to your repository on GitHub
-
Navigate to Settings → Actions → General
-
Under Workflow permissions, select:
✅ Read and write permissions -
Click Save to apply changes
Now, to trigger a release, simply tag a version:
git tag 1.1.0 git push 1.1.0
This will run the
release.yml
workflow and generate your plugin build in the release assets.