I've been working on an app using Kiro - https://kiro.dev/ - and it has completely changed my view of AI coding. If you're a friend of mine, you'll already know this. Please accept my apology for the constant Kiro talk!
An AI tool that doesn't replace you, but makes you better.
I want to tell you about Kiro because it's changed my perspective on AI tools and how they can impact developers. I've been a developer for a long time, and I love building things. The arrival of AI does change the game for people like me. Could they replace me? That's the doom-and-gloom perspective that you read about quite a bit.
Many demos I've seen of AI tools promote the idea that "anyone can build anything." This seems like a false promise to me because I know that software development is a complex process. Building a good user experience on top of the development process complicates it even more.
Focused, beautiful software requires a clear vision and a steady person to lead that process. I've tried a lot of AI tools, and they all left me a little disappointed. Then I tried Kiro, and things changed for me.
I want to tell you about it.
An app based on a real-world experience
I'm working on an app I call Upload Drive-In using Kiro. (See the two-minute video overview of Upload Drive-In here.) I built an early prototype to address a one-off problem a while back. That was my proof of concept, but I then wanted to develop it into a more long-term solution.
A client needed to send me multiple files, some of which were large and contained sensitive information. "How can I get you these files?" It seems like a simple question. I didn't have a quick answer for him.
Email wasn't the right solution. Was the email sending process secure? Where were the files stored? No, email wasn't the right solution.
I already pay for a Google Workspace with loads of available Drive space. Maybe that would work?
I tried to invite him to a shared Google Drive folder, which led me to ask for more information from my client than I really wanted to. Did my client have a Google account I could use to connect him to my shared folder? Yes, but it was his personal Google account, not a "work" Google account. Would he need to create a new Google account to send me files? Was that a security issue for his company?
The whole process was far too complicated.
I'm a nerd. I can solve problems like this.
I wrote a basic script that I hosted on my website's server, specifically for him to upload those large files securely to me. It worked. I sent a direct message to my client with a link. It was on my domain. It was a secure link. I controlled the whole process. The page was customized for him, allowing him to drag and drop sensitive files into it, which were ultimately stored in a Google Drive directory that I had selected.
After that experience, I wanted this type of link for all my clients.
AI, can you help me?
I experimented with various AI tools to help develop this into the app I envisioned. If you've gone through this process, you're familiar with how frustrating it can be.
It's common for the AI IDEs to end up in loops of repeating the same mistakes over and over, and losing sight of the ultimate goal.
And "hard" tasks, especially as a code base grows, just get mired in the AI churn. I saw the promise of AI development, but I felt that the current tools needed improvement.
I was fortunate to stumble upon Kiro the day it was launched, and that immediately changed my outlook on AI coding. I opened up my fledgling app in Kiro, and the fog cleared. Kiro has a process for understanding how app development works. Kiro keeps the vision for my app and my preferred development process in sight at all times.
Interested?
Steering app development in Kiro
One of the first things I did was open my barely working project in Kiro and create steering documents. I did this conversationally with the app. For example, I use DDEV as my local environment, and I have a steering markdown file to ensure the Kiro IDE doesn't overlook these basic workflow needs. (Other unnamed AI-powered IDEs forget these sorts of details constantly.)
I also have steering documents that outline that I want to work with specific frontend tools, such as Alpine JS and Tailwind CSS. Keeping these pieces within my "compfort zone" means I can easily tweak parts of the app without relying on AI. In other words, I don't need to use AI tokens to fix layout problems. I want to be judicious with how I use the AI.
When you try Kiro (and I think you will want to try Kiro), don't overlook the "steering" setup process. This lays the foundation of everything you will build going forward.
- What do you want to build?
- Do you have specific workflows that you want to follow?
- Are there specific things you do not want to do?
Also, remember that you can adjust the steering as you go along. For example, late in development, I realized that Kiro was making a particular syntax error several times by omitting a second argument in the string replacement command.
I resolved this issue by creating a steering document, with Kiro's help, that addressed the exact problem.
Specs are how you get things done in Kiro
Now let's talk about getting things done in Kiro. This is where "specs" come in. Based on my experience, I also think it's the aspect of using Kiro that makes me like it so much.
Kiro's spec process enables you to leverage your specific developer knowledge and augment it with AI. AI isn't replacing you. It upgrades the skill you bring to the process. That is Kiro's superpower: It boosts your experience and your knowledge.
Making a spec in Kiro
Anything you want to accomplish in your app can be turned into a spec. Describing the problem to Kiro is how you start creating a spec.
Want to know the secret about writing a spec?
For me, the process begins by talking through the problem you want to solve aloud to myself at my desk. If you can articulate the problem you want to solve and share it with Kiro, you can create a great specification. (The talking through a problem is sometimes called rubberducking.)
I'll share a specific spec creation process to help illustrate what I mean.
In my app, I have a button that checks the status of a background process. This helps a person during the installation process of the app. After testing this button on my staging server, I realized that there were circumstances where the process missed some possible errors.
I went into Kiro and started a new spec session. I went through the situation in detail. I told Kiro that I was testing on my staging server and that I could imagine 4 or 5 scenarios where the current process presented inadequate data. I told Kiro about those scenarios in my own way, just talking out loud into a mic. I was detailed in my descriptions. I also told Kiro my rough idea on how to improve the workflow in the app.
Then I submitted that brain dump to Kiro and it went to work.
Based on what I said, Kiro first created a requirements document. I reviewed it and replied with additional thoughts on how to refine it.
Next, Kiro created a design document based on my refined requirements document. I was able to tweak that to my liking as well.
Finally, Kiro created a tasks document that outlined the plan, step by step, to solve the problem I initially presented.
I went through each task and had the AI work on it. At the end of a task, I can ask for any necessary tweaks before moving on to the next task. If you're familiar with working in an AI coding environment, you'd call the tweaking process "vibe" coding.
Task lists are game-changing
Have you heard the old proverb about big tasks? “How do you eat an elephant? One bite at a time.”
One. Bite. At. A. Time.
The spec process, which results in a detailed task list, will change your AI development process.
Kiro currently uses Claude as its AI engine. Will that change over time? I don't know. But I think how Kiro utilizes the AI is amazing. It's designed to work and operate in the way a software developer works. With your help, Kiro first tries to understand the problem. It then works to form a design document that explains what a solution to that problem would look like. Finally, it creates steps that you follow, one bite at a time, until the task list is done.
Rinse and repeat.
That's how a developer works.
And it's how Kiro works.
Your direction is what makes it work. Its superpower is staying focused on the complex task that you and Kiro built together.
Go try Kiro. I think you'll be impressed.
@kirodotdev #hookedonkiro
Top comments (0)