I tried Vibe Coding properly for the first time on a real project — an Angular frontend talking to a headless CMS, using Gemini Code Assist throughout. Here’s what actually happened.

Context matters more than the prompt box.
The chat interface alone wasn’t enough for anything non-trivial. What worked was writing the feature requirements in a .md file - structured, specific, with field names, API contracts, and expected behaviour - and feeding that as context. The generated code went from generic scaffolding to something I could actually use. Side effect: those .md files become reasonable first-draft documentation too.
