The point of an MVP is to learn – but that doesn’t mean the codebase has to be something you’re embarrassed by the moment it works.
The tradeoff isn’t 'beautiful architecture vs. horrible hack'. It’s about being very intentional: what needs to be solid now, what can be scrappy, and what you’ll revisit if the idea lands.
Good MVPs are opinionated in the right places: data models, core flows, and how you observe what’s happening in production.