AWS Builder Center
The Ásbrú and Kiro.dev Case Study

The Ásbrú and Kiro.dev Case Study

This is the story of reviving a beloved but outdated Perl application using a unique, specification-driven AI IDE. A non-programmer details the successful three-day modernization journey, highlighting how a structured AI approach triumphed over common "vibe-coding" pitfalls.

Systems Architect

Introduction: When AI is an Architect's Tool, Not a Roulette Wheel.

For the first time, I can share a real case where AI genuinely helped. We've all heard countless jokes about how using AI assistants in real development feels like spinning a roulette wheel in a casino: we keep trying, but the wins remain purely hypothetical.
I asked myself: What can the AI IDE  Kiro  offer me? It's significantly different from other solutions on the market, such as GitHub Copilot, VS Code extensions, Gemini Code Assist, and even the aforementioned Cursor. Despite all these IDEs using the same underlying models, Kiro has one key distinction. Unlike the now-joked-about "vibe-coding," Kiro employs what's known as specification-driven programming. This can be incredibly helpful for pet projects, especially when you're acting as a system architect and have a clear vision of what you're doing.


Background: A Love for Linux and the Irreplaceable Ásbrú

But today's case is a bit different. I'm a long-time Linux user. My journey began when I couldn't accept Windows XP, and since then, I've used various Linux distributions as my primary tool. With significant experience in system administration, one of my all-time favorite applications became Ásbrú Connection Manager. Essentially, it's a frontend application that allows you to use various connection tools like FreeRDP, VNC, SSH, and so on. It has excellent integration with KeePass for password storage, and configuration metadata is conveniently stored in YAML files. All in all, it's incredibly convenient. Unfortunately, the project has been dormant since around 2022, with the last known version being 6.4.0.


The Problem: A New Pop!_OS and Outdated Dependencies

I'm a long-time open-source user, and all my home hardware consists of System76 laptops, which use Pop!_OS as the official operating system. This system uses the COSMIC desktop environment and, despite its Ubuntu/Debian roots, is quite different due to its focus on developer convenience. I recently upgraded to Pop!_OS 24.04, which is still in beta, and my beloved Ásbrú Connection Manager either wouldn't launch at all or would run with errors. Even with the help of other AI tools, I managed to get it running, but half of its functionality was broken. What was the cause? Dependencies. Ásbrú is written in Perl. Let's be honest: despite my deep experience with Linux and teaching an "Operating Systems" course, I know nothing about Perl and am by no means a programmer.

The Solution: Fork and Modernize with Kiro.

A simple idea emerged: why not fork the open-source project and modernize it with an AI IDE?
When I first tried this with Cursor, the effort was fruitless - it just broke the existing solution even more. But with Kiro, the situation was drastically different. The process Kiro offers - building a specification, engaging in a detailed dialogue, and forming requirements - allowed me to break down the modification process into sub-tasks.

The Modernization Process and Its Challenges: Working with Limitations and Deep Debugging.

The first limitation I was aware of from the start was that Kiro has a limited number of requests. Strangely, this limitation turned out to be a lifesaver. I started the project using my Builder ID, and as a Community Leader, I got early access to Kiro. Later, after being on a waiting list, I received a second activation code to my alternate email. This allowed me to split the work: I completed the central part with the first activation, and when the requests ran out, the second activation was dedicated to serious debugging. And it was severe. After updating all the libraries, we encountered a straightforward issue: the application launched, but connections wouldn't start. What could Kiro do? It helped me write tests to intercept VNC and RDP connections, which enabled fine-grained debugging. During this process, I also fixed bugs that existed in the original project. Improving UX: Interface and Dependencies. Thanks to the debugging process, I was able to add the installation of all necessary dependencies to the package. I followed the logic of a paid alternative, RoyalTS for Windows and macOS: it’s logical that when I install a Connection Manager, it brings all the required packages with it. The second problem I tackled was the theme dependency. Pop!_OS, like Ubuntu, uses dark themes, and after switching to the new GTK, the dark theme looked frankly ugly. I also noticed the icons: Ásbrú used old PNG icons that scaled poorly on my 3K monitor. The display scaled natively, but the icons didn't. So, I started by modernizing the entire interface: • Migrating to GTK4. • Replacing icons with the vector-based, open-source Adwaita icon theme. • Systematically updating the interface for proper scaling on high-resolution displays.


Results and Future Plans:

What have I achieved so far? Anyone can download compiled .deb packages from the release branch of my forked repository, tested on Ubuntu 24.04 and Pop!_OS 24.04. I also managed to build .rpm packages that work well on openSUSE Tumbleweed. Testing on other distributions remains a challenge for now. The next plan is to build a Snap package. Many might ask, "Why not Flatpak?" I like Snap because the Snap daemon makes it easy to install, but I need to research it further. I've bumped the project version to 7.0.0 because the changes are not just visual but also substantial from a technological standpoint. All security libraries and the virtual terminal have been updated to the latest versions, as detailed in the  README  file.



Impressions of Kiro: Pros, Cons, and Wishes.

Regarding Kiro's drawbacks: don't expect a "magic button" to solve everything for you. However, you can combine existing tools. If you already have a license for, say, Cursor or GitHub Copilot, the approach of "give all the basic work to Kiro and execute task by task" allows you to build the project's skeleton within a single license. It seems there are only about 50 dialogue questions available, but for basic tasks, if you know what you're doing, it should be enough. One thing I disliked: unlike Cursor or Copilot, pressing the "Trust" key to execute commands doesn't work, which gets a bit annoying. On the positive side, unlike Cursor, and despite being built around Visual Studio Code, there are no graphical glitches or interface reloads. Kiro doesn't freeze or perform system-wide searches via an MCP server that endlessly consumes CPU, as often happens on my work macOS laptop. Kiro works like a polished and reliable product. A definite wish for the developers is support for more models. My favorite remains Anthropic's models, but Gemini Pro is very convenient for conversational programming (especially in Ukrainian, as I do). Sometimes, when you're trying to decide what to do next, you need an explanation of what's happening - especially with Perl.

Conclusion:

Overall, the modernization took about three days, working on it in the evenings. But for the first time in a while, it was so engaging - almost like being at work doing something genuinely useful, rather than just dealing with routine tasks and meetings. I'm thrilled. There's nothing more to add. This was an example of how a modern, specification-oriented AI tool, rather than a "guessing" one, can help a non-programmer take an outdated but beloved project and give it a new life.
P.S. While I was writing this article, Kiro released its  pricing model . The prices are constructive, but it's worth noting that this is a professional tool; it won't help you without a qualified understanding of what you're doing. However, unlike its competitors, it truly is a silver bullet for those who know how to use it.
P.P.S. Additional conclusions:
If you need to do AI work with no money, use Amazon Q Developer. If you have a budget or licenses, avoid Cursor - it is very, very unstable and breaks everything in the long run by constantly reloading the context. Stick to VSCode with the Amazon Q or GitHub Copilot plugin.
You can trust Kiro with complex work; don't trust the others with it. Commit and revert commits after each action. I wasted more than half my time fixing everything that Cursor broke because I trusted it too much.
ChatGPT-5 is just awful. It's impossible to validate anything - every new response comes in a new syntax, and its behavior is completely chaotic. It's sure to drive people to suicide; for programming, just don't use it, that's not what it's for.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article