When I forked Edit Flow, the first real decision was about a single line of text: the copyright header. I kept it exactly as the original authors wrote it.
Editloft, the plugin that went public on GitHub this week, still credits Mohammad Jangda, Daniel Bachhuber, Automattic, and the rest of the people who built Edit Flow between 2009 and 2019. My own name sits underneath theirs, covering the parts I rewrote across 2024 and 2025. Open the file and you can read the whole lineage in about ten seconds. That header is where the story of this release actually starts.
Most people picture a fork as a falling-out: one developer storming off to build a rival. Sometimes that is exactly what it is. Far more often, a fork is just what good work looks like when it gets carried forward by the next pair of hands. That is the whole story of Editloft, and honestly it is a better argument for open source than anything I could invent.
What Edit Flow taught WordPress about shipping on deadline
If you have ever run a newsroom, or any team that publishes on a schedule, you already know the problem Edit Flow solved. WordPress out of the box gives you a short list of post states: draft, pending review, scheduled, published. That is fine for a personal blog. It starts to buckle the moment more than one person touches a story.
Edit Flow, first released back in 2009, gave editorial teams the vocabulary they were missing. Custom post statuses, so a story could carry a real status like “Pitch” or “Needs review” instead of sitting in one undifferentiated “draft” pile. An editorial calendar, so you could see the week laid out in front of you. A story budget view, so an editor could tell at a glance what was landing and what was slipping. Editorial comments, so the note “cut the third paragraph” lived on the story instead of buried in somebody’s email.
Think about the ticket rail in a busy restaurant kitchen. Orders come in, get clipped to the rail, and slide along from “ordered” to “on the pass” to “away.” Nobody has to walk over and interrupt the chef to ask where the halibut is. The rail already says. Custom statuses do the same job for a story: they put the state of the work somewhere everyone can see it, so the question “where is this piece” has an answer on the screen instead of in a meeting.

That is a teaching move that has aged perfectly. The idea was right in 2009, and it is still right today.
Why good code still ages
So if the ideas were right, why rewrite any of the code that carried them?
Because WordPress changed underneath all of us. Edit Flow was built for a version of WordPress that ran on the classic editor, years before the block editor arrived and before Full Site Editing (FSE) existed. Fifteen years of decisions are baked into its architecture, and every one of them made sense at the moment it was made. The ground just kept shifting after they were made. Code written for a classic-editor world has to work harder and harder to keep pace with a block-editor one, and eventually the effort of patching around that gap costs more than rebuilding the machinery would.
I want to be careful here, because it would be cheap and easy to make this sound like the old plugin was bad. It was good enough that it is still installed and running on real sites fifteen years later, which is more than most software of any era can claim. Aging architecture comes with every platform shift; it is the tax charged on everything built before the ground moved. A beautiful house wired in 1965 is still a beautiful house. It just needs more outlets now, and nobody blames the electrician who did clean work by the rules of 1965.
That thought is the one I kept circling while I worked, and it is the line I ended up putting on the download page: keep the editorial discipline, rewrite the underlying machinery for modern WordPress. The idea is not to reinvent how editorial teams think. They already had it right.
What the license actually lets you do
This is where open source stops being an abstraction and turns into something you can point at.
Edit Flow is released under the GPL, the GNU General Public License, version 2 or later. That license is a working legal document with real teeth, and one of the specific things it grants is the right to fork: to take the whole codebase and release a changed version of it, so long as you keep the same license and the original authors’ attribution intact. That is why Editloft’s header still reads the way it does. I did not have to ask anyone’s permission, because the license already gave it, in writing, back in 2009, to every developer who would ever come along, including me.
A fork keeps the license and the credit intact, and it keeps the door open for the next person to do to my code exactly what I did to Edit Flow’s. That door matters to me. Editloft is GPL too. If I vanish, or lose interest, or simply get something wrong, the code is sitting right there for whoever needs it next.

And you do not have to take my word for any of this, which is the part I care about most. The code is public today. You can read every module before you decide to trust a single line of it. That is a standard I would want from anyone asking me to run their plugin on a site that publishes for a living, and it is the same standard I try to hold on the newsroom and publisher builds I take on. It is the reason I released Editloft in the open instead of keeping it a private tool.
What is in Editloft today, and what is not yet
Let me be plain about what you get if you download it today, because building in the open means being honest about the edges too.
Editloft ships with the modules that carry the daily work: custom-status (the heart of the whole thing), editorial-comments, an editorial calendar, editorial-metadata, notifications, a dashboard, an audit trail, and a settings screen. It needs WordPress 6.4 or newer and PHP 7.4 or newer. The version number, if you are the sort who checks, is 0.6159.1304.
The honest edge is this: there is no story budget module yet. Edit Flow had one, it was genuinely useful, and it is on my list. I would rather ship the modules I have finished and rebuilt properly than bundle a half-working budget view to make the feature list look longer. The rest are coming the way everything here comes, one module at a time, in the open, where you can watch each one arrive.
Read the code before you trust it
If you run a newsroom, or a membership site, or anything that puts words in front of readers on a schedule, the takeaway that outlasts my plugin is a simple one. Before you let a piece of software near the thing that pays your bills, you should be able to read it. Open source is the arrangement that makes that possible, and a fork is that arrangement doing exactly what it was built to do: somebody made something good and licensed it so it could outlive their own attention. Someone else picked it up.
I have been building for the web since 1996 and working in WordPress since 2007, and most of the work I am proudest of has followed that same shape. Give the thing away, license it so it can be continued, and trust that useful tools find the people who need them. That is the whole argument of a talk I am giving at WordCamp US this year, “Make a Living Giving It Away.” Editloft is one more piece of evidence for it, the same way the free typography-first theme I released a couple of weeks back was.
You can read every line of Editloft on GitHub right now, and you can install it from the download page whenever you like. If you run it and something breaks, or you want a module that is not there yet, tell me. Better yet, fork it. The license already said you could.

Leave a Reply