I know I can backup specific forms with their respective .xml file. But, is there a way to do that with the whole app.
So unfortunately due to the speed at which changes are made to what apps can perform, there’s not a “cannonical” portable representation of the definition of a CommCare application which can be maintained indefinitely.
The answer for the best alternative depends on your use case.
If you are looking for a safety check before making changes to your app, you can always revert to any previous build you’ve made. This process retains all intermediate builds, so you can always revert to an old build, then revert back to the current one.
If you want to retain a functional copy of your app indefinitely, you can make copies of your application in your own (or another) project space. This is what I would recommend for what it sounds like you are trying to achieve.
Finally, you can copy the current “Application Document” that defines your app (Xforms, Case Configurations, Menu Definitions, etc) at any time through some advanced technical steps. I will give you a big warning that the structure of this internal document changes over time, so it is not a safe backup. If you wanted a personal, private copy of the app that lives off of the original server, though, you could run CommCare HQ locally, and copy in your app definitions through this method.
One more thing that could be potentially useful for your purpose is this:
the file you get to do an offline install should also act as a backup of specific builds of the application. but i don’t think you can then load that into you app builder and adjust it. it would just be an explicit build that you can re-use.
Ok thank for the options