GoodBlocks releasesself-updates
Goodblocks
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/agoodid/goodblocks/releases/download/v1.14.0-rc.28/goodblocks.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Readme
GoodBlocks
A collection of 12 reusable Gutenberg blocks for WordPress, built and maintained by AGoodId.
Requires: WordPress 6.4+ • PHP 8.0+ License: GPL-2.0-or-later
Blocks
Masonry Query
Dynamic masonry grid that fetches posts, pages, media, or custom post types. Supports lightbox, filtering, load-more pagination, infinite scroll, hover effects, overlay styles, deep links, and animations. Highly configurable with per-breakpoint column counts and multiple image sources (featured, first in content, ACF field).
Post Grid
Display posts in four layout variants: grid, list, people, and timeline. Supports multi-select post types and taxonomy terms, configurable excerpt length, meta fields, aspect ratio, and a "show more" link. Works with pages, custom post types, and child posts.
Image Compare
Before/after image comparison slider with drag, touch, and keyboard support. Features:
- Auto-tease animation that smoothly slides between before and after when the block scrolls into view, attracting attention without user interaction
- User takeover — any mouse, touch, or keyboard input immediately stops the animation and hands control to the user
- Aspect ratio control (16:9, 4:3, 3:2, 1:1, and more) to prevent oversized blocks
- Focal point picker for each image, controlling which part is visible when cropped
- Vertical mode for top-to-bottom comparisons
- Accessibility — full keyboard navigation, ARIA slider role, respects
prefers-reduced-motion
Search Autocomplete
Live search field with REST API-powered autocomplete. Shows results with thumbnails, excerpts, and post type labels. Supports expandable mode (icon-only until clicked), configurable post types, and minimum character threshold.
Feature Card
Versatile card block with image, hover effects (lift, zoom), and entrance animations (fade-up). Supports vertical layout, custom aspect ratio, link target, and optional meta text.
Media Grid
Flexible grid container with bento layout options (large-left, large-right, large-top, mosaic, custom). Each grid item supports background images/video, text overlay with configurable position and opacity, hover effects, and responsive column counts per breakpoint.
Double Container with Text
Two side-by-side containers, each with independent title, text, background image, overlay color/opacity, and link. Useful for split-screen hero sections and comparison layouts.
Countdown
Countdown timer to a specific date and time. Optionally shows seconds. Supports wide and full alignment.
Quiz
Interactive quiz question block with multiple answers, correct answer highlighting, and background media support. Useful for educational content and engagement.
Page List
Sidebar-style page menu that lists child pages of a selected parent. Optionally includes the parent page itself.
Mailchimp Signup
Simple email signup form that posts directly to a Mailchimp list. Configurable title, description text, and list link.
Icon
Curated Lucide icon block for event pages and style-guide examples. Includes a searchable editor picker, small/medium/large sizes, inherit/brand blue/gold/white colors, and layouts for icon-only, icon with title, or icon with supporting text.
The editor also includes an inline Lucide icon format for RichText fields, so editors can insert curated icons directly inside headings, paragraphs, lists, and other text-based blocks.
Features beyond blocks
Auto-updates
GoodBlocks updates itself directly from GitHub Releases via the WordPress plugin update screen. When a new release is tagged, the CI pipeline builds a zip and publishes it. WordPress checks for updates automatically (every 12 hours) or on demand via Dashboard > Updates > Check again.
AGoodMonitor
Built-in WordPress health reporter that sends hourly status reports to the AGoodMember API. Collects WordPress/PHP versions, plugin and theme status (including available updates), and Site Health issues. Configured under Settings > AGoodMonitor with an API key.
Page taxonomy support
Enables categories and tags on Pages (not just Posts). Active by default. Themes or plugins can disable it:
add_filter( 'goodblocks_page_taxonomies', '__return_false' );
Theme template overrides
Block templates can be overridden from the active theme. The plugin looks for templates in this order:
your-theme/goodblocks/templates/{block}/{template}.php- Plugin
build/blocks/{block}/templates/{template}.php
The lookup path can be filtered with goodblocks_template_path.
Namespace migration
Handles automatic migration from the legacy agoodsite-fse and agoodblocks namespaces. Runs on activation and on version update via plugins_loaded. Rolls back on deactivation so the older plugin can take over if needed.
REST API
The plugin registers three endpoints under goodblocks/v1:
| Endpoint | Method | Purpose |
|---|---|---|
/masonry-query |
POST | Load-more pagination for the Masonry Query block |
/search |
GET | Live search with post type filtering |
/search/suggestions |
GET | Popular or matching post suggestions |
Development
Prerequisites
- Node.js 20+
- npm
Setup
git clone https://github.com/AGoodId/goodblocks.git
cd goodblocks
npm install
Scripts
| Command | Description |
|---|---|
npm run build |
Production build to build/ |
npm start |
Watch mode with hot reload |
npm run lint:js |
Lint JavaScript with @wordpress/eslint-plugin |
npm run lint:css |
Lint SCSS files |
npm run lint |
Run both JS and CSS linting |
Project structure
goodblocks/
goodblocks.php Main plugin file
inc/
agoodmonitor.php Health reporter
github-updater.php Auto-update from GitHub releases
helpers.php Template loader + thumbnail fallback
masonry-rest-api.php Masonry load-more endpoint
search-rest-api.php Search + suggestions endpoints
src/blocks/ Block source (edit.js, view.js, style.scss, render.php, block.json)
build/blocks/ Compiled output (committed, used by WordPress)
.github/workflows/
ci.yml Lint, build, PHP syntax check, block validation
release.yml Build zip + create GitHub Release on tag push
Branch-strategi
| Branch | Syfte |
|---|---|
main |
Produktion — CI körs vid push, release vid tag |
feature/[namn] |
Ny funktionalitet |
fix/[namn] |
Buggfix |
Merge alltid via Pull Request till main. Pusha aldrig direkt till main.
Commit-konventioner
Vi använder Conventional Commits:
feat: lägg till quiz-block med mediabakgrund
fix: korrigera masonry-paginering på mobil
chore: uppdatera @wordpress/scripts till v30
refactor: bryt ut template-loader till helpers.php
Releasing a new version
- Bump the version in
goodblocks.php(both the header andGOODBLOCKS_VERSION) - Commit and push to
main - Tag and push:
git tag v1.x.x && git push origin v1.x.x - The release workflow builds the zip and publishes a GitHub Release automatically
- WordPress sites with the plugin installed will see the update within 12 hours (or immediately via Dashboard > Updates > Check again)
Note: Sites running versions older than 1.1.0 (before the auto-updater was added) need a one-time manual upload of the latest zip.
Requirements
- WordPress 6.4 or later
- PHP 8.0 or later
License
GPL-2.0-or-later. See LICENSE.
Built by AGoodId.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.14.0-rc.28 | Aug 25, 2026 | goodblocks.zip | 7 |
| v1.14.0-rc.27 | Jul 30, 2026 | goodblocks.zip | 3 |
| v1.14.0-rc.27 | Jul 30, 2026 | goodblocks-1.14.0-rc.27-folder.zip | 7 |
| v1.14.0-rc.26 | Jul 29, 2026 | goodblocks.zip | 0 |
| v1.14.0-rc.24 | Jul 29, 2026 | goodblocks.zip | 0 |
| v1.14.0-rc.22 | Jul 26, 2026 | goodblocks.zip | 4 |
| v1.14.0-rc.21 | Jul 26, 2026 | goodblocks.zip | 0 |
| v1.14.0-rc.13 | Jul 26, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.11 | Jul 25, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.10 | Jul 25, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.9 | Jul 25, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.8 | Jul 25, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.7 | Jun 25, 2026 | goodblocks.zip | 6 |
| v1.14.0-rc.6 | Jun 18, 2026 | goodblocks.zip | 3 |
| v1.14.0-rc.5 | Jun 18, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.4 | Jun 18, 2026 | goodblocks.zip | 0 |
| v1.14.0-rc.3 | May 9, 2026 | goodblocks.zip | 4 |
| v1.14.0-rc.2 | May 9, 2026 | goodblocks.zip | 1 |
| v1.14.0-rc.1 | May 7, 2026 | goodblocks.zip | 1 |
| v1.13.0-rc.10 | May 7, 2026 | goodblocks.zip | 1 |
| v1.13.0-rc.9 | May 7, 2026 | goodblocks.zip | 1 |
| v1.13.0-rc.8 | May 7, 2026 | goodblocks.zip | 1 |
| v1.13.0-rc.7 | May 2, 2026 | goodblocks.zip | 3 |
| v1.13.0-rc.6 | May 1, 2026 | goodblocks.zip | 7 |
| v1.13.0-rc.5 | May 1, 2026 | goodblocks.zip | 0 |