Just to clarify a few things, publishing will publish exactly what you see in your browser to non admins.
The easiest way to verify this is by reloading the browser tab, this will ensure you’re on the latest draft version of your app.
Then confirming everything is as it should be.
Then publish your app, if it’s what you expect.
To clarify on some common points of confusion:
There’s only one draft app, so if you have a teammate that’s also editing your app, they’re editing the same draft version
If you publish the app, you will publish any changes that a teammate has made to your app (again, there’s only one draft version)
The biggest reason you would lose work is
Your internet connection is unstable
You and a teammate were both working on the app at the same time, or in multiple tabs, which weren’t in sync with the actual draft app.
In this situation, if you re-order the pages in your app, it can overwrite the changes made to one of those other pages, if your browser’s version of the app doesn’t contain those changes… so reload the page, or turn on and off build mode before making such changes
I love the idea of it listing what pages have had changes when you go to publish the app. What I also think would be really helpful is for builders to be able to simply toggle between the current published version of the app as well as the draft version, instead of having to login with a non-admin account.