Pulumi stacks can be used in several different ways, which is the reason why the official docs don't settle on a single best practice. It depends on your needs and constraints.
We organize it like this (since the project grew into several hundred aws resources in total):
• One project per group of resources / resources managed by the same Dev-team
• One stack per project for each env
• Currently we configure stack dependencies via pulumi config, but you could easily depend allways on the same stack but named like the current env. - in our case we use config because we can mix dev and staging stacks for new features..