Retraceur 4.0.0 beta 1: an open crossroads instead of a centralized marketplace

Publié le

dans

.
Une halle publique, à l'image de l'annuaire public des ressources externes de Retraceur

When I created Retraceur, my goal was never to rebuild WordPress® under a different name. I simply wanted to continue publishing on the Web without relying on infrastructure ultimately controlled by a single person or organization.

That idea has guided every decision I’ve made since the beginning. Over the years, I’ve often described Retraceur as a crossroads. A crossroads doesn’t own the roads that meet there. It simply allows people to choose their own direction.

To me, that’s what an open Web should look like.

This first beta of Retraceur 4.0.0 is another step toward that vision. Behind two new APIs lies a much broader question: how can developers and users meet without forcing them through a centralized marketplace?

The real challenge isn’t technical

Over the past few months, several initiatives have emerged in response to the governance issues surrounding WordPress®.

FAIR is one of them. I find its approach particularly compelling, and I believe it represents an important step forward for the WordPress® community. It demonstrates that a federated protocol can enable independent actors to provide services for plugin discovery, distribution, and trust.

While working on Retraceur, however, I found myself asking a different question.

Developers already publish their projects on software forges. Why ask them to publish their metadata on dedicated infrastructure if that information can be discovered directly from the source?

In other words, why build another marketplace when you can simply make room for a crossroads?

That question naturally led Retraceur down a different path: the « Discovery API ».

Capture d'écran de la page de découverte des blocs
Page d’administration de la découverte des blocs (la même existe pour les extensions)

The « Discovery API »

Retraceur is developed on GitHub, like a large part of today’s free software. Starting with GitHub therefore felt both natural and pragmatic. That said, GitHub is not an end in itself. My ambition is to build a discovery API that is independent of any particular provider.

Questions of digital sovereignty are becoming increasingly important. I share those concerns, and I want Retraceur to eventually discover plugins published on other software forges — such as Codeberg — or on any platform capable of exposing the same metadata.

To achieve this, the « Discovery API » does not rely on a centralized directory. Instead, it uses information that developers already choose to publish alongside their projects.

In practice, making a plugin or block discoverable currently consists of following a few simple conventions:

  • add Retraceur-specific headers to the plugin or block’s main PHP file (Plugin Type, Requires Retraceur, Up to Retraceur, and GitHub Plugin URI);
  • identify the GitHub repository using a topic (retraceur-plugin or retraceur-block);
  • add a retraceur/manifest.json file containing Retraceur-specific metadata;
  • publish distributable releases using GitHub Releases, ensuring that each release includes a ZIP asset named after the resource’s slug.

PS : If you’re a plugin developer, a working implementation is often more useful than a written specification. Feel free to take a look at my Signet repository for a complete example.

The GitHub repository therefore remains the project’s single source of truth. Retraceur neither copies its metadata nor mirrors its release archives. Instead, it discovers everything directly from the source and makes it available to its users.

This approach also allows developers to retain complete control over their projects. The versions they publish, the metadata they provide, and the assets they distribute all remain entirely under their responsibility.

Shared responsibility and direct relationships

This architecture is built on a conviction that matters deeply to me: a crossroads is healthier when it concentrates neither responsibility nor power.

Within Retraceur:

  • developers remain responsible for their plugins;
  • the software forge (currently GitHub) remains responsible for hosting repositories;
  • Retraceur only facilitates their discovery, installation, and updates;
  • users remain free to decide which plugins they choose to trust.

No single participant controls the whole system.

I believe this separation of responsibilities creates a more resilient model than one in which a single platform hosts, indexes, distributes, governs, and arbitrates everything. It is also more demanding, because it encourages every participant to fully embrace their role in serving the needs of others.

Following the same principle of separating responsibilities, Retraceur is not meant to become an intermediary. Feature requests, bug reports, questions, and security issues should continue to be handled directly through each project’s GitHub repository. Retraceur helps make those connections possible, but it never stands in their way.

I believe that shared responsibility and direct relationships are far more faithful to the spirit of free software than a model where every interaction flows through a centralized platform.

Capture d'écran du centre de mises à niveau de Retraceur
Le centre des mises à niveau : un lieu unique pour mettre à jour votre site Web.

Managing all Retraceur updates

Discovering a plugin or block would be of little value if it couldn’t be kept up to date afterwards. That’s why Retraceur 4.0.0 also introduces a dedicated Update API.

Once again, no central repository is involved. New releases are fetched directly from their authors’ GitHub repositories.

Retraceur doesn’t redistribute software. It simply streamlines the update process for resources that their authors continue to publish and maintain themselves.

This effort to simplify discovery naturally extends to the administration experience. Until now, Retraceur largely inherited WordPress®’s historical administrative structure. This major evolution gave me the opportunity to apply to the user interface a principle that already exists within Retraceur’s architecture: one screen, one responsibility.

As illustrated in the screenshot above, the purpose of each administration screen is now clearly defined:

  • all available updates are now gathered in a single Retraceur Updates screen, accessible directly from its dedicated Dashboard menu;
  • the Plugins and Blocks screens focus exclusively on managing those resources throughout their lifecycle: installation, activation, deactivation, and removal;
  • discovering new plugins and blocks is now handled through dedicated submenu pages under those two screens.

Get Involved in Testing Retraceur 4.0.0

Now that I’ve introduced the major changes coming with this new release, I’d like to ask for your help.

The purpose of this first beta is to identify the remaining bugs, regressions, and final refinements needed before Retraceur 4.0.0 is released as a stable version.

There are several ways to contribute to this testing phase, depending on your interests and your skills. All of them are equally valuable in my eyes.

Test Retraceur

If you’d like to help with testing, I strongly recommend installing this beta in a development environment — never on a production website.

Then… simply use it.

Exercise your usual workflows, but pay particular attention to:

  • the new organization of the Plugins, Blocks, and Retraceur Updates administration screens;
  • discovering, installing, and updating plugins and blocks;
  • editing posts and pages, especially if you use the Icons and Table of Contents blocks;
  • customizing your site, particularly if you’re using the new Breadcrumb block;
  • interactions with your plugins, your theme, and your development environment in general.

Develop plugins or blocks

If you’re a plugin or block developer, I’d be especially interested in your feedback on this new discovery mechanism. I hope you’ll find it simple enough to make your projects discoverable without relying on a centralized marketplace.

Over the next few days, I’ll also update the Retraceur documentation website with a detailed explanation of the « Discovery API », the self-registration process, and the conventions required to make a plugin or block discoverable.

Improve the Translations

Writing code isn’t the only way to contribute. The French translation of Retraceur is maintained in its own dedicated Git repository:

GitHub – retraceur/fr-fr: Traduction française du logiciel Retraceur · GitHub

Traduction française du logiciel Retraceur. Contribute to retraceur/fr-fr development by creating an account on GitHub.

Whether it’s improving a translation, correcting a typo, refining the wording, or simply reporting an inconsistency, every contribution helps make Retraceur more accessible and more pleasant to use.

Report Issues or Share Feedback

Finally, if something doesn’t look quite right, please report an issue.

A bug, an unexpected behavior, confusing wording, or even a simple doubt is worth reporting. Feedback is just as valuable as code because it often leads to improvements that go well beyond the original issue.

If this beta testing period doesn’t reveal any major issues, the final release of Retraceur 4.0.0 is scheduled for July 31.

Thank you to everyone who tests, reports issues, develops, translates, or simply follows the project. Every contribution—no matter how small or in what form—helps move Retraceur forward.

As always, your feedback will help Retraceur continue along its path.

A crossroads isn’t meant to own the roads that meet there. It simply gives everyone the freedom to choose their own. That’s the idea behind Retraceur 4.0.

Mathieu

Featured photo credits : Pascal Bernardon on Unsplash

Note: The WordPress® trademark is the intellectual property of the WordPress Foundation. The use of the WordPress® name in this article is for identification purposes only and does not imply endorsement by the WordPress Foundation.