Vibe coding rule #1: I code my data model prior to any prompt.
There is one practice that I have found works for me after a few projects. I always create my database scheme manually before asking the tool to generate the screens. This takes about thirty minutes.
This practice was introduced after a recipe application I was building ended up with ingredients stored in one single string of text. Everything looked beautiful, and all of the demos ran perfectly. However, then I wanted to create a shopping list by collecting ingredients from different recipes, and I understood that this would not be possible with the current database. I had to redesign the whole model and rewrite half of the screens.
The reason why this practice works well is that AI generators are good at generating screens and logic based on the existing database, even if the database is flawed.
After establishing the schema, I then paste it into the first prompt and instruct the machine not to alter the schema without permission. At that point, the output becomes very predictable.
Do you plan the data beforehand or leave the data planning for the tool to suggest and then correct any issues later? Have you ever been delayed more by a bad data model than a bug?
Replies
For that shopping list, I'd check what happens with 500 g of flour in one recipe and 1 kg in another. Separate ingredient rows alone won't give you the right total unless quantity and unit are usable too. Keep the original ingredient text alongside them for cases the app can't safely combine.