Hello there ![]()
This post is about my recent experiment with Google AI studio, which started as a side project during my Thanksgiving holiday and turned into a fascinating and exciting experience.
Unless you have been living under a rock, you can’t ignore the growth of AI in our industry and in our lives. Chat bots are everywhere and are now becoming more and more capable: they are revolutionizing how we work, plan, and even interact.
So I wanted to do some experiments with Google AI Studio and use some of my time off to try some of that vibe coding.
What can AI do for me today?
Here we are in front of the most advanced software tool in history and facing this blank canvas wondering what’s next. What to ask? What can AI do for me?
Then in the spirit of my previous effort to make the Ubuntu Package life cycle easier to understand and lower the bar of entry for new contributors, I thought :
Can AI help me modernize merges.ubuntu.com?
What are Merges in Ubuntu package life cycle
Back in April, when I posted about Visualizing and Exploring Ubuntu Excuses,I shared my view of the Ubuntu package life cycle.
As you probably remember, the first step for most packages on Ubuntu is to be merged from Debian unstable.
Packages attempt to be merged from Debian unstable, and if they fail to do so, they end up on our merges tracker. But if no conflict happens, they move to the “proposed” pocket.
Let’s look at today’s merges.ubuntu.com UI/UX:
This page includes the list of all the packages that fail to merge from Debian because the system can’t merge the new version of the package in Debian with Ubuntu deltas, and these packages require attention.
Additional pages for each component (main, universe, restricted, and multiverse) show the list of packages with outstanding merges, who uploaded them last, and how long they have been waiting for a merge. While functional, that UI could use some improvements.
The first prompt
What will become clear along this investigation is that when working with AI, a good prompt has a dramatic impact on the outcome. The saying “Garbage In Garbage Out” applies here, no doubt.
Here is what I went with for my first attempt with no other default configuration:
And after a few minutes: “et voila!” I was facing a fairly decent web app that showed me Ubuntu outstanding merges under a whole new light
As you can see, the framework is in place, it definitely finds the right amount of packages, but there are bugs. For example, all the packages are called Package Unknown . More prompting will be required, of course.
More prompting
This is really where things got interesting and exhilarating. I spent the next hour or two bossing around an AI agent asking for fine tuning and tweaks, and most were resolved and answered within minutes and almost exactly as requested.
Here are some of the most interesting prompts:
JSON schema
This first one resolved a lot of the internal problems by clarifying the JSON file schema. From this point on, everything worked a lot better.
Notice the cute Hope this helps comment ![]()
UI/UX
In this phase I provided a lot of direction for look, and feel and those almost all succeeded instantly:
Now I wanted the tool to look a little more official
While at first I thought that Gemini used the pictures I provided (a screenshot from Canonical’s website) it turns out that it was able to get all the right information from https://vanillaframework.io/docs which was quite a mind-blown moment ![]()
Can we get the changelog, too?
That required a few extra prompts because Debian packages version and changelog could be tricky to find, but I think it is mostly working now.
Current state (looking from the outside)
The main page or Dashboard with the number of packages, packages per team, and component and age distribution:
Package list with a few filters:
Detailed package view with access to Ubuntu and Debian resources as well as the detailed Merge report:
and last (my personal favorite), the changelogs viewer that shows side by side Ubuntu and Debian latest version:
Overall, I’m very happy with the look and feel and the additional functionality I’m getting with just a few hours of interacting with AI and sipping coffee. I now have an app that works on my laptop and tablet. It’s very reactive and beautiful.
Not bad for someone who doesn’t know much about Node.JS, React, and TypeScript…
Current state (from the inside)
And yes, that is the problem: I know little about npm, Node.JS, React, and TypeScript (granted, I know a lot more than a week ago). While this prototype is fun and easy to use for me, I would have little confidence in putting it in production. Not until I get more guarantee that the code is decent, isn’t using some obscure Node.JS modules, and is maintainable ( see Malware spread via Node.js exploitation on the rise).
What’s next?
I anticipate three workstreams ahead of me:
-
I’ll ask another AI (I might as well) to do a deeper analysis on the code produced by Gemini and ensure it respects Node.JS best practices and standards, and also make sure it has proper guard rails and a strong CI/CD. I have done some initial prompt testing with ChatGPT and have a solid framework in place…
-
I’ll continue to produce more packaging for this tool as well. Independently from what the app looks like on the inside, I still want to progress in modern application deployment practices. While I have a container image working, I would like to also create a snap, charm, and a rock.
-
I’ll request reviews from humans. Yes, I’ll have to talk to actual people at some point :). I want experts from design or web development backend to have an honest review of this project.
Conclusion
This prototype is not as yet intended to be the future of merges.ubuntu.com but merely an attempt to experiment with AI, discover its capacity, its potential, and the risks associated with vibe coding straight into production (YOLO).
AI is here to stay and to change the way we work, accelerate, and augment people’s abilities. To enable developers in particular to prototype and produce faster solutions. I hope everyone is having as much fun as I did experimenting and doing it responsibly.
If you want to try the ubuntu-merges tool shown above, you can check it out and test it locally. Feedback welcome!















