Martin Grüner | Software maker

@grunersoftware.bsky.social

Independent software maker building practical desktop tools for developers and app creators.

App-store screenshot experiments got much easier when I stopped editing the “current” design in place. In Screen Studio Kit, each campaign keeps its own copy and layout while sharing project assets. If it doesn’t work, I can scrap it without touching the version I started with.

I nearly called Diff Anything’s new mode a syntax-aware diff, then realized how much that phrase implies. It actually uses conservative token alignment by language family. It follows changes through formatting and reflow, but doesn’t pretend to build an AST. Exact text and Line Diff stay available.

Bild

A ZIP file can change at the byte level without any extracted file changing. Recompression is enough. Diff Anything ignores that container-level noise and compares extracted entries by normalized path and content. The result points to what actually changed, appeared or disappeared.

Green tests prove behavior, not maintainability. When I review AI-written code, I look for: - boolean flags creating hidden modes - duplicated rules - comments defending workarounds - abstractions nobody requested A correct patch today can still make the next change expensive.

Spreadsheet files are containers, so a raw file diff mostly exposes packaging noise. A useful comparison works at the sheet and cell level: address, stored value, and whether it was added, removed, or changed. That is also how I make cross-format comparisons such as XLSX against ODS useful.

Diff Anything showing a side-by-side comparison of an XLSX spreadsheet and an ODS spreadsheet. Changed, added, and removed cell values are highlighted in a table, with nine differences listed in the right sidebar.

DevDock 1.3 is live on the Microsoft Store. Git work is now safer inside each project: protect local changes while switching branches, see ahead/behind state, review push destinations, handle pull-before-push, and find commands faster. martingruner.com/blog/devdock...

DevDock 1.3: safer Git from branch switch to push

Protect local changes while switching branches, review remote state and push destinations, handle pull-before-push recovery, and find project commands faster.

martingruner.com

Building in an established category is not necessarily a disadvantage. People already understand the problem. The real question is whether an awkward workflow is still underserved. With Diff Anything, I’m focusing on local spreadsheet comparison across formats, without converting both sides first.

One lesson from building desktop software: never hide the intermediate state. For a compare, sync, export, or migration workflow, show the plan before it runs. Let people cancel it. Make failure recoverable. Automation earns trust when the user can still see and control what it is doing.

Screen Studio Kit 1.3 makes app-store screenshot production faster: compare campaign treatments, start from 20 responsive templates, edit copy in place, import custom fonts, and add multi-device compositions, widgets, and stickers. Full release: martingruner.com/blog/screen-...

Screen Studio Kit 1.3: make the whole screenshot campaign editable

Build and compare campaign variants, start faster with 20 templates, edit text in place, control focal crops, import fonts, and carry a considered treatment from canvas to export—all locally.

martingruner.com

TestDock has landed on the App Store 🎉 It gives mobile developers an on-device workspace for saved deep links, repeatable test scenarios, share inputs, and push testing—without a TestDock account or cloud workspace. See the iOS and Android downloads: martingruner.com/apps/testdock

TestDock — Mobile app testing tool for iOS and Android

A local-first iOS and Android workspace for deep links, share inputs, push delivery, app profiles, and repeatable mobile test flows.

martingruner.com

One store screenshot looks like a small design task. Five languages can turn the release into 130 files. Calculate the repeated hours and labor cost, then see how Screen Studio Kit turns the matrix into one reusable project. martingruner.com/blog/app-sto...

The true cost of creating app-store screenshots for five languages

The expensive part is not designing one screenshot. It is adapting, checking, exporting, and rebuilding the full store matrix every time the app changes.

martingruner.com

Vibe coding can get you to a working app fast—and leave you with an unfamiliar folder and no idea what changed. Here are 10 ways DevDock helps you run, inspect, and protect AI-built projects without pretending it is an AI assistant. martingruner.com/blog/devdock...

DevDock for vibe coders: 10 ways to stay in control

You can let AI write the code without letting the project become a black box. Here are ten practical ways DevDock helps vibe coders run, inspect, and protect local projects.

martingruner.com

Meet Gerry, my new ChatGPT pet — and, quite literally, my pet. Gerry was my dog. He is no longer here, but now a little version sits beside me while I work. He even reacts when I move the mouse or hover over him. I’m genuinely happy to have him helping with my work again. 🐾

Screenshot of the Codex desktop app with a small animated pug based on Gerry standing beside the task window and looking upward.Screenshot of the Codex desktop app with the small animated Gerry pug sitting beside the task window with his eyes closed and a content expression.