These docs have been generated using AI. Expect inaccuracies until we remove this banner.

Introduction to Troy

Troy is an open-source plugin suite that lets WordPress developers distribute their plugins independently—from their own servers, on their own terms.

If you're a site owner, Troy Client receives updates for plugins your developer hosts. If you're a plugin developer, Troy Server lets you publish updates without relying on any centralized directory.

Why Troy Exists

WordPress is software, not a platform. Yet over the years, the line has blurred. Plugin developers have watched their work get blocked, hidden, or removed from WordPress.org—sometimes without warning, sometimes without recourse. Recent events in the WordPress ecosystem have shown that centralized control over plugin distribution can leave developers vulnerable.

Your code is yours. You wrote it. Your users chose it. No directory should hold that relationship hostage.

Troy was built so you don't have to ask permission to distribute your own software.

The Philosophy

Troy is developed by Sybre Waaijer, creator of The SEO Framework. The same principles that guide his work there apply here:

  • Never release with bugs. Your users' sites are not testing facilities.
  • Respect every user. Whether free or paid, everyone deserves working software.
  • Prevent problems, don't just solve them. Good design eliminates the need for support.
  • Fair and honest. No dark patterns, no vendor lock-in.

Troy isn't about competing with WordPress.org—it's about having an alternative when you need one.

Why MIT Instead of GPLv2

WordPress uses the GPLv2 license, and that's fine for many projects. But GPLv2 is a copyleft license: it requires derivative works to also be GPLv2. This creates a form of license lock-in.

Troy uses the MIT license because:

  • Freedom without strings. Use Troy in any project—commercial, proprietary, or open source.
  • No viral licensing. Your plugins don't inherit license requirements from Troy.
  • Simpler compliance. MIT is short, clear, and widely understood.

We believe true software freedom means freedom to choose—including your license.

How It Works

Troy has two main components:

Troy Client

For site owners who want to receive plugin updates from developers using Troy.

  • Install the plugin, activate it, done.
  • Updates appear in your normal WordPress dashboard—no extra steps.
  • Privacy-first: only essential data is shared, anonymized via rotating identifiers.

Troy Server

For plugin developers who want to host their own update repository.

  • Upload a ZIP file or connect your GitHub repository.
  • Share your Troy Server URL with users.
  • Updates flow through WordPress's native update system—users see them just like any other plugin update.

That's it. No complicated setup, no ongoing maintenance burden. One upload, full control.

What Troy Is Not

Troy is designed as a sideloading system, not a replacement for WordPress infrastructure:

  • Not a replacement for WordPress.org. Troy doesn't replace the WordPress.org update system—it works alongside it for plugins that opt in.
  • Not a blocking tool. Troy doesn't prevent other plugins from communicating with their own servers or WordPress.org.
  • Not a WordPress core updater. Troy handles plugins only. Core updates still come from WordPress.org.
  • Not a drop-in API replacement. Troy uses its own protocol; it's not compatible with WordPress.org's update API format.
  • Not a protest tool. It's practical infrastructure for developers who need independence.

What Troy Does

  • Sideloads plugin updates from developer-hosted Troy Servers.
  • Opt-in only. Plugins must explicitly add a Troy: header to enable Troy updates. Developers choose to participate.
  • Privacy-preserving. Only the repository owner sees information about their Troy plugins. We don't have access to your data—and neither does anyone else.

Getting Started

Ready to try it?

Community

Troy is community-driven and open source. Found a bug? Have a feature request? Want to contribute?


It's your code. Take it back.