{"id":398926,"date":"2026-11-04T23:24:01","date_gmt":"2026-11-04T23:24:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/block-ledger\/"},"modified":"2026-11-05T02:14:17","modified_gmt":"2026-11-05T02:14:17","slug":"block-ledger","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/block-ledger\/","author":17271140,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Block Ledger","header_author":"Vlad Parole","header_description":"Solves WordPress content decay: indexes every block site-wide, locks down the inserter, and safely retires blocks to static HTML with one-click restore. No content blocks added \u2014 this is a control plane, not a block library.","assets_banners_color":"253c56","last_updated":"2026-11-05 02:14:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/spyx3m119\/block-ledger","header_author_uri":"https:\/\/github.com\/spyx3m119","rating":0,"author_block_rating":0,"active_installs":0,"downloads":222,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"blademp119","date":"2026-11-05 02:14:17","revision":3785097}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3784939,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3784939,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3784939,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3784939,"resolution":"2","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Tools \u2192 Block Ledger dashboard showing site-wide block usage with counts and actions.","2":"Editor sidebar panel with block usage list, hide\/retire actions, and per-post-type policy."}},"plugin_section":[],"plugin_tags":[148857,4121,1332,258885,148076],"plugin_category":[46],"plugin_contributors":[290782],"plugin_business_model":[],"class_list":["post-398926","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-blocks","plugin_tags-editor","plugin_tags-governance","plugin_tags-gutenberg","plugin_category-editor-and-writing","plugin_contributors-blademp119","plugin_committers-blademp119"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/block-ledger\/assets\/icon-128x128.png?rev=3784939","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/block-ledger\/assets\/screenshot-1.png?rev=3784939","caption":"Tools \u2192 Block Ledger dashboard showing site-wide block usage with counts and actions."},{"src":"https:\/\/ps.w.org\/block-ledger\/assets\/screenshot-2.png?rev=3784939","caption":"Editor sidebar panel with block usage list, hide\/retire actions, and per-post-type policy."}],"raw_content":"<!--section=description-->\n<p>Block Ledger is a <strong>control plane over the block editor<\/strong> \u2014 not another block library. It answers three questions content plugins never touch:<\/p>\n\n<ul>\n<li><strong>What is in my editor, and where is it used?<\/strong> A usage index built from <code>parse_blocks()<\/code> across posts, reusable blocks, and Full Site Editing templates.<\/li>\n<li><strong>What am I allowed to add?<\/strong> Allow\/deny blocks globally or per post-type, and lock editor settings per role.<\/li>\n<li><strong>If I remove or update something, what breaks \u2014 and can I undo it?<\/strong> Retire a block type by rendering every in-use instance to portable static HTML, with a one-click restore snapshot.<\/li>\n<\/ul>\n\n<p>The safe-deactivation feature is the anti-lock-in core: deactivate a block plugin without leaving broken markup behind.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>From your WordPress admin, go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Search for <strong>Block Ledger<\/strong>, click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Open any post in the block editor; the <strong>Block Ledger<\/strong> panel opens from the \"+\" more menu on the top bar.<\/li>\n<\/ol>\n\n<h4>Building from source<\/h4>\n\n<p>Clone the repository and run <code>npm install &amp;&amp; npm run build<\/code> to compile the editor assets into <code>build\/<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20block%20ledger%20add%20content%20blocks%3F\"><h3>Does Block Ledger add content blocks?<\/h3><\/dt>\n<dd><p>No. It is a control panel, not a block library. It adds no content blocks of its own.<\/p><\/dd>\n<dt id=\"will%20hiding%20a%20block%20delete%20existing%20content%3F\"><h3>Will hiding a block delete existing content?<\/h3><\/dt>\n<dd><p>No. Hiding a block removes it from the inserter only. Existing content that uses that block is untouched.<\/p><\/dd>\n<dt id=\"what%20does%20%22retire%22%20do%3F\"><h3>What does \"retire\" do?<\/h3><\/dt>\n<dd><p>Retire converts every instance of a block to plain static HTML and snapshots the original. This lets you remove a block plugin without breaking pages. Restore brings the original back.<\/p><\/dd>\n<dt id=\"is%20the%20pro%20tier%20a%20paywall%20inside%20the%20free%20plugin%3F\"><h3>Is the Pro tier a paywall inside the free plugin?<\/h3><\/dt>\n<dd><p>No. The free plugin is 100% GPL with no feature gates. Pro is a separate plugin or external purchase flow only.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20on%20multisite%3F\"><h3>Can I use this on multisite?<\/h3><\/dt>\n<dd><p>Yes. The usage index and policy settings are stored as site options. Network admins can manage policies from Tools \u2192 Block Ledger.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Site-wide block usage index with counts.<\/li>\n<li>Hide\/show blocks from inserter (global + per post-type).<\/li>\n<li>Safe retire\/restore with snapshot.<\/li>\n<li>Tools \u2192 Block Ledger admin dashboard.<\/li>\n<li>Editor sidebar panel fallback.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: usage ledger, inserter allow\/deny policy, safe block retirement with restore.<\/li>\n<\/ul>","raw_excerpt":"Governance, usage auditing, and safe lifecycle control for the WordPress block editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398926"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/blademp119"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398926"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398926"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398926"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398926"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398926"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}