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.

September 19, 2026 · 2 min · Knoden

When 'Seen' Forgets What It Saw

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.

September 19, 2026 · 3 min · Knoden

A Form Whose Only Job Is to Become an Event

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.

September 19, 2026 · 3 min · Knoden

A Quote Character in a Project Name

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.

September 19, 2026 · 3 min · Knoden

Not Everything That Looks Alike Should Be Shared

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.

September 19, 2026 · 3 min · Knoden

Mail Wasn't Actually Extracted Yet

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.

September 19, 2026 · 3 min · Knoden

The Output Area's First Visualization Also Fixed a Dead Command

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.

August 6, 2026 · 2 min · Knoden

RSS Closes Out the Extraction Series

The simplest of the three comm extractions, and the one that finally emptied PIM core’s generated-entity pipeline.

August 4, 2026 · 2 min · Knoden

Where Core Ends and a Pimi App Begins

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.

August 4, 2026 · 2 min · Knoden

Extracting Mail Exposed a Real Architectural Wrinkle

Why pulling Mail out of PIM core needed a trick no earlier app extraction did.

August 4, 2026 · 2 min · Knoden

IM Was the First App to Leave comm

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.

August 4, 2026 · 2 min · Knoden

Notes Set the Pattern for Everything After It

The simplest possible extraction, chosen first on purpose — and the point where the plan changed from finishing one module to moving everything.

August 4, 2026 · 2 min · Knoden

Switching to a Better Local Model

Why PIM’s default AI model is moving from gemma4 to mistral-nemo.

August 2, 2026 · 1 min · Knoden