{"id":7050,"date":"2026-01-27T10:51:12","date_gmt":"2026-01-27T05:21:12","guid":{"rendered":"https:\/\/asia.wordcamp.org\/2026\/?post_type=wcb_session&#038;p=7050"},"modified":"2026-04-07T09:22:55","modified_gmt":"2026-04-07T03:52:55","slug":"building-a-block-theme-from-scratch","status":"publish","type":"wcb_session","link":"https:\/\/asia.wordcamp.org\/2026\/session\/building-a-block-theme-from-scratch\/","title":{"rendered":"Building a block theme from scratch"},"content":{"rendered":"\n<p>A clear mental model of how block themes differ fundamentally from traditional WordPress theme development, helping them understand when and why to use this approach.<br>Hands-on experience building a functional block theme from scratch, giving participants a working foundation they can extend and customize<br>Proficiency with theme.json configuration and how to structure it for optimal theme control<br>Ability to create and organize Templates and Template Parts effectively within a block theme architecture<br>Knowledge of how to implement Block Styles and Style Variations to offer clients and users meaningful customization options<\/p>\n\n\n\n<p><strong>Prerequisites<\/strong><\/p>\n\n\n\n<p>Keep this HTML file ready at your end before the Workshop begins<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up Your Workshop Site<\/h2>\n\n\n\n<p>Before the workshop, you&#8217;ll need to set up a local WordPress site using <strong>WordPress Studio<\/strong>. Studio is a free, lightweight app that runs WordPress right on your computer \u2014 no server needed!<\/p>\n\n\n\n<p>There are two ways to get started: using the <strong>Studio app interface<\/strong> or the <strong>Studio CLI<\/strong> (command line). Pick whichever you&#8217;re more comfortable with.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Install WordPress Studio<\/h3>\n\n\n\n<p>If you don&#8217;t have Studio yet, download it from <a href=\"https:\/\/developer.wordpress.com\/studio\/\">developer.wordpress.com\/studio<\/a> and install it on your machine. The desktop app is available for Mac and Windows. Linux users can use the Studio CLI \u2014 install it via npm with <code>npm install -g wp-studio<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Download the Workshop Files<\/h3>\n\n\n\n<p>Download the workshop bundle from GitHub: <a href=\"https:\/\/github.com\/bph\/workshop\">github.com\/bph\/workshop<\/a>. Click the green <strong>Code<\/strong> button and select <strong>Download ZIP<\/strong>. Unzip the folder somewhere you can find it easily.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Create Your Site<\/h3>\n\n\n\n<p>Choose one of the two options below.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Option A: Using the Studio App<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>WordPress Studio<\/strong><\/li>\n\n\n\n<li>Click <strong>Add site<\/strong> and choose <strong>Import from blueprint<\/strong><\/li>\n\n\n\n<li>Navigate to the unzipped workshop folder and select <code>blueprint-studioapp.json<\/code><\/li>\n\n\n\n<li>Wait for Studio to finish setting everything up \u2014 this may take a minute or two<\/li>\n\n\n\n<li>Your site is ready! Click the site name in Studio to open it in your browser<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Option B: Using the Studio CLI<\/h4>\n\n\n\n<p>If you prefer working in the terminal, the Studio CLI is a fast way to get going.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>First, enable the CLI: open <strong>WordPress Studio<\/strong>, go to <strong>Settings<\/strong> (or <strong>WordPress Studio \u2192 Settings<\/strong> on Mac), and toggle <strong>Enable Studio CLI<\/strong><\/li>\n\n\n\n<li>Open your terminal and <code>cd<\/code> into the unzipped workshop folder<\/li>\n\n\n\n<li>Run the following command:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>studio site create --name \"Concrete and Light\" --blueprint .\/blueprint.json --path ~\/Studio\/concrete-light<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Studio will display the site URL, username, and password when it&#8217;s done<\/li>\n\n\n\n<li>Open the URL in your browser and you&#8217;re all set!<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">What You&#8217;ll Get<\/h3>\n\n\n\n<p>Whichever option you choose, your site will come pre-configured with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress with PHP 8.2<\/li>\n\n\n\n<li>The <strong>Create Block Theme<\/strong> and <strong>Gutenberg<\/strong> plugins installed and activated<\/li>\n\n\n\n<li>Demo content already imported \u2014 5 pages and 3 project posts for a fictional architecture studio called <em>Concrete &amp; Light<\/em><\/li>\n\n\n\n<li>A static homepage and pretty permalinks configured<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Need Help?<\/h3>\n\n\n\n<p>If you run into any issues during setup, don&#8217;t worry! We&#8217;ll have time at the start of the workshop to troubleshoot. Just make sure you have WordPress Studio installed beforehand so we can hit the ground running.<\/p>\n\n\n\n<p>See you at the workshop!<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>A clear mental model of how block themes differ fundamentally from traditional WordPress theme development, helping them understand when and why to use this approach.Hands-on experience building a functional block theme from scratch, giving participants a working foundation they can extend and customizeProficiency with theme.json configuration and how to structure it for optimal theme controlAbility [&hellip;]<\/p>\n","protected":false},"author":5713323,"featured_media":0,"template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_wcpt_session_time":1775723400,"_wcpt_session_duration":5400,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[7043,13307,13305],"footnotes":""},"session_track":[],"session_category":[],"class_list":["post-7050","wcb_session","type-wcb_session","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pgnY82-1PI","session_date_time":{"date":"April 09, 2026","time":"02:00 pm"},"session_speakers":[{"id":"7043","slug":"birgit-pauli-haack","name":"Birgit Pauli-Haack","link":"https:\/\/asia.wordcamp.org\/2026\/speaker\/birgit-pauli-haack\/"},{"id":"13307","slug":"bijay-yadav","name":"Bijay Yadav","link":"https:\/\/asia.wordcamp.org\/2026\/speaker\/bijay-yadav\/"},{"id":"13305","slug":"muhammad-ridha-ridwan","name":"Muhammad Ridha Ridwan","link":"https:\/\/asia.wordcamp.org\/2026\/speaker\/muhammad-ridha-ridwan\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/7050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":6,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/7050\/revisions"}],"predecessor-version":[{"id":13409,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/7050\/revisions\/13409"}],"speakers":[{"embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/speakers\/7043"},{"embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/speakers\/13307"},{"embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/speakers\/13305"}],"author":[{"embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wporg\/v1\/users\/bph"}],"wp:attachment":[{"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/media?parent=7050"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_track?post=7050"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/asia.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_category?post=7050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}