Trying to Find Out If Anyone's Using PIM
We wanted a simple answer to a simple question — is anyone actually downloading and running PIM? — and found that neither GitLab nor Ollama Cloud can tell us.
We wanted a simple answer to a simple question — is anyone actually downloading and running PIM? — and found that neither GitLab nor Ollama Cloud can tell us.
RSS’s beat-the-market review flagged a real resurfacing risk in how PIM tracks which articles you’ve already seen. Here’s the actual fix, and the two other flagged gaps that turned out not to be gaps at all.
Why PIM’s form contract lives in the shared events module instead of a JavaFX widget library, and how a sealed interface makes forgetting to teach the GUI a new field type a compile error instead of a runtime gap.
The same XSS-shaped bug showed up three times in one week — once pre-existing, once freshly reintroduced while building a new feature, and once finally caught before it shipped at all.
Asked to fully share Mail and IM’s thread-handling code, we found the two were genuinely alike in some places and genuinely different in others — and only unified the parts that were actually the same.
The August extraction moved Mail’s code out of PIM core. A second pass, a few weeks later, found most of what moved didn’t actually belong there.
Building Calendar’s day/month view settled what the output area is for, chose HTML over native widgets on purpose, and along the way fixed a command that had never actually worked.
The simplest of the three comm extractions, and the one that finally emptied PIM core’s generated-entity pipeline.
The rule for what stays in PIM core, what moves into a pimi module, and how to leave room for a second variant of the same app.
Why pulling Mail out of PIM core needed a trick no earlier app extraction did.
Extracting IM turned out lighter than expected — no third-party dependency, no generated persistence, and one bug from the previous extraction along for the ride.
The simplest possible extraction, chosen first on purpose — and the point where the plan changed from finishing one module to moving everything.
Why PIM’s default AI model is moving from gemma4 to mistral-nemo.