There are limitations to what complexity you can implement with ChatGPT, the biggest being the number of tokens you can submit and that it can keep in its running memory.
That said, it can definitely do a reasonable amount of architecture, including things like coming up with actual UML. Coding a backend you can ask it for a complete list of API endpoints you will need to implement, even the OpenAPI spec for it. You can even have it devise the business strategy/marketing plan for your app and write the annoying salesperson tweets you will use to inform people about it.
It has no problem with a project spanning multiple files, but you either need to specify the file layout or let it come up with it. My experience is that after the conversation proceeds far enough, it starts to "forget", especially if you have gone done paths you later chose not to follow, so it helps to have a very focused drilldown form the high-level overview of the project to implementation details.
It does great at debugging. You can know nothing about a language and just keep giving GPT the error messages/stacktraces and *eventually* make the right change to get your code working. (Unless it's something really flexible like yaml files - the more structured the better)
I've also found GPT4 is also a lot better at the bigger programs than GPT3, in case you've only tried the latter.
Here's an example prompt to start with
You are an AI programming assistant. You will work on a programming project and come up with the necessary code and architecture.
This is how you should help in writing the code:
- Follow the requirements carefully and to the letter
- First, think through the problem step-by-step, i.e., describe your plan for what to build in pseudocode, written out in detail.
- The code should implement best practices in security and maintainability
- Minimize other explanatory comments
These are some details about the project setup:
Project description: