I have found great projects have distinct stages with their own scopes and deliverables. This frames expectations in the right way and prevents over investment in the early stage of exploring an idea.
Modern tools mean I can workshop with clients and very rapidly build up a working, click through, prototype of the concept. This allows for exploration of the real intention of the app and turning that into something that can be presented to shareholders and users.
This stage does not include navel gazing about colours, images and fonts. Rather it cements how the app will work, how many screens there are what clicks to where and why it needs to exist.
The value of testing the idea with users at this stage can not be emphasised enough. People are often very biased and convincing in person about their ideas. Testing before more investment is made often throws up things they have not considered, you can even pay online services to do this unbiased testing for you.
Thinking in terms of the Minimum Viable Product (MVP) is also a strong discipline at this stage, software projects often blow out and figuring out the minimum you need to do to get established is way better than throwing the net wider than you Minimum Viable Audience (MVA) will require.
Designers find it much easier and faster to get to grips with an idea if they have output from Stage 1 above. Their job is then to take it to a level that the implementation team will immediately be able to start building it without having to decode the intentions of the project or do any design themselves.
I have built web sites and apps with Wordpress, Laravel, React JS, Jekyll, Gatsby and Django. If I think I do not have the chops to do something properly I bring in other talent. I strongly believe in transparency and project portability.