{"id":21518715,"url":"https://github.com/halo-lab/halo-sanity-plugins","last_synced_at":"2026-02-08T23:07:18.469Z","repository":{"id":246844162,"uuid":"823737395","full_name":"Halo-Lab/halo-sanity-plugins","owner":"Halo-Lab","description":"🧰 A place for all Sanity plugins crafted by Halo","archived":false,"fork":false,"pushed_at":"2024-07-04T12:12:12.000Z","size":195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T21:07:56.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Halo-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-07-03T15:55:17.000Z","updated_at":"2024-07-04T12:12:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"d70b7670-b682-4fb3-baa7-86cdd46dc4f6","html_url":"https://github.com/Halo-Lab/halo-sanity-plugins","commit_stats":null,"previous_names":["halo-lab/halo-sanity-plugins"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Halo-Lab/halo-sanity-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Halo-Lab%2Fhalo-sanity-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Halo-Lab%2Fhalo-sanity-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Halo-Lab%2Fhalo-sanity-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Halo-Lab%2Fhalo-sanity-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Halo-Lab","download_url":"https://codeload.github.com/Halo-Lab/halo-sanity-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Halo-Lab%2Fhalo-sanity-plugins/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268192551,"owners_count":24210541,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-11-24T00:53:42.756Z","updated_at":"2026-02-08T23:07:13.435Z","avatar_url":"https://github.com/Halo-Lab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Halo Lab's Sanity plugins repository\n\nThis mono repository is designed to be easily extendable with new plugins for Sanity.\n\n## How to add a new plugin\n\n- Create a folder at the top level place (like **studio**, **qrcode** etc).\n- Add the folder to **workspaces** array of the top-level _package.json_.\n- Initialise the plugin structure however you prefer.\n  \u003e There are two ways to write a plugin.\n  \u003e\n  \u003e 1. Follow the official instruction.\n  \u003e 2. Write everything from scratch.\n  \u003e\n  \u003e While Sanity recommends the first variant, we may prefer the second one.\n      The reason is that the official bootstrapped structure is way too heavy and\n      event cannot work properly (a conflict in dependencies, mental overhead, etc.).\n      The manual variant requires writing a minimum amount of configuration and code\n      to get the job done. An example of manually crafted plugin is **qrcode**.\n- Run `npm i` to add the new plugin to top-level _node_modules_, so it can be included to other local repositories (we need it for testing).\n- Write the code.\n- If you want to show what the plugin looks like visually, make an image(s) somehow and put it to the **assets** directory.\n  After that, you can refer to those images from the README.\n- Stay sane.\n\n## How to test the plugin\n\nCheck if plugin is working the way it needs to work in the Sanity Studio.\nFor that reason, the testing studio lives in the **studio** repository.\n\n\u003e If you know how to write automated tests for plugins, please leave your knowledge here and write tests at least\n\u003e to one plugin, so we will know as well.\n\n### Setting up the testing Studio\n\n- Create the `.env.local` file in the **studio** folder with the following content:\n\n  ```\n  SANITY_STUDIO_PROJECT_ID=47oc2r8x\n  SANITY_STUDIO_DATASET_TYPE=production\n  ```\n\n- Add the plugin as a dependency to Studio's `package.json` (You can refer to it the same way as you include packages from _npm_).\n- Include plugin to the `plugins` array of the Studio's `sanity.config.ts` file.\n- _Optional_: you may need to run `npm i`.\n- Ask Sergey Diniovskiy or Ihor Bozhuk to invite you to the Studio, so you can log in.\n- Test like crazy.\n\n## Word from author\n\nHave fun ✌️\n\n\u003ca href=\"https://www.halo-lab.com/?utm_source=github\"\u003e\n  \u003cimg\n    src=\"https://dgestran.sirv.com/Images/supported-by-halolab.png\"\n    alt=\"Supported by Halo lab\"\n    height=\"60\"\n  \u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalo-lab%2Fhalo-sanity-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalo-lab%2Fhalo-sanity-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalo-lab%2Fhalo-sanity-plugins/lists"}