Skip to main content

About WebDev Tools

From local script to (yes, the 10,000th) tool collection: A chronicle of chance

RFC 4648 Base64 RFC 8259 JSON RFC 4122/9562 UUID RFC 7519 JWT ISO/IEC 18004 QR NIST SP 800-63B WCAG A11y Client-Side Only

Yes, I know. The 10,000th tool collection on the internet. Who needs it? But I can reassure you: this project was never planned. It is an accident, a product of procrastination, and a lesson in dealing with artificial intelligence.

It all started innocently enough on my desktop.

In the beginning was the script.

Like many developers, I had stored a few of my own tools on my localhost. Small scripts for everyday annoyances – an Em/Px conversion here, a little helper there. Things I was too lazy to keep searching for and opening on the same websites. I'm on absolute war footing with bookmarks.

These little helpers did their job. But then I added two more. And then it happened: my web developer instinct kicked in.

Instinctively, I started linking them together. I needed a menu. And a little styling. And everything else that comes to mind when you want to successfully distract yourself from your actual work. So a simple collection of scripts turned into a full-fledged project. I just had to “pimp” it until I had a real little website with all the bells and whistles.

“AI, take over!” – A crazy idea?

At some point, it occurred to me: these are just simple scripts. Why not let AI do it? As a loyal user of VS Code, I set up the project directly with Claude Sonnet 4.5 (in GitHub CoPilot).

I was surprised because the result was an amazingly good, modularly expandable web application.

Of course, it wasn't that easy. You have to constantly keep the AI from overdoing it. My most important command quickly became: "No, we don't need a package manager! And now stop trying to suggest another framework to me!"

In the end, however, a usable basic framework did indeed emerge.

The pitfalls of “vibe coding” with AI

The project picked up speed and I quickly learned a few hard lessons about working with my new digital colleagues.

The framework question: AIs prefer to work with Tailwind. They did so here as well. After a few manual adjustments, during which my patience was wearing thin, I finally snapped. I quickly switched to Bootstrap to bring the collection to a swift and pragmatic conclusion. Sometimes "done" is simply better than 'perfect' (or "Tailwind").

2. Without Git? No way! Out of pure habit, I created a Git repository right away. Luckily! I quickly realized that what I was doing—this haphazard "vibe coding" with AI—was a huge waste of time without Git.

3. The pitfalls of AI logic: The biggest problem is that AIs like to make life easy for themselves, but in the wrong way.

  • They speculate: Instead of analyzing what you actually want to do, they often just guess wildly. You have to stop this speculation very quickly and give them precise instructions for each step, otherwise it ends in chaos.
  • They love their own scripts. They tend to suggest their own scripts or solutions, which often lead to disastrous results. In quite a few cases, this would have required a complete restart of the project, had it not been for a courageous “git reset --hard.”

4. AI ping-pong during code reviews I also relied on AIs for quality assurance, but with a system: First, I had GPT-5 Codex perform the code reviews and then sought the opinion of Claude Sonnet 4.5. An AI review for the AI review, so to speak. It's pretty meta, but extremely useful for cross-checking different "ways of thinking."

Bonus round: AI as a translator?

Once the functionality was in place, I thought about translations. First, I tried Claude Sonnet 4.5. According to its own statement, the AI has native-level proficiency in English and German and delivers 98% accuracy in Spanish, French, Italian, and Portuguese.

Things got interesting when I asked about Hindi, Chinese, or Japanese. Here, the AI admitted that it needs external help, such as DeepL. More importantly, it pointed out on its own that it's not just a matter of crude translation, but that cultural idiosyncrasies and forms of politeness must also be taken into account.

A refreshing degree of self-reflection. However, Claude was too cerebral for the actual batch translation of the static, hard-coded part of the Romance languages. I had GPT-5 Codex do it instead. The same applies here: the right tool for the right job!

From the intranet to the wild web

Once the tool collection had grown to a certain size (and even spoke several languages), it was only available on our company network for quite some time and served us well.

At some point, I thought to myself: Why not? So I tidied it up and made it public.

And because the whole thing came about as an "accident" anyway, the code is completely open. If you want to tinker yourself or find a bug: You can find the Git repo here: https://github.com/RamonKaes/WebDev-Tools.

Yes, sorry. Now it's here. The 10,000th tool collection. But hey, at least it has a story behind it! :D

Enjoy!

Ramon

Ramon Kaes Logo