PiqoPiqo: Vibecoded JPEG viewer / metadata editor
Recently, I have been busy with making PiqoPiqo, a replacement for Adobe Bridge, which I used for triaging my JPEG photos (I used only a very small part of the features so it was not that hard to make a replacement that focused only on what I needed). Essentially, it is a lazy photogrid, where I can easily go fullscreen with a photo + enter metadata (title and keywords).
With Adobe Bridge, there are a few annoying bugs that have never been solved in the few years I have been using it on macOS (although mostly quibbles in the grand scheme of things), so I made PiqoPiqo (the name is a combination of Python, picture, Qt and pekopeko) as a replacement. I also integrated some tools I used around Adobe Bridge, like a one-click copy from SD Card (which helps me organize photo sessions), georeferencing (from a GPX file) and upload to Flickr. I used to launch them from VS Code projects, now they are integrated in the GUI with the photogrid.
For the coding, I waffled around: At first, I wanted to make it in Rust (I was learning), then Rust + Swift (for macOS). But I procrastinated and did not make much progress. Finally, I settled on Python + Qt (PySide6). I had already used it in the past (as part of making plugins for QGIS), but, this time, I did not do a lot of coding myself: Instead, I used a bunch of agents for coding (the code is 99% AI, except the parts that I had developed for working with Adobe Bridge, which I had the AI integrate by reading the existing projects). It allowed me to test what was possible with them. I also switched the AI around, starting with Gemini 3 on the web (copy / pasting), then GitHub Copilot as an agent, then I brought out the big guns with Claude for a short while. Now I work with OpenAI Codex only. I am a bit lazy and it got me something that worked so that’s good. The downside is I learned very little (except maybe some technicalities of exiftool parameters…). I also developed (aka vibecoded) a tool to help with simple organization of the prompts (prompt-warrior), since it was becoming a mess.
All in all, it works fine: I am using the tool at the moment and dropped Adobe Bridge. Even using a dynamic language like Python, it has good performance. I also cut down on features to just the ones I needed and made them exactly how I wanted them to work. My tools (beyond just photo visualization) are now integrated with the GUI so it feels like a better workflow than I had with Bridge. The AI code is serviceable I guess but quite convoluted, from what I looked at: It is a bit of a mess and I think I will have to get the AI to work on some refactor. AI all the way down!

