WordPress Forks

a fork and a knife on a white surface

The right to fork the software is at the heart of open source. WordPress itself started as a fork of the b2/cafelog project. WordPress was one of several forks from b2, which included b2++ (which eventually became WordPress Multisite) and some like b2evolution which still continue today.

Matt Mullenweg

One of the amazing advantages of WordPress is its GPL license and the fact that anyone can just make a fork of it and create their own.

Few have had any big impact, but I wanted to track known forks here. And, to be clear, this is a fork of the entire CRM, rather than a component of it (such as plugin installation, for example). Some are forks of forks too, particularly of ClassicPress.

Usage numbers are not available for most, but the most popular, ClassicPress, has an installation base of 1280 websites, as of May 2026.

Known WordPress Forks

calmPress

calmPress is a fork “that modifies the code and management idioms and adds to them whatever is required to get a more stable and calm experience for all of its users”. It was started in 2018 but has had no news items on its website since 2019 and has a near-empty forum.

It was started by Mark Kaplun, who appears to still be committing regularly to the code base.

Status: Unknown

Website: https://calmpress.org

Github: https://github.com/calmPress/

ClassicPress

This is possibly the most well know fork, created in 2018, originally to be a version of WordPress without the block editor.

Status: 🟢 Active

Website: https://www.classicpress.net/

Github: https://github.com/ClassicPress

CosmicWord

Created in late 2024 by security firm Planet Zuda, this fork hasn’t been updated since. The website is now dead, although the code repo remains.

Status: 🔴 Inactive

Website: https://cosmicword.com

Github: https://github.com/Planet-Zuda/CosmicWord

FreeWP

Created late 2024 by Vinny Green, this appears to be dead. Links on the website no longer work and no active repo can be found. However, it doesn’t appear, based on archive results, that the site was nothing much more than a holding page anyway, with footer pages incomplete and, at best, a blog.

It was created as a result of Matt’s legal case against WP Engine, and the community fall-out as a result of this.

Status: 🔴 Inactive

FreeWP: https://freewp.com

NotMattPress

Another fork protesting against Matt, I’m not sure if the code was anything other than a copy of code – it still is just a sync of that. The site has gone offline having been nothing more than a holding page.

Status: 🔴 Inactive

Website: https://notmatt.press/ (dead)

Github: https://github.com/notmattpress

Rectraceur

Created in early 2025 by Mathieu, this is another fork protesting against Matt. There’s no support, just one person’s fork of WordPress that he’s sharing for those interested.

Status: 🟢 Active

Website: https://retraceur.github.io

Github: https://github.com/retraceur

WhitelabelPress

Created in late 2024 by M.J. Schermer (whose personal website appears not to work), they also started their own “WordPressForks” sub on Reddit – needless to say, whilst the sub was for any forks, they ended up posting a lot about their own.

8 months ago it pivoted to Empowed.dev, an AI-first version of WordPress, but one that was closed source (naughty). The website for this is already dead.

Both WhiteLabelPress’ Github repo and website are no longer in use.

Status: 🔴 Inactive

Website: http://whitelabelpress.org

Github: https://github.com/neil-zip/WhiteLabelPress

Fork Detection

You may want a way to detect the use of a fork, so the following code will help with this. Impe

<?php
/**
* WordPress fork detection
*
* Check if a WordPress fork is in use. The check is a seperate function, instead of simply using the current function_exists
* in case the method of detection needs to change.
*/
function is_fork() {
$fork = false;
if ( function_exists( 'calmpress_version' ) ) { $fork = 'calmPress'; }
if ( function_exists( 'classicpress_version' ) ) { $fork = 'ClassicPress'; }
if ( defined( 'COSMIC_VERSION' ) ) { $fork = 'CosmicWord'; }
return $fork;
}