You may have noticed that the Start URL parameter for your PWA only accepts a static value. This can be inconvenient if you're developing your app with Bubble.
How web developers handle environments
In web development, the best practice for managing multiple environments is to host the development version on a subdomain. So if your production domain is example.com
and your Start URL is example.com/app
, then your development environment might be dev.example.com
and the matching Start URL dev.example.com/app
Progressier handles that just fine. Under the hood, the software saves your chosen Start URL as a relative URL and applies it to each of your domains at runtime. See this article for reference. No issues there.
How Bubble handles environments
Now, here comes the problem: Bubble doesn't follow best practices. Instead of using subdomains, Bubble places your development environment in a sub-directory:
Production:
example.com
Development:
example.com/version-test/
This is problematic because both PWA installation and push notification permissions are granted at the domain level. Once you've installed a PWA or enabled notifications for example.com
, operating systems won't let you install or grant permissions separately for example.com/version-test/
.
Since both URLs belong to the same domain (example.com
), and a PWA manifest can only define one Start URL, Bubble's structure prevents you from having separate PWA installations for development and production simultaneously.
Workaround
If your main goal is simply to have an instance of your development Bubble app accessible from your home screen, there’s a temporary workaround (but only for iOS):
⚠️ Note: This trick only works on iOS. On other operating systems, the Start URL will eventually revert to example.com
, making this workaround ineffective.