AI Vibe Coding
At our company, we’ve been experimenting with this style of development. I wanted to share my own experience — where it works well, where it struggles.
When vibe coding works, it feels almost magical: the AI knows the project context, touches the right files, and can draft new code pretty quickly. For small things — internal scripts, simple web pages, profiles, or lightweight automations — it’s perfect. I’ve used it, for example, to prototype an idea for a customer demo much faster than writing everything by hand.
But there are trade-offs. The AI tends to “reach wide” into the codebase. Sometimes it touches files you didn’t ask it to, or even rewrites working code. Even if you explicitly say don’t touch module X, it sometimes does. That means you absolutely need to review every change step by step. Breaking things silently is still too easy.
When it Works ?
AI understands the project context, suggests the right diffs, and gets something running in minutes. For small projects — internal scripts, simple pages, lightweight automations — it’s a huge time-saver.
I’ve even prototyped customer demos in under an hour — something far beyond what a static mockup could show. That’s where AI shines: breadth over depth, pulling from public patterns to scaffold working code fast.
For me, the sweet spots are:
Prototyping: quickly turning ideas into live demos.
Internal tools: e.g. simple registration apps for Teams events.
Small modules: scoped changes you can review in minutes.
Breaking work into small, modular tasks helps a lot. Ask the AI for a massive feature in one go, and you often end up with spaghetti or unexpected edits across the repo.
Where It Struggles ?
The magic fades on depth. Niche, company-specific logic — like compliance tweaks in Forge apps — often trips AI up. Other challenges include:
Production apps: Debugging is painful if AI spreads changes across backend, frontend, and DB layers. Without clear logs, subtle bugs hide easily.
Team workflows: Multiple devs “just vibing” without coordination quickly creates merge conflicts and regressions.
AI often duplicates logic, reshuffles project structure, or introduces technical debt. If a whole team blindly accepts AI output, codebases can become messy fast.
Overreach: Even when instructed not to touch certain modules, AI sometimes does. Step-by-step review is non-negotiable.
Package/version issues: AI may suggest libraries with outdated versions or known vulnerabilities, creating hidden supply-chain risks.
Legal/IP concerns: AI code can be derived from copyrighted sources; laws and case law are still evolving, meaning you could face claims or licensing complications.
Security risks: Auto-suggested dependencies may introduce CVEs or insecure versions, degrading your overall supply-chain security posture.
Tools I’ve Tried
Windsurf – Great developer experience, understands project context, and works well for modular tasks. But you still need to know what you want and structure the work into smaller steps. Large features at once often lead to messy results.
Rovo Dev Agents (beta) – AI Coding tool – in practice, it didn’t yet feel very Atlassian-specific — more like another AI coding assistant, though with interesting potential inside Atlassian environments (Rovo agents → automation).
My Bottom Line
Vibe coding is like working with a sharp but unpredictable intern: brilliant ideas, questionable follow-through.
Yes, use it for prototypes, internal tools, and small changes.
No, not blindly in production. Only in a limited way and with strict controls (as it might lead to legal uncertainty, supply-chain risks, security, and long-term maintainability concerns). For complex apps, AI should support — not replace — human design, testing, and reviews.
Done right, it can speed you up 2x. Done wrong, it leaves you with regressions, technical debt, and legal uncertainty.
Key Contacts:
Matej Štrba