Build a theme-owned Gutenberg block with block.json, @wordpress/scripts, and RichText. Learn how saved markup, registration, and block validation fit together.

Build a request-time login redirect without trusting cookie presence, opening redirect vulnerabilities, or mistaking a route guard for authorization.

Build a card that changes layout with its available space, then diagnose missing containers, incorrect breakpoints, and nested query behavior.

Build a small headless WordPress blog with Next.js and WPGraphQL, then handle missing posts, API failures, HTML safety, and content freshness deliberately.

Choose server and client boundaries deliberately in Next.js 15, then check data flow, caching, streaming, and security before shipping.
