How to Build an Interactive WordPress Theme Demo with Playground Blueprints - EMEL

Latest

EMEL

Monday, January 5, 2026

New

How to Build an Interactive WordPress Theme Demo with Playground Blueprints

Media Mamat Turbo January 05, 2026
WordPress Playground lets anyone launch a live WordPress site instantly — no hosting or installation required. It's a quick, hands-on way to explore how a theme looks and behaves. You can open a fresh WordPress instance with a single link and sta…
Read on blog or Reader
Site logo image WordPress.com News Read on blog or Reader

How to Build an Interactive WordPress Theme Demo with Playground Blueprints

By Birgit Pauli-Haack on January 5, 2026

WordPress Playground lets anyone launch a live WordPress site instantly — no hosting or installation required. It's a quick, hands-on way to explore how a theme looks and behaves.

You can open a fresh WordPress instance with a single link and start experimenting right away.

If a theme is available in the WordPress repository, you can preview it in Playground by adding the theme's slug to the URL, for example:
?theme=kiosko.

Example of a WordPress theme demo.

That said, each Playground site starts with a clean WordPress install, so themes load with no existing pages or demo content.

A clean WordPress installation.

If you want your theme to appear exactly as you've designed it — with sample content, navigation, and settings — you can use Playground Blueprints.

In this guide, I'll show you how to get started with Playground Blueprints and create a complete, interactive demo site for your theme.

For this exercise, you'll use a GitHub repository to store assets, such as .xml and blueprint.json files, to build your demo. For Playground to have access, it needs to be a public repository.

What are Playground Blueprints?

WordPress Playground Blueprints let you create preconfigured demo sites in JSON format.

Each Blueprint describes how the Playground instance should be built — what theme to install, what content to import, which settings to enable, and more.

You can browse the full documentation here: WordPress Playground → Blueprints

With Blueprints, you can share a single link that launches a fully configured demo of your theme — complete with pages, patterns, and media — so visitors can explore it directly in their browser.

Let's explore the process step by step.

1. Create your demo website content

First, build a demo version of your theme locally — complete with pages, posts, navigation, and settings — to show how it looks in a real site. 

You'll later export this content and use it inside Playground.

If you've worked with the Site Editor before, this part will feel familiar. You already know what combination of pages, posts, navigation, images, and WordPress settings makes your theme shine.

For this post, I prepared a demo site using the Twenty Twenty-Five default theme, applying one of its style variations and modifying some templates.

The example mimics a travel blog demo with a homepage, blog page, about page, and example templates and patterns:

A travel blog demo homepage.

I've also included a 404 page template:

Example theme demo 404 error page.

As well as an 'About Us' page:

Example About Us page.

And more.

2. Handle images and patterns

While you create your content, you might use Patterns that come with your theme. 

Often, images used are part of the theme and stored in the theme's assets folder.

You would need to upload those to the Media Library and pull them from there into your pages or posts — or replace their URL references in the content with relative links pointing to:

 /wp-content/themes/{yourtheme}/assets/{filename} 

…and remove the https://{domain.ext} part of the URL.

It's best to use WordPress tools to automatically add them to the Media Library to save or from the image block toolbar.

Uploading a file to the WordPress Media Library.

This gives you a self-contained content file you can reuse with other themes or Playground instances.

3. Export your content

Once you've built the demo content on your local site, export it using the WordPress Export feature:

Go to Tools → Export, and select All Content (or make specific choices).

WordPress Export screen.

You can learn more about the Export feature in the documentation.

Before importing the .xml file into Playground, make sure your images and other assets are ready. 

You'll also need to update the image references in your content file.

4. Prepare your export for Playground

Before importing your exported .xml file, make sure Playground can access your media files and that all image links point to the correct locations.

To do this:

  • Upload your demo images and assets to a public GitHub repository (for example, to a /media folder).
  • Update the image references in your .xml file so they point to those GitHub URLs.

Upload your demo images and assets

Playground uses the WordPress Importer plugin, which automatically resizes images and updates URLs for the new site. 

However, the importer tries to fetch images from their original URLs — and most web servers block these requests because of Cross-Origin Resource Sharing (CORS) policies.

To fix that, host your demo assets on GitHub.

GitHub's raw.githubusercontent.com domain bypasses these restrictions, making it ideal for serving demo media.

Upload all your images to a /media folder in your GitHub repository and keep their original filenames to speed up the import process.

Update the image references in your .xml file

Next, replace the image references in your .xml file with the new GitHub URLs, under the <wp:attachment_url> tag.

Use this pattern:

 https://raw.githubusercontent.com/{organization}/{reponame}/{branch}/media/{filename} 

For example:

 <wp:attachment_url><![CDATA[https://raw.githubusercontent.com/wptrainingteam/tt5-demo-blueprint/main/media/random-headshot-1.jpg]]></wp:attachment_url> 

And here's what each part means:

  • Organization: your GitHub organization (for example, wptrainingteam)
  • Repository: your repo name (for example, tt5-demo-blueprint)
  • Branch: main
  • Folder: media
  • Filename: the original file name

Search your .xml file for <wp:attachment_url> (keeping the <![CDATA[...]]> tags intact) and replace each reference with the correct GitHub URL.

Tip: In the Twenty Twenty-Five demo site example, there were 17 replacements in total.

Your integrated development environment (IDE) probably allows you to find the particular string in your .xml file, no matter how big it is. You might see other image references in the file when you use the same image in different sizes.

I added a small Bash script to the repo; you could modify and use it at your own risk.

The WordPress Importer will resize the new images from the attachment URLs and replace the references in other places. You only need to change each image reference once.

5. Create your Blueprint

Now that your demo content is ready, it's time to configure your Playground site using a Blueprint.

A Blueprint defines how Playground sets up your demo — which theme to install, which content to import, and which options to apply.

Understand the Blueprint structure

The Blueprint file has two main parts:

  • Settings – placed in the root of the document.
  • Steps – actions listed in an array that Playground runs in order.

You can learn more in the Blueprint documentation.

Here's an outline of a starter JSON file:

 { "$schema": "https://playground.wordpress.net/blueprint-schema.json", "login": true, ... more settings,  "steps": [ 	{         	"step":"installTheme" {             }     }, 	{             "step":"importWXR" {             }     } 	more steps...  	] }   

The first line ($schema) is optional.

Adding it helps your IDE validate syntax, suggest properties, and catch possible errors.

Add basic settings

The first setting is "login": true.

If you don't need specific credentials, this shorthand automatically gives visitors admin access on the demo site.

If you prefer more control, review the Blueprint step documentation and the Blueprint Gallery for different scenarios.

Clean the default WordPress content

Each new WordPress install includes sample content — a post, a comment, and a page — which can interfere with your demo.

You can add a step to the Blueprint to remove the content by executing a WP-CLI command:

       {         "step": "wp-cli",         "command": "wp site empty --yes"       }, 

Import your demo content

To import the content specifically, leverage the importWxr step — using the raw.githubusercontent.com domain to point to your *.xml file.

   {      "step": "importWxr",      "file": {        "resource": "url",        "url": "https://raw.githubusercontent.com/wptrainingteam/tt5-demo-blueprint/main/playgroundcontent.xml"          }   } 

Install and activate the theme

Next, install and activate the theme you want to demo.

It can come from the WordPress repository, a ZIP file, or a directory of theme files.

This example uses the default Twenty Twenty-Five theme:

     {         "step": "installTheme",         "themeData": {             "resource": "wordpress.org/themes",             "slug": "twentytwentyfive"     },     "options": {         "activate": true     }     }, 

Set Site options

You might also want to set a few Site options. You can use a step or the shorthand to setSiteOptions:

  • For the links to category pages and navigation menus to work, you'll need to enable pretty permalinks.
  • You can also set values for the blog name and description to make it more enticing.
  • To fully set up your demo, you'll probably also want to configure your front page and blog page.

The snippet below shows how to implement these settings:

 "setSiteOptions": {        "blogname": "Twenty-Twenty-Five",        "blogdescription": "The WordPress default theme",        "show_on_front": "page",        "page_on_front": 80,        "page_for_posts": 26,        "permalink_structure": "/%postname%/"     } 

The numbers for page_on_front and page_for_posts match the post IDs in your imported content.

This works because the site was emptied before import.

Optional: Add plugins

You can also include plugins — for example, block collections or WooCommerce.

Here's the shorthand for installing the "Block Visibility," "Public Post Preview," and "Gutenberg" plugins and activating them. 

To add more plugins, just add them to the array:

 { "plugins": [ "block-visibility","public-post-preview", "gutenberg" ] } 

Combine everything

Now that you've added each step, it's time to combine them into one complete Blueprint file.

This final JSON defines your entire demo site setup — from cleaning the default content to installing your theme, importing posts, and setting site options:

 {   "$schema": "https://playground.wordpress.net/blueprint-schema.json",   "login": true,   "steps": [     {         "step": "wp-cli",         "command": "wp site empty --yes"     },     {       "step": "updateUserMeta",       "meta": {           "admin_color": "modern"       },       "userId": 1     },     {         "step": "installTheme",         "themeData": {             "resource": "wordpress.org/themes",             "slug": "twentytwentyfive"         },         "options": {             "activate": true         }     },      {       "step": "importWxr",                     "file": {                             "resource": "url",                             "url": "https://raw.githubusercontent.com/wptrainingteam/tt5-demo-blueprint/main/playground-content.xml" }     },     {       "step": "setSiteOptions",       "options": {         "blogname": "Theme Demo ",         "blogdescription": "A preview of a theme",         "show_on_front": "page",                 "page_on_front": 80,                 "page_for_posts": 26,         "permalink_structure": "/%postname%/"       }     }   ],    "plugins": [ "block-visibility","public-post-preview", "gutenberg" ], } 

6. Test your Blueprint

Before sharing your demo, test the Blueprint in Playground to confirm that every step runs correctly and your theme appears as intended.

Open your Playground URL to launch the demo site and check that:

  • The theme installs and activates properly.
  • All pages, posts, and menus from the .xml import display.
  • Images load from the GitHub /media folder.
  • Permalinks and front-page settings work as expected.

If something looks off, review your blueprint.json for typos or missing commas.

Blueprints are declarative, so even a small syntax issue can interrupt setup. Fix any issues locally, upload the corrected file to GitHub, and refresh the Playground link to test again.

7. Share your Blueprint

Finally, upload your blueprint.json file to GitHub and share the Playground URL with the Blueprint query parameter.

You can use a URL shortener such as Bitly to track usage.

For example:

https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/wptrainingteam/tt5-demo-blueprint/main/blueprint.json

The complete theme demo is available on GitHub and includes:

  • The content to import
  • Images and assets in the /media folder
  • The blueprint.json file
  • The Bash script to help with the attachment URL replacements

Tip: The Blueprints documentation offers many ways to configure your Playground instance for your or your clients' needs.

Learn more about Blueprints and Playground

Now that you've learned how to use Playground to showcase your products, explore these guides on the WordPress Developer Blog:

  • Introduction to Playground: running WordPress in the browser
  • Exploring the future of web development with WebAssembly and PHP
  • How to use WordPress Playground for interactive demos

You can also apply this knowledge in WordPress Studio, which now supports Blueprints.

Learn more here.
Comment
You can also reply to this email to leave a comment.

WordPress.com News © 2026.
Unsubscribe or manage your email subscriptions.

WordPress.com and Jetpack Logos

Get the Jetpack app

Subscribe, bookmark, and get real‑time notifications - all from one app!

Download Jetpack on Google Play Download Jetpack from the App Store
WordPress.com Logo and Wordmark title=

Automattic, Inc.
60 29th St. #343, San Francisco, CA 94110

Read more

Subscribe via email

Share This:
Facebook Twitter Google+ Pinterest Linkedin
Author Image

About Media Mamat Turbo
Templatesyard is a blogger resources site is a provider of high quality blogger template with premium looking layout and robust design. The main mission of templatesyard is to provide the best quality blogger templates.

By Media Mamat Turbo at January 05, 2026
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Popular

  • This Weeks New Digital Building Blog Post
    MAMAT, check out this weeks new Digital Building Blog. ...
  • 8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    Artificial intelligence excels at automating repetitive tasks and streamlining t...
  • [New post] Level Up Your Author HQ With GoCreate.Me
    David Gaughran posted: " Author websites are an increasingly important tool, but one that can cause a lot of aggravation. W...
  • When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    30 days' notice. Years of memories at stake. Here's how WordPress.com st...
  • Covid Turbulence – how countries got cancellations under control
    ...

Sponsor

Powered by Blogger.

Blog Archive

  • January 2026 (6)
  • December 2025 (16)
  • November 2025 (19)
  • October 2025 (11)
  • September 2025 (16)
  • August 2025 (22)
  • July 2025 (19)
  • June 2025 (13)
  • May 2025 (21)
  • April 2025 (32)
  • March 2025 (32)
  • February 2025 (20)
  • January 2025 (44)
  • December 2024 (15)
  • November 2024 (17)
  • October 2024 (14)
  • September 2024 (18)
  • August 2024 (19)
  • July 2024 (14)
  • June 2024 (21)
  • May 2024 (17)
  • April 2024 (24)
  • March 2024 (29)
  • February 2024 (24)
  • January 2024 (63)
  • December 2023 (32)
  • November 2023 (29)
  • October 2023 (25)
  • September 2023 (33)
  • August 2023 (21)
  • July 2023 (21)
  • June 2023 (29)
  • May 2023 (19)
  • April 2023 (14)
  • March 2023 (16)
  • February 2023 (18)
  • January 2023 (16)
  • December 2022 (20)
  • November 2022 (24)
  • October 2022 (22)
  • September 2022 (19)
  • August 2022 (24)
  • July 2022 (31)
  • June 2022 (34)
  • May 2022 (31)
  • April 2022 (37)
  • March 2022 (28)
  • February 2022 (31)
  • January 2022 (39)
  • December 2021 (35)
  • November 2021 (37)
  • October 2021 (32)
  • September 2021 (18)
  • August 2021 (48)
  • July 2021 (43)
  • June 2021 (44)
  • May 2021 (65)
  • April 2021 (72)
  • March 2021 (64)
  • February 2021 (50)
  • January 2021 (47)
  • December 2020 (47)
  • November 2020 (43)
  • October 2020 (96)
  • September 2020 (100)
  • August 2020 (128)
  • July 2020 (87)
  • June 2020 (108)
  • May 2020 (107)
  • April 2020 (90)
  • March 2020 (91)
  • February 2020 (77)
  • January 2020 (88)
  • December 2019 (105)
  • November 2019 (107)
  • October 2019 (102)
  • September 2019 (98)
  • August 2019 (118)
  • July 2019 (115)
  • June 2019 (99)
  • May 2019 (115)
  • April 2019 (103)
  • March 2019 (112)
  • February 2019 (118)
  • January 2019 (109)
  • December 2018 (106)
  • November 2018 (128)
  • October 2018 (97)
  • September 2018 (126)
  • August 2018 (59)
  • January 2013 (1)

Search This Blog

Popular Posts

  • This Weeks New Digital Building Blog Post
    This Weeks New Digital Building Blog Post
    MAMAT, check out this weeks new Digital Building Blog. ...
  • 8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    Artificial intelligence excels at automating repetitive tasks and streamlining t...
  • [New post] Level Up Your Author HQ With GoCreate.Me
    [New post] Level Up Your Author HQ With GoCreate.Me
    David Gaughran posted: " Author websites are an increasingly important tool, but one that can cause a lot of aggravation. W...
  • When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    30 days' notice. Years of memories at stake. Here's how WordPress.com st...
Crafted with by TemplatesYard