I made these app marketing images in Screen Studio Kit 1.4, using its 3D frames and new background controls. The text, colours and device angles stay editable for the next update. Full gallery and editor views: martingruner.com/blog/screen-...
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.
Take a wild guess why I didn't go with the AI generated icon for my testdock app
Adding branch switching to DevDock looked like a small feature. Then I had to handle staged, unstaged and untracked files without surprising the user. The Git command was easy. The stop conditions took most of the work.
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.
How I detect moved files in a folder diff: 1. Pair files still at the same path. 2. Collect unmatched additions and deletions. 3. Group by file size. 4. Hash only plausible same-size pairs. 5. Matching hashes become moves. That avoids hashing the whole tree. #DevTools
Diff Anything 1.5 adds Smart Diff across 117 code languages—without removing Line Diff. Both views keep normal syntax highlighting, exact text, editing, and apply controls. Large comparisons are faster and clearer. martingruner.com/blog/diff-an...
Diff Anything 1.5: smarter code diffs across 117 languages
Switch between Smart Diff and conventional Line Diff, keep normal syntax highlighting and exact editing, and review large comparisons with faster, clearer feedback.
martingruner.com
Store screenshots are easier to maintain when the source capture and its placement are separate. After an app UI change, replace the shared asset once; each page can keep its own crop, frame, and composition instead of being rebuilt by hand.
A saved development command is more than a shell string. Its working directory, execution target, recent output, and place in the project are part of its meaning. The command may be `npm run dev`, but the surrounding context is what makes it safely reusable.
I turned Apple's current App Store screenshot requirements into one sourced table covering iPhone, iPad, Mac, Apple TV, Vision Pro, and Watch. JSON and CSV downloads are included for release scripts and checklists. martingruner.com/app-store-sc...
App Store screenshot sizes and validation — Screen Studio Kit
Use a sourced table of current App Store screenshot sizes for every Apple device family, download the data as JSON or CSV, and validate iPhone, iPad, and Mac files locally.
martingruner.com
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.
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.
50 tiny Python projects show everyday tasks you can automate or build yourself. - Each app fits in just 10 lines. - Video walkthroughs explain every project. - Covers AI, visuals, and simple utilities.
When a tool says it supports PDF or spreadsheets, ask what it actually compares: bytes, structure, rendered output, or user-visible values. Those models answer different questions. The same files can be equal in one and different in another.
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.
Diff Anything 1.4 expands archive comparison. ZIPX, 7z, RAR, TAR, encrypted archives, and supported multipart sets are compared by extracted content instead of packaging noise. Three-way merge also has a redesigned workspace. martingruner.com/blog/diff-an...
Diff Anything 1.4: compare encrypted and multipart archives
Compare ZIP/ZIP64/ZIPX, 7z, RAR, TAR families, and compressed streams locally, with passwords, multipart support, streaming, explicit limits, and a redesigned three-way merge workspace.
martingruner.com
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
Diff Anything 1.3 is out. Compare stored spreadsheet values across formats—XLSX ↔ ODS, Numbers ↔ Excel, CSV ↔ workbook—without converting files first. Also: rebuilt folder diff and clearer PDF visual/text review. Everything stays local. martingruner.com/blog/diff-an...
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
Diff Anything 1.2: Free previews for every desktop comparison engine, more accurate structured and visual diffs, safer large-input handling, and one model across desktop, CLI, and batch. Private and local—no account or telemetry. martingruner.com/blog/diff-an...
Diff Anything 1.2: sharper comparisons, safer previews, one engine everywhere
Diff Anything 1.2 opens every desktop comparison engine to Free previews, improves semantic and visual accuracy, and keeps desktop, CLI, and batch behavior aligned.
martingruner.com
Screen Studio Kit 1.2 is live. Device frames can now turn and tilt in 3D, with the same perspective carried into native full-resolution export. See the update and screenshots: martingruner.com/blog/screen-...
Build store screenshots once, then adapt them across devices and languages. Screen Studio Kit is my desktop editor for composing, localizing, validating and exporting store-ready screenshots. Free to try; Pro is a one-time purchase. martingruner.com/projects/scr...
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. 🐾
Meet Diff Anything: a private, local-first desktop app for comparing text, JSON, folders, images, and more on macOS and Windows. Start free. Download from the Mac App Store or Microsoft Store: martingruner.com/projects/dif...
Meet DevDock: a local-first workspace for software projects, saved commands, Docker workflows, database operations, project health, and security checks. Less time rebuilding context. More time shipping. martingruner.com/projects/dev...