Tiger eyes glow in the browser. It’s inching closer — lat 25.033, lng 121.565, straight for Taipei.
This isn’t some nightmare fuel from Taiwanese folklore. It’s the Auntie Tigress Tracker, a Vue 3 app conjured by Kiro in a single prompt frenzy. Generating Vue.js components with Kiro? Yeah, it works. Spookily well.
Zoom out. The original dev wanted to test if this AI sidekick groks Vue 3 idioms — Composition API, script setup, Leaflet maps, composables. The result: a geolocation-powered creep-fest where Auntie Tigress (or a puppy, if you’re chicken) stalks your position. Swap icons, watch it hunt. Live demo here. Source on GitHub.
But here’s my acerbic take: AI code gen has been promising to end frontend drudgery since GPT-3’s toddler days. Remember Copilot’s early hype? It barfed incomplete hooks and forgot about keys. Kiro? Feels different. Sharper. Like it actually read the Vue docs.
Kiro’s Secret Sauce: ref vs reactive Mastery
Most AIs botch this. Geolocation spits new coords? That’s a full object swap — ref() it is. Creature state mutates piecemeal (lat tweaks, icon flips)? reactive() all day. Even grizzled Vue devs trip here.
Kiro correctly chose
ref()for the geolocation position (we replace the whole object on each update) andreactive()for the creature state (we mutate individual properties likelat,lng,icon). This is a subtle distinction that trips up even experienced Vue devs.
Nailed it. Check the composables:
// useGeolocation.js — ref for replaceable state
const position = ref({ lat: 25.033, lng: 121.565 })
watchId = navigator.geolocation.watchPosition(
(pos) => {
position.value = { lat: pos.coords.latitude, lng: pos.coords.longitude }
},
(err) => { error.value = err.message },
{ enableHighAccuracy: true, timeout: 10000 }
)
// useCreatureTracker.js — reactive for mutable state
const creature = reactive({ lat: 0, lng: 0, icon: '🐯', name: 'Auntie Tigress' })
Prompt was high-level: “Vue 3 Composition API, , Leaflet map, composables for geolocation and creature tracking, icon picker with defineProps/defineEmits.” Then tweaks. No hand-holding.
Unique insight time — and yeah, it’s mine. This echoes the 90s visual builders like Visual Basic. Drag-drop paradise, until scale hit. Apps ballooned into spaghetti. Kiro’s single-session win feels like that: fun for prototypes, but production? It’ll hallucinate edge cases faster than you can say “SSR hydration mismatch.” Bold prediction: By 2025, Kiro-like tools own 40% of greenfield Vue apps under 10k LOC. Over that? Humans still rule the refactor roost.
Does Kiro Actually Understand Vue 3 Idiom?
Short answer: Better than your junior hire. Icon picker? Proper props/emits. Leaflet integration? Smooth, no div id hacks. Watercolor map aesthetic? Pulled from thin air — or trained on a million Dribbble shots.
But skepticism alert. Corporate spin screams “magic.” Nah. It’s pattern matching on steroids. Miss a prompt nuance (say, “handle geolocation privacy modals”)? Crickets. Or worse, half-baked consent nag.
The app defaults to Taipei — nod to the folk tale. Tiger slips from mountains at night, grabs naughty kids. Browser geolocation (with high accuracy, 10s timeout) overrides. Error handling? There. Creature creeps via timers, easing toward you. Cute. Creepy. Clickable.
Paragraph break for effect.
It shines in single-file components. No sprawling monoliths. Composable split: geolocation, tracker, map. That’s idiomatic Vue 3. If you’re still on Options API — upgrade, luddite.
Why Build a Tiger Tracker with AI?
Fun, sure. But probe deeper. Original dev stress-tested Kiro.dev — not some toy. Real-world: maps + reactivity + user location. Permissions. Icons. Polish.
Dry humor interlude: Imagine pitching this to stakeholders. “Q4 deliverable: Folklore monster simulator.” They’d fire you. Unless it’s AI-generated in 30 mins. Then it’s “innovative MVP.”
Corporate hype check: Kiro’s not yelling “revolutionary.” Good. But watch the PR. Every AI tool claims “10x productivity.” Reality: 2x for boilerplate, 0.5x for debugging hallucinations.
Deeper dive. Leaflet setup? Custom icons via divIcon, emoji sprites. Reactive creature marker updates on the fly. Geolocation watchPosition fires, map centers, tiger advances. Swap to ghost 👻? Emits bubble up, reactive state flips. smoothly.
Flaws? Minor. No offline fallback. Permissions UI bare-bones. But for a one-shot? Impressive.
And the map — watercolor tiles? Stylized, eerie. Kiro suggested it? Or prompt magic? Either way, elevates from drab to delightful.
Is This the Death of Vue Boilerplate?
Not quite. But closer. Historical parallel: jQuery’s rise buried raw DOM hacks. Kiro buries “div with id=’map’.” Composables emerge fully formed.
Critique the ecosystem. Vue’s docs are gold, but verbose. AI skips the reading. Prompt once, iterate.
Production pitfalls. TypeScript? Spotty in demo. Vite config? Assumed. Scaling to Nuxt? Pray.
Still, for indie hackers, side projects — jackpot. Generating Vue.js components with Kiro just got real.
Wrap with reality. It’s 2024. AI won’t replace you. But devs ignoring it? They’ll be the ones creeping toward unemployment.
**
🧬 Related Insights
- Read more: O(n²) Sorts Aren’t Equal: What a C Benchmark Reveals About Real-World Speed
- Read more: Excalidraw: The No-Signup Whiteboard That’s Drawn Millions Without Asking for Your Email
Frequently Asked Questions**
What is Kiro and how does it generate Vue.js components? Kiro’s an AI coding tool that builds full Vue 3 apps from prompts. High-level describe, it spits composables, maps, reactivity — all idiomatic.
Does the Auntie Tigress Tracker really use real geolocation? Yep. Browser API with watchPosition. Defaults to Taipei if denied. Tiger (or pup) tracks you live.
Can I use Kiro for production Vue apps? Prototypes? Absolutely. Prod? Review for edges, types, security. It’s a turbo dev, not a replacement.