DEV Community

Pavlo Lykhovyd
Pavlo Lykhovyd

Posted on

How Kiro Replaced a Team of Developers: Building a Client-Side ML Platform with an AI-Driven IDE

My journey with Kiro started when I first saw the announcement on DevPost that Amazon had launched a new low/no-code hackathon. I am new to such events, but I was interested in participating because, as a beginner self-taught developer, I was curious to gain experience, especially in the field of AI-driven software and web development. At that time, I knew almost nothing about Kiro itself, but I had some experience with so-called ‘vibe coding’ using other tools and VS Code forks. However, using AI coding assistants mainly satisfied me in terms of code autocomplete. I always failed to build something meaningful without manual intervention in the AI-generated code. This challenge, which foresaw the usage of Kiro as the main driving force of product development from scratch, aroused an intriguing question: Can Kiro offer something better, something more solid and production-ready, or is it just another representative of coding assistants, suitable only for autocomplete and primitive tasks?

Having these questions in my mind, I applied for the hackathon and, with great curiosity, I went to Kiro’s website to download and install the IDE. How surprised I was when I received the message that I was unable to start using Kiro and was added to the waitlist! It was somewhat frustrating, as I was eager to start my journey with Kiro instantly. But I had to wait. And the longer I waited, the greater my anxiety rose. Finally, after a couple of weeks or so, my access code arrived, and I got full access to the IDE.

First of all, I liked the UI of Kiro (Fig. 1). To be honest, I was so happy to see that Kiro was built as a VS Code fork because the latter has been my primary IDE for the last year. It was extremely helpful that Kiro kindly asked me whether I would like to import all my preferences and extensions from VS Code, and I happily clicked ‘Yes’! Now, I was done with setting Kiro up and was ready to build.


Fig. 1. Kiro’s UI is extremely familiar and native for all VS Code users

But what shall I build?
I did not want to create something just for the hackathon. I wanted to create a product that would be meaningful and of great use. Looking through the main categories of the hackathon, I decided to go for a wildcard/freestyle development. Finally, an idea came to my mind: I will develop a client-side web platform for machine learning (ML) data analysis.
As a scientist, I am well aware of how most of my colleagues struggle with data analysis using artificial neural networks, time series forecasting, or performing clusterization, etc. As they are not familiar with mathematical statistics and programming, it is difficult for them to perform ML using R or Python. MS Excel is a good option only for simple statistics, while robust packages like SAS or SPSS require a license purchase and time for mastering. Therefore, the idea was clear – deliver machine learning capabilities through a simple and intuitive client-side web application so that everyone could perform robust neural network-based prediction, clusterization, or time series analysis and forecasting in just a few clicks.
After deciding on the idea, I began my interaction with Kiro to bring it to life. Honestly, I skipped reading Kiro’s documentation. I was familiar with AI coding assistants like Windsurf and thought Kiro was not very different. In general, I was right, but when I started working on web app development, I realized how mistaken I was.
Initially, it took me a lot of time to clearly distinguish between vibe, spec, and hook requests. The concept was clear immediately, but efficient use came only after a week’s experience with Kiro. My first attempt at building the client-side web ML platform failed. I built it, and the functionality was generally alright, but then I decided to improve the app’s UI/UX. The prompts I used in vibe mode for this task broke the entire app. I failed to correct the errors and resurrect my app (the revert feature was not available at that time), so I started from scratch.
Now I have learned the major differences in use cases between vibe and spec requests. I used an initial vibe prompt, extremely detailed and comprehensive, to build a skeleton of my ML app. Using the prompt with extremely detailed information on implementation, including the tech stack and script examples, helped me a lot at this step. The app was functioning, but now I had to do the main work – make it beautiful, smooth, clear, extend its functionality, and add Ukrainian localization for my colleagues from Ukraine.
Before polishing the app, I asked Kiro to create steering documentation, and it performed this task well. After that, I created a spec for the app's rebranding. Generally, I tended to use vibe requests, but now I know that Kiro performs better with comprehensive tasks that require an all-around rebuilding of the app, using specs. So, I used specs to successfully implement the tasks of adding time series forecasting and random forest algorithms to my app, as well as thorough Ukrainian localization. As for hooks, I used just a few to automatically update documentation and clean up the project (Fig. 2).


Fig. 2. Specs, hooks and steering of my NetCraft AI application

One of the things I liked best was that Kiro allowed editing requirements, design, and task lists in specs. Besides, I was really satisfied with its performance in QA testing of the application, as Kiro built reasonable and robust verification tests at each step of new code implementation.
Finally, several days were spent with vibes to improve the application quality and fix minor bugs and UI/UX issues. Then, a robust QA assessment took place. The NetCraft AI app I have built performs great, in my opinion, and I hope it will be of use and assistance to my colleagues-scientists (Fig. 3). You may also try it if you like by following this link NetCraft AI.


Fig. 3. Landing page of NetCraft AI web app built with Kiro

To sum up, it was a great experience to use Kiro for building the ML web app from scratch using minimal manual coding. My skepticism about Kiro transformed into admiration, and I really liked this IDE. I hope that further updates will only improve Kiro’s performance and extend its functionality! Kiro has the power to replace a whole crew of developers by itself!

Top comments (0)