Sub applications are a powerful feature available in the Production plan. The feature sets up a relationship between a “main app” and one or more “sub applications” and makes it easier to push any changes from the main app to its sub apps, while all main and sub apps have their own database.
This is especially useful for certain ideas that involve setting up different (sub/)domains for different clients, which is common in SaaS applications.
The feature can be found in Settings > Sub apps. There, you can create a sub app using the current app as the main app. This will create a copy of the main app with the new name that you pick. The new sub app will appear in your “My apps” dashboard (and will note which app is the parent), but from that point on, it generally functions as its own app. You cannot create a sub app off of a sub app, but one main app can have multiple sub apps.
However, one of the main features of a sub app is that at any time, you can “push” the current version of your main app to all of its sub apps. Note that this will overwrite any changes made to a sub app individually. (This feature can take a relatively longer time for complex apps.)
Certain settings on an app will not transfer from the main app to a sub app upon a push. These include:
Custom domain (i.e. every sub app can have its own domain)
Plugin key values inputted in the Plugin tab
Sub apps have separate databases from the main app, but can connect with the main app’s database through the App Connector just like any other app. In other words, the main app’s database will not transfer to sub apps upon a push. Default values, however, are stored in the app rather than directly in the database, so they will transfer to sub apps on a push.
Each sub app would be on its own Bubble subscription, but sub apps do not need to be on the Production plan - only the main app does.
If you have a subscription to a plugin on your main app, it would not carry over to your sub-app(s) and your sub-app(s) would need to re-purchase that plugin.