🇬🇧 How Agentic AI Resurrected My "Old" Side Project
A french version of this blog post is available here.
Since I started working (a few years ago), I’ve been launching GitLab projects to test tools, frameworks, build PoCs, or start projects I hope to finish. Spoiler alert: that never happens!
However, I have one side project that is a little bit different because it concerns my family: a genealogy tree application. One of my aunts managed to trace our genealogy tree and she found people before 1800!
To answer a question I’ve been asked several times: I decided to create this project first to have fun, test, and learn new technologies and, let’s be honest, to avoid paying for a solution that, at the time, was expensive and didn’t always fit my needs. But above all, I wanted to play around and learn things.
This project is private because it undergoes constant testing. It’s the project that introduced me to Kubernetes and deploying a cluster on Google Cloud Platform. Is there any point in having an app used by one or two people running on Kubernetes? Clearly not. Installing it on a K8s cluster on a Raspberry Pi? Not really, but it’s fun (or not 😂)..
So, it’s a personal project where the architecture often changes and undergoes my experiments. In fact, those experiments are exactly what made the project so complex and why I regularly procrastinate when it comes to making updates.
🔎 Architecture details
The project consists of several technical blocks:
On the Frontend:
- A Vue.js component to visualize the family tree. No actions possible.
- A second Vue.js component dedicated to managing the tree.
On the Backend:
- A “legacy” Node.js block, consisting of a multitude of endpoints to fetch person data and calculate coordinates for links between individuals.
- A Go backend to handle “heavy” processing for all people in the tree, such as positioning.
- A Java/Quarkus backend to replace the legacy Node.js code, containing more recent features.
- A second Java/Quarkus backend, deployed on Cloud Run, which checks for birthdays daily and sends notifications.
On the Infrastructure side: the Kubernetes parts (both Cloud and Raspberry Pi) mentioned earlier no longer exist. The birthday notification component is the only one deployed in Google Cloud Platform, I’m the only user. A docker-compose configuration allows for quick local deployment.
Here is a representation of the project architecture:
As I mentioned at the beginning of this article, many choices are intentional (and not necessarily the best, I’ll grant you that! 😁). I work on this project totally randomly depending on my professional and personal context, and the admin interface clearly leaves much to be desired (CSS and I don’t get along), but:
- My family gets birthday notifications.
- I’ve digitized part of my aunt’s work.
- The GCP deployment costs less than 5 euros a month.
✅ These goals satisfy me, which explains why I invest less time in the project.
💡 The Arrival of Agentic AI-Powered Dev Environments
The arrival of AI and AI-boosted IDEs was, for me, and I imagine many others, an opportunity to test them and change the way to develop. My favorite tool? Google Antigravity. The fact that I am a Google Developer Expert gives me the opportunity to receive updates directly via email or Google Chat and attend presentations. After testing other tools like Cursor or Claude, I am fine with Google’s project.
Before Antigravity, I was focused on IDX, which has since been integrated into Firebase Studio (I talk more about it in this article: https://dev.to/zenika/idx-becames-firebase-studio-be6). Firebase Studio is more focused on applications prototyping, while Antigravity is more to continue a project by positioning the developer as an orchestrator of agents.
I’m also a big fan of GitLab Duo, which I’ve tested on some projects. A mix of GitLab Duo and Antigravity is possible (and very interesting); I give you this new article: https://dev.to/zenika/how-gilab-duo-agent-platform-antigravity-can-collaborate-to-improve-the-quality-of-our-38bm
🤔 Re-launching My Side Project
Let’s get to the point of this article: how Antigravity relaunched my side project. The project was functional, and I regularly added ancestors found by my aunt. My many attempts at graphical representations impacted the architecture, and new options required a lot of time to adapt the backend components. After several years without writing JS or Node code, their migration was not very exciting. I had migrated a few features, but it represents a few percent of the code.
That’s where I thought Antigravity could help. I often gave it technical tasks, like migrating a Java version, reviewing my docker-compose files, or updating documentation. But when I thought to ask it to take over my Merge Request (MR) for migrating my Node component to Quarkus, I was blown away.
The “skills” didn’t exist yet, but after a few prompts to an agent in “Plan” mode, it proposed a plan that actually made sense. After I validated the plan, the Quarkus component was edited and completed. Of course, I had to review a few things, but it took me a few hours whereas a manual migration would have taken days.
Why not continue? I ask Antigravity to delete the Go component and replace it with Quarkus. The code to migrate was much smaller and I have not any modification to do. Great!
For me, this is where AI can really help: supporting us in tasks that are clearly less fun to do.
Tip: Discussing with AI agents in Plan mode ensures your request is understood and the proposal meets your expectations. If it doesn’t, you can adjust it, and only once you agree do you trigger the execution. This is the principle of “AI-Driven Development.”
🚀 A side project re motivated in a few weeks
After migrating my Node and Go components, I now have fewer components, focused on a technical stack I currently use: Quarkus and Vue.js. The application is simpler, and being able to focus on new features has given me a boost to work on this project again.
Antigravity also helped me review and harmonize the UI of the admin interface. I’ll admit, I totally trust it when it suggests style changes. Honestly, it can’t be worse than if I did it myself! 😂
Another interesting aspect is the long discussions with the agent in “Plan” mode to challenge technical aspects like architecture, even if it’s simple, to optimize certain parts or brainstorm improvements and new features.
Here is the current architecture:
Now, 60% of the project’s code is in Java. Unfortunately, I don’t have the stats from before this experiment, but Node.js was probably neck-and-neck with Java.
🔑 Key Takeaways
AI clearly allowed me to accelerate my side project by resolving tasks that had no real added value or didn’t interest me. I’m not good at frontend, AI helped me improve that part, and it’s much more pleasant to work on a product that looks good, right? 😊 My motivation was boosted now that the migrations I started years ago are finally resolved.
Now I’m going to focus on making the tree available to my family, and add new features like photo management.
💡 For fans of gemini-cli, the Plan mode is now available in the version released on March 11: https://github.com/google-gemini/gemini-cli/discussions/22078