A small row of white outline gears and a wrench, with one red gear in the middle. AI-generated image
Business

What Maintaining 22 Plugins Involves

By Paul Piper 2 min read

JetBrains released 2026.2 and I had 22 compatibility matrices to update. That is 22 plugins times six supported IDE versions times “does this still compile, does it still work, did they deprecate the API I depend on.” I did not plan for this when I built the first one.

The quarterly update cycle

Every JetBrains platform release can break plugin APIs. Sometimes it is a renamed method. Sometimes it is a removed extension point. Sometimes it is a subtle behavior change in the PSI tree that makes your completion engine return wrong results.

For 22 plugins, a platform release means roughly a week of compatibility work. Test, fix, test again, submit to the marketplace, wait for review. Some updates are trivial. Some take a full day per plugin because a core API changed.

I have gotten faster at this. The shared codebase helps - when I fix a compatibility issue in the core framework, all 22 plugins benefit. But the testing still has to happen per plugin, per IDE version.

The marketplace queue

You submit a plugin update and it goes into the JetBrains review queue. Sometimes the review takes two days. Sometimes two weeks. There is no published timeline, no priority lane, no way to escalate. If you have a critical bug fix and the queue is slow, you wait.

I have learned to submit updates before I need them. When a new IDE version hits early access, I start compatibility work immediately. By the time the IDE goes stable, my updates are already in the queue. Usually.

Support

Each plugin gets roughly one email per month. Across 22 plugins that is a steady stream. Most are “does this support X” questions - easy to answer. Some are genuine bug reports that take a day to reproduce and fix. A few are feature requests that turn into the next plugin.

The surprise was how much support quality matters for reviews. A quick, helpful response to a confused user has turned into reviews. I did not expect that.

Context switching

The hardest cost is context switching. Fixing a bug in the Solidity plugin requires a completely different mental model than fixing one in the ABAP plugin. Each language has its own grammar, its own quirks, its own user expectations. Going from Haskell’s type system to Arduino’s preprocessor macros in the same afternoon is genuinely disorienting.

Anyway, 22 plugins. I did not plan for 22. But here we are.