~ What I got wrong
Errors I made, and the check I’d add first
Showing a site’s current users is the point of the dynamic blocks tutorial, and its editor preview has 3 problems.
It shows nothing while the data loads. The handbook’s own example prints Loading, then No Posts if the list comes back empty, so an editor using my block can’t tell a slow request from a broken one.
Anyone with the Editor role gets a blank block and no error. core-data asks for users in edit context, which only administrators can read by default.
It prints a user’s nickname where render.php prints display_name. Anyone who set those differently shows up under 2 names.
Reading the pieces line by line, I found 32 more errors of 7 kinds. I’ve put one of each below, and the download lists them all.
I also mixed up my own repos on July 13, 2025, in the space of 7 minutes. At 07:58 UTC I added a license to custom-gutenberg-block. At 07:59 I uploaded the CTA plugin’s multidots-cta.php, package.json, and readme to it. At 08:03 I uploaded the users block to a second repo, users-block. At 08:05 I uploaded the users block’s src and build folders into the CTA repo by mistake.
The CTA’s own code never made it to GitHub. You can see the block at each stage in the tutorial’s screenshots, and the lockfile in the repo dates my work to January 2025.
Multidots wanted developers to trust it with their WordPress sites. For a tutorial, that trust depends on whether the reader ends up with a working block, so I built every example myself.
The published pages needed the same test the code got. Before your next tutorial goes live, follow it from the page itself on a fresh site, pasting each snippet as you go. Then log in with the Editor role and open the block again.
It’s the check I’d add first. It would have caught the wrong pricing command and the unquoted text domain that crashes the testimonials block. The Editor login would have shown the blank preview.