Hiding Pages and Subpages is one (partially-limited) solution to this problem.
So far as the published doc goes, those hidden pages (or let’s just call them objects) will not be visible or available to users until you reference them somehow (@object… etc) or unhide them.
I sometimes use an approach something like this :
- Public Stuff (not-hidden)
– Sub Page of Public Stuff (not-hidden)
– Etc - DEV stuff (hidden)
– other hidden stuff
but you can also work less systematically
- Public Thing (not-hidden)
– Sub-Public thing that is ready (not-hidden)
– Sub-Public thing still in DEV (hidden)
– etc
It gets a little funky with tables and views but, generally, where there is a will there is a way.