Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Declarative Blueprints

Open
#33 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
javascript, php
Domain
tooling

Research direction

No implementation files or tests are named. Start by reviewing the proposed JSON format, the listed feature coverage, and the open questions; done means the declarative API format and scope are agreed and the important Blueprint features are covered.

Written by the indexing model from the issue text.

Description

enhancement

Blueprints offer an imperative step-by-step API which is powerful but also complex.

Hypothesis: 99% of Blueprints will only need to declare the necessary ingredients, regardless of the order in which they're applied.

Here's what it could look like:

{
	"landingPage": "/wp-admin/post-new.php",
	"plugins": [ 
		"gutenberg", 
		"classic-editor",
		"https://mysite.com/plugin.zip",
		{ "resource": "url", "https://mysite.com/plugin.zip" }
	],
	"themes": [ "adventurer", "twentytwentyfour" ],
	"activeTheme": "adventurer",
	"login": true,
	"siteOptions": {
		"blogname": "My site!"
	}
}

Let's use this issue to discuss, explore, and iterate on different formats.

Done is

The most important Playground features are covered by the declarative API. In particular:

  • Plugins
  • Themes
  • Site options
  • PHP constants
  • Importing content
  • Importing SQL (? to be determined)
  • PHP.ini entries
  • Writing a file tree from a URL/filesystem to a directory
  • ...anything else?

Open questions

  • Should this data format attempt to accept data like posts, custom post types, user meta, and so on? Would that be a feature creep? Or would a rudimentary support be useful, and for more features devs could switch to WXZ, SQL, or PHP code?

Benefits

Dominant language
PHP
Stars
61
Forks
23
Avg merge
20h 9m
Merged PRs (30d)
7

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from WordPress/php-toolkit

All issues in WordPress/php-toolkit

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.