Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions apps.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"apps/ai-assistant.json": {
"title": "AI Assistant",
"description": "AI-powered chat interface to modify your WordPress to your liking. Bring your own key or use a local LLM",
"author": "Alex Kirk",
"categories": [
"Apps",
"AI"
]
},
"apps/app-launcher.json": {
"title": "App Launcher",
"description": "Adds an app launcher to your WordPress",
"author": "Alex Kirk",
"categories": [
"Apps",
"Utility"
]
},
"apps/chat-to-blog.json": {
"title": "Chat to Blog",
"description": "Import media from Beeper chats and create blog posts. Requires Beeper Desktop running.",
"author": "Alex Kirk",
"categories": [
"Apps",
"Media"
]
},
"apps/post-collection.json": {
"title": "Collect Posts from the Web",
"description": "Use the Post Collection Plugin to save articles from around the web",
"author": "Alex Kirk",
"categories": [
"Apps",
"Productivity"
]
},
"apps/personal-crm.json": {
"title": "Personal CRM",
"description": "Manage your contacts and relationships directly from WordPress",
"author": "Alex Kirk",
"categories": [
"Apps",
"Productivity"
]
},
"apps/rss-reader.json": {
"title": "RSS Reader",
"description": "Follow friends and consume their content in your WordPress",
"author": "Alex Kirk",
"categories": [
"Apps",
"Social"
]
}
}
27 changes: 27 additions & 0 deletions apps/ai-assistant.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "AI Assistant",
"description": "AI-powered chat interface to modify your WordPress to your liking. Bring your own key or use a local LLM",
"author": "Alex Kirk",
"categories": [
"Apps",
"AI"
]
},
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "git:directory",
"url": "https://github.com/akirk/playground-ai-assistant",
"ref": "main",
"refType": "branch"
},
"options": {
"activate": true,
"targetFolderName": "playground-ai-assistant"
}
}
]
}
22 changes: 22 additions & 0 deletions apps/app-launcher.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "App Launcher",
"description": "Adds an app launcher to your WordPress",
"author": "Alex Kirk",
"categories": ["Apps", "Utility"]
},
"landingPage": "/wp-admin/options-general.php?page=my-apps",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "my-apps"
},
"options": {
"activate": true
}
}
]
}
22 changes: 22 additions & 0 deletions apps/chat-to-blog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "Chat to Blog",
"description": "Import media from Beeper chats and create blog posts. Requires Beeper Desktop running.",
"author": "Alex Kirk",
"categories": ["Apps", "Media"]
},
"landingPage": "/wp-admin/admin.php?page=chat-to-blog",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github.com/akirk/chat-to-blog/releases/latest/download/chat-to-blog.zip"
},
"options": {
"activate": true
}
}
]
}
35 changes: 35 additions & 0 deletions apps/personal-crm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "Personal CRM",
"description": "Manage your contacts and relationships directly from WordPress",
"author": "Alex Kirk",
"categories": [
"Apps",
"Productivity"
]
},
"landingPage": "/crm/welcome",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github.com/akirk/personal-crm/releases/latest/download/personal-crm.zip"
},
"options": {
"activate": true
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github.com/akirk/keeping-contact/releases/latest/download/keeping-contact.zip"
},
"options": {
"activate": true
}
}
]
}
32 changes: 32 additions & 0 deletions apps/post-collection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "Collect Posts from the Web",
"description": "Use the Post Collection Plugin to save articles from around the web",
"author": "Alex Kirk",
"categories": ["Apps", "Productivity"]
},
"landingPage": "/wp-admin/admin.php?page=post-collection-settings",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github.com/akirk/post-collection/releases/latest/download/post-collection.zip"
},
"options": {
"activate": true
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github.com/akirk/send-to-e-reader/releases/latest/download/send-to-e-reader.zip"
},
"options": {
"activate": true
}
}
]
}
29 changes: 29 additions & 0 deletions apps/rss-reader.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "RSS Reader",
"description": "Follow friends and consume their content in your WordPress",
"author": "Alex Kirk",
"categories": ["Apps", "Social"]
},
"landingPage": "/friends/?refresh&welcome",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "friends"
},
"options": {
"activate": true
}
},
{
"step": "runPHP",
"code": "<?php require_once '/wordpress/wp-load.php';if(class_exists('Friends\\Import')){$feeds=array(array('https://alex.kirk.at','Alex Kirk'),array('https://adamadam.blog','Adam Zieliński'));$x=new SimpleXMLElement('<opml/>');$a='addAttribute';$c='addChild';$x->$a('version','2.0');$h=$x->$c('head');$h->$c('title','Subscriptions');$b=$x->$c('body');$s=$b->$c('outline');$s->$a('text','Subscriptions');$s->$a('title','Subscriptions');foreach($feeds as $f){list($u,$t)=$f;$o=$s->$c('outline');$o->$a('type','rss');$o->$a('text',$t);$o->$a('title',$t);$o->$a('xmlUrl',$u);$o->$a('htmlUrl',$u);}Friends\\Import::opml($x->asXML());}",
"progress": {
"caption": "Importing feeds to Friends plugin"
}
}
]
}
29 changes: 29 additions & 0 deletions blueprints/my-wordpress/blueprint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"meta": {
"title": "My WordPress",
"description": "A welcome experience for persistent WordPress Playground instances. Lets you personalize your site name and optionally import content from an RSS feed.",
"author": "Alex Kirk",
"categories": [
"Playground",
"Onboarding"
]
},
"login": true,
"landingPage": "/wp-admin/tools.php?page=playground-welcome",
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "git:directory",
"url": "https://github.com/WordPress/blueprints",
"ref": "trunk",
"refType": "branch",
"path": "blueprints/my-wordpress/plugin"
},
"options": {
"activate": true
}
}
]
}
1 change: 1 addition & 0 deletions blueprints/my-wordpress/plugin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
93 changes: 93 additions & 0 deletions blueprints/my-wordpress/plugin/about.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<!-- wp:paragraph {"fontSize":"medium"} -->
<p class="has-medium-font-size">This is a real WordPress, running entirely in your browser. No server, no account, no data leaving your machine.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">How is this possible?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This WordPress runs through <a href="https://wordpress.org/playground/">WordPress Playground</a>, a technology that lets WordPress run directly in your browser using WebAssembly. Your content is stored in your browser's local storage.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">What makes this different</h2>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>Truly private</strong> — Your data never touches a server. It exists only on your device, in your browser.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>No account needed</strong> — No signup, no email, no password to remember. Just open the page and it's yours.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Completely free</strong> — No hosting costs, no subscriptions, no catches.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Full WordPress</strong> — This isn't a limited demo. Install plugins, change themes, customize everything.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Ideas for using it</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Because it's private and persistent, this WordPress works well for things you might not publish:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>A personal journal or daily notes</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Draft posts before publishing elsewhere</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Collecting recipes, bookmarks, or research</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Learning WordPress without risk</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>A private space to organize your thoughts</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Learn WordPress</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Want to learn more about what WordPress can do?</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://wordpress.org/documentation/">WordPress Documentation</a> — Official guides and tutorials</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://learn.wordpress.org/">Learn WordPress</a> — Free courses and workshops</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://developer.wordpress.org/block-editor/">Block Editor Handbook</a> — Master the editor</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When you're ready for more</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This browser-based WordPress is great for personal use. When you want to access your site from multiple devices, share it publicly, or collaborate with others, you can export everything and move to hosted WordPress. What you build here comes with you.</p>
<!-- /wp:paragraph -->
Loading