Preventing some client over-customization

The beauty and curse of Gutenberg is that there are many controls over presentation behaviors over most blocks. Here is a JSON code sample that will shut off most block styling options:

{
  "$schema": "https://schemas.wp.org/wp/6.4/theme.json",
  "version": 2,
  "settings": {
    "appearanceTools": false,
    "border": {
      "color": false,
      "radius": false,
      "style": false,
      "width": false
    },
    "color": {
      "text": false,
      "background": false,
      "link": false,
      "custom": false,
      "customDuotone": false,
      "customGradient": false,
      "defaultDuotone": false,
      "defaultGradients": false,
      "defaultPalette": false
    },
    "layout": {
      "allowEditing": false
    },
    "spacing": {
      "blockGap": null,
      "margin": false,
      "padding": false,
      "units": []
    },
    "typography": {
      "customFontSize": false,
      "fontStyle": false,
      "fontWeight": false,
      "letterSpacing": false,
      "lineHeight": false,
      "textDecoration": false,
      "textTransform": false,
      "dropCap": false,
      "fontSizes": [],
      "fontFamilies": [],
      "writingMode": false
    },
    "blocks": {
      "core/button": {
        "border": {
          "radius": false
        }
      },
      "core/image": {
        "lightbox": {
          "enabled": false,
          "allowEditing": false
        }
      },
      "core/pullquote": {
        "border": {
          "color": false,
          "radius": false,
          "width": false
        }
      }
    }
  },
  "templateParts": [
    {
      "area": "footer",
      "name": "footer",
      "title": "Footer"
    },
    {
      "area": "header",
      "name": "header",
      "title": "Header"
    }
  ]
}

source

(it should be noted that the templateParts section here is just showing the closing of the document)

Removing default block patterns

Many of us believe that WordPress has been overzealous in the inclusion of default block patterns – while the breadth of the examples shows what can be done with patterns, you can always go here when looking for such inspiration. Having so many uncurated patterns on display for the typical user can be overwhelming and trigger some pretty terrible design mistakes. Here is some PHP code (see the instructions in the comments) that will eliminate those default patterns from display:

<?php
/**
 * HOW TO:
 * 1. Download this file, and place it inside an `inc` directory in your theme.
 * 2. Add the following line into your theme's `functions.php`: require_once __DIR__ . '/inc/remove-default-patterns.php';
 */

/**
 * Prevent the loading of patterns from the WordPress.org Pattern Directory
 */
add_filter( 'should_load_remote_block_patterns', '__return_false' );

/**
 * Remove patterns that ship with WordPress Core.
 */
function bbfs_remove_core_block_patterns() {
	remove_theme_support( 'core-block-patterns' );
}
add_action( 'after_setup_theme', 'bbfs_remove_core_block_patterns' );

source