Two weeks ago I ended our newsletter in a way that felt slightly uncomfortable: instead of listing what had shipped, it named two things that were missing from our own components. Four lifecycle callbacks that Window did not have, and an ActionBar demo that ListViewTable should have had the day Mantine 9.6 landed.
Both are now done, and the honest version of the story is that writing them down is what did it. A gap sitting in a public newsletter is much harder to keep postponing than a gap sitting in your own head.
The Window one is my favourite because the fix is unglamorous and the reasoning is not. The component already had onPositionChange and onSizeChange but those fire on every frame of a gesture. So anything you want to do exactly once (save a layout, pause an expensive child, record a single undo entry) meant debouncing by hand and guessing when the user had actually stopped dragging. Four new callbacks, onDragStart / onDragEnd / onResizeStart / onResizeEnd, and the guessing goes away. Try it: https://gfazioli.github.io/manti...
A draggable window had a callback for "the position changed". Sounds like enough. It isn't, and it took someone else's release notes to make me see why.
Mantine 9.6.0 came out this morning, and by the afternoon the whole Mantine Extensions family was on it all 26 components plus the Nextra and Fumadocs starter templates.
The reason I chase these on release day isn't tidiness. It's that the gap between "upstream shipped" and "the extension you depend on tracks it" is where trust in a small library actually lives. Peer ranges here stay at >=9.0.0, so none of this forces anything on you bump when you want.
mantine-json-tree 3.3.0 is out, and the story behind it is better than the changelog.
Someone opened a feature request asking for in-place editing of JSON values. Before writing a line of it, I audited the component to see what an editor would have to stand on. I never got to the feature. The audit found three bugs first, and one of them was serious enough that shipping the feature on top would have been building on sand.
Both of our Mantine documentation starters are now on Next.js 16.3 the Nextra one and the Fumadocs one, shipped together today. Dependency-only patches, nothing to migrate.
Mantine 9.5.0 came out this morning. By the afternoon every Mantine Extensions component was published on it, along with both starter templates and the docs hub.
I wish I could tell you that was skill. It's mostly one boring shell script and one rule I've learned the hard way.
The script does the whole dance per repo: branch, bump within semver, format, typecheck, lint, test, build the package, regenerate the API docs, build the docs site, test again, commit, PR, merge, publish, deploy. I run it in parallel batches and read the reports. The first repo is always done by hand though a pilot because the point of a pilot is to discover the surprise on one repo instead of on all of them.