Skip to content


Switch branches/tags

Latest commit



Failed to load latest commit information.
Latest commit message
Commit time
Jun 23, 2022


PoP is a monorepo containing several projects.

Unit tests Integration tests Downgrade PHP tests Scoping tests

The GraphQL API for WordPress plugin

GraphQL API for WordPress is a forward-looking and powerful GraphQL server for WordPress.

Plugins can extend the GraphQL schema, to fetch their own data.

GraphQL By PoP

GraphQL by PoP is a CMS-agnostic GraphQL server in PHP.

PoP - set of PHP components

PoP is a set of libraries which provide a server-side component model in PHP, and the foundation to implement applications with it.

  • Website:
  • Source code:
    • Backbone: Libraries providing the architectural scaffolding.
    • Engine: The engine of the application.
    • Schema: Self-sufficient schema elements, such as directives.
    • CMSSchema: Schema elements abstracted away from the CMS through interfaces, and to be satisfied for some particular CMS.
    • WPSchema: WordPress-specific schema elements.
    • API: Packages to access the schema data through an API, including REST and GraphQL.

Site Builder (WIP)

Site Builder is a set of PHP components to build a website using PoP's component-model architecture.

Similar to WordPress, it accepts themes.

Table of Contents

  1. Setting-up the development environment
  2. Running tests
  3. Repo visualization
  4. Layer dependency graph
  5. Supported PHP features
  6. How is the GraphQL server CMS-agnostic
  7. Why are there so many packages in the repo
  8. Why a monorepo
  9. How transpiling works
  10. How scoping works
  11. Installing the GraphQL API for WordPress plugin


PSR-1, PSR-4 and PSR-12.

To check the coding standards via PHP CodeSniffer, run:

composer check-style

To automatically fix issues, run:

composer fix-style


To execute PHPUnit, run:

composer test

Static analysis

To execute PHPStan, run:

composer analyse

Previewing code downgrade

Via Rector (dry-run mode):

composer preview-code-downgrade

Report issues

Use the issue tracker to report a bug or request a new feature for all packages in the monorepo.


Please see CONTRIBUTING and CODE_OF_CONDUCT for details.


If you discover any security related issues, please email instead of using the issue tracker.



GNU General Public License v2 (or later). Please see License File for more information.