{"id":28156953,"url":"https://github.com/kevboh/obsidian-plugin-template","last_synced_at":"2025-08-20T10:26:37.513Z","repository":{"id":292514042,"uuid":"981134755","full_name":"kevboh/obsidian-plugin-template","owner":"kevboh","description":"A modern Obsidian plugin template based on bun, mise, and hot-reload.","archived":false,"fork":false,"pushed_at":"2025-05-10T12:25:43.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T13:33:25.666Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevboh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"kevboh","custom":["https://kevinbarrett.org"]}},"created_at":"2025-05-10T12:20:50.000Z","updated_at":"2025-05-10T12:38:31.000Z","dependencies_parsed_at":"2025-05-10T13:43:29.502Z","dependency_job_id":null,"html_url":"https://github.com/kevboh/obsidian-plugin-template","commit_stats":null,"previous_names":["kevboh/obsidian-plugin-template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevboh%2Fobsidian-plugin-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevboh%2Fobsidian-plugin-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevboh%2Fobsidian-plugin-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevboh%2Fobsidian-plugin-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevboh","download_url":"https://codeload.github.com/kevboh/obsidian-plugin-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevboh%2Fobsidian-plugin-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259159621,"owners_count":22814490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-15T08:15:42.276Z","updated_at":"2025-06-10T22:03:11.937Z","avatar_url":"https://github.com/kevboh.png","language":"TypeScript","funding_links":["https://github.com/sponsors/kevboh","https://kevinbarrett.org","https://buymeacoffee.com","https://github.com/sponsors","https://www.patreon.com/"],"categories":[],"sub_categories":[],"readme":"# Obsidian Plugin Template\n\nThis is a template for Obsidian plugins based on the first-party [Obsidian sample plugin](https://github.com/obsidianmd/obsidian-sample-plugin) that aims to be a modern, slimmer replacement with as little impact to your dev setup as possible. Specifically, its goals are to:\n\n- Use fewer tools, replacing `node`, `tsc` and `esbuild` with [`bun`](https://bun.sh/) and removing the `git` dependency in version bumping for those who use [`jj`](https://github.com/jj-vcs/jj) or other VCS tools.\n- Make getting started with plugin development as low-friction as possible by adding a test vault with [hot reload](https://github.com/pjeby/hot-reload) and a script to symlink your plugin into it.\n- Add version determinism via [mise](https://mise.jdx.dev/).\n\n\u003e [!TIP]\n\u003e If you’d like a way to sync, share your Obsidian vaults/notes with others, and edit them on the web check out my other project, [screen.garden](https://screen.garden).\n\n## Initial Setup\n\nFollow these steps to get your local dev loop going:\n\n1. [Install mise](https://mise.jdx.dev/getting-started.html)\n2. `mise install` (to install bun)\n3. `bun install` (to install deps)\n4. Edit `package.json`, `manifest.json`, `main.ts` to rename the plugin.\n\nAfter that you can `bun run dev` to build and watch your source, which should go in `src/`.\n\nTo test your plugin in Obsidian with hot-reloading:\n\n1. `bun run link` to symlink your built plugin into the test vault.\n2. Add `./test-vault` to Obsidian as a new vault.\n3. In your test vault, enable community plugins and enable your plugin.\n\nAfter that any changes to your plugin source will cause it to reload in Obsidian.\n\nThe rest of this README is identical to [the sample template’s](https://github.com/obsidianmd/obsidian-sample-plugin/blob/master/README.md) with small changes and deletions to reflect the new tooling.\n\n## Releasing new releases\n\n- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release.\n- Update your `versions.json` file with `\"new-plugin-version\": \"minimum-obsidian-version\"` so older versions of Obsidian can download an older version of your plugin that's compatible.\n- Create new GitHub release using your new version number as the \"Tag version\". Use the exact version number, don't include a prefix `v`. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases\n- Upload the files `manifest.json`, `main.js`, `styles.css` as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release.\n- Publish the release.\n\n\u003e You can simplify the version bump process by running `bun run verson` after updating your version in package.json.\n\u003e The command will bump version in `manifest.json` and add the entry for the new version to `versions.json`\n\n## Adding your plugin to the community plugin list\n\n- Check the [plugin guidelines](https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines).\n- Publish an initial version.\n- Make sure you have a `README.md` file in the root of your repo.\n- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin.\n\n## Manually installing the plugin\n\n- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`.\n\n## Improve code quality with eslint (optional)\n\n- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code.\n- To use eslint with this project, `bun run lint`.\n\n## Funding URL\n\nYou can include funding URLs where people who use your plugin can financially support it.\n\nThe simple way is to set the `fundingUrl` field to your link in your `manifest.json` file:\n\n```json\n{\n  \"fundingUrl\": \"https://buymeacoffee.com\"\n}\n```\n\nIf you have multiple URLs, you can also do:\n\n```json\n{\n  \"fundingUrl\": {\n    \"Buy Me a Coffee\": \"https://buymeacoffee.com\",\n    \"GitHub Sponsor\": \"https://github.com/sponsors\",\n    \"Patreon\": \"https://www.patreon.com/\"\n  }\n}\n```\n\n## API Documentation\n\nSee https://github.com/obsidianmd/obsidian-api\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevboh%2Fobsidian-plugin-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevboh%2Fobsidian-plugin-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevboh%2Fobsidian-plugin-template/lists"}