Set the metadata that controls how your app appears when shared on social platforms. You can customize the title, site name, description, and thumbnail used for link previews.
Social media sharing
Many social media platforms (and other types of software that allow link sharing) fetch some information about your app that it uses to generate a preview. This gives you as the app's developer the chance to set up the text content and image that the platform displays, to ensure it represents your app in a good way.
Open Graph tags for Social Networks
What is Open Graph?
Open Graph is a protocol that enables web pages to become rich objects (meaning that they are displayed with details like a customizable title and preview image) in social media platforms and other online services.
It was first introduced by Facebook, but has since been adopted by many other platforms such Twitter and LinkedIn. By tweaking the Open Graph settings in Bubble, you can control what content is displayed on platforms that support the Open Graph protocol.Open Graph is a protocol that enables web pages to become rich objects (meaning that they are displayed with details like a customizable title and preview image) in social media platforms and other online services.
It was first introduced by Facebook, but has since been adopted by many other platforms such Twitter and LinkedIn. By tweaking the Open Graph settings in Bubble, you can control what content is displayed on platforms that support the Open Graph protocol.
Social Metatags
This setting specifies the tags that are used when your app's domain is shared. You can also set specific tags for a given page. See the page level settings section.
Popular social networks let you customize how links to your website look, when posted on their platforms. You can control this setting (open graph meta tags) in the Meta tags section and customize the image and the content of the text that will be displayed.
Here's an example of what the tags for the www.bubble.io website look like on LinkedIn:
This link preview is automatically generated by LinkedIn, based on the settings in the Social Media / Open Graph section
Page level settings
Settings in the Settings tab will be applied to all pages of the application. Bubble also lets you modify these values at the page level. This is in particular useful if you want to use some dynamic information (for instance, the current page's product's image) instead of a generic image.
If you have some settings at the page level, they will prevail over the application's settings. To edit the page's setting:
Open up the page that you want to edit
Double-click the page itself or locate it in the element tree to open up the property editor
In the Appearance tab, scroll down to the Title/Description and Image setting as illustrated below:
SEO settings
Manage settings that affect how search engines interpret and index your app. Options include exposing heading tags, pointing URLs to your primary domain, customizing your robots.txt, and exposing a sitemap file.
Custom headers and body
What is a custom header or body for?
Using this setting adds a custom header/body to all of your pages. If you want to add them to one or more specific pages, you can do so in the pages property editor.
The content in the header loads before the content on the page and is useful for content that you need to ensure is loaded before the page is loaded and rendered.
A custom header refers to the HTML content that can be added to the <head> section of every page in your app. The content inside the <head> tag does not appear on the page itself, but it sends specific instructions to the browser, such as:
Meta Tags: If you need to add meta tags to all pages (in addition to the tags already built into Bubble), you can place them here
Link to External CSS: External stylesheets are typically linked in the header to ensure that they are loaded before the page content
Link to External JavaScript Libraries: Although JavaScript can be loaded in the header or the body, certain libraries and scripts that must be loaded before the page content are placed in the header
Third-party Integrations: Some third-party integrations require code snippets to be placed in the head. The third-party documentation will usually instruct where to place the code.
Custom body
The content in the body loads as the page is being rendered. It's useful for code that interacts with elements and content that don't necessarily need to be loaded before the page starts displaying
A custom body refers to content placed within the <body> tag of the HTML document. This is where the content displayed on the webpage itself is housed (including every element you place on the page in the Design tab). You might use a custom body for:
Embedding Custom HTML Elements: For special content that should be present on every page.
Embedding JavaScript: When scripts are dependent on the page content, or when they should execute after the content has been loaded, they are typically placed near the end of the body section.
Third-party Integrations: Certain third-party integrations are placed in the body.
As you can see from the examples, there is some overlap as to what kind of content is placed where. If you are relying on a third-party code snippet, we recommend you check the documentation for that third party to make sure it's implemented in the right place.
Advanced settings
Add custom script or meta tags to the <head> or <body> of your app pages. Useful for adding analytics, third-party integrations, or custom styles.
301 redirections
Set up permanent server-side redirects from one URL to another. This helps preserve SEO value when changing URLs and ensures users are routed to the correct destination. Supports wildcard redirects for dynamic patterns.
Hosting files in the root directory
Upload and host static files at the root level of your domain (e.g., yourdomain.com/filename). This is often used to verify domain ownership or support third-party services. Files are version-specific and should not conflict with page names.
Domain and email
When an app is created, Bubble uses the name you provide to generate a unique URL where you can run of your app. For example, if your app has the name my-bubble-application, Bubble generates the URLs below:
Connecting to a custom domain means linking your Bubble app to a domain you own (like yourapp.com) instead of using the default Bubble URL (e.g. yourapp.bubbleapps.io). This gives your app a professional web address and allows you to manage branding, SEO, and email settings tied to your domain. See the article below for a more in-depth look:
Registrars are accredited entities that manage the reservation of domain names. There are many different providers and in the list below you'll find some of the biggest ones:
Bubble is not responsible for the content, accuracy, or practices of third-party websites or services that are linked from our platform and website. We provide these links for your convenience. Always review the terms and conditions and privacy policies of any third-party websites or services that you visit.
Domain settings
Connect a custom domain to your app. Enter your domain name and click Set up this domain to register it with Bubble and receive the instructions needed to configure your DNS.
Email settings
Customize your app's email behavior after a domain has been set up. Domain configuration is required before enabling email features.
Email settings
This section explores using Bubble's built-in email features, which utilize Sendgrid. If you want to set up a more customized solution or prefer a different email API provider, consider configuring an API using the API Connector plugin or browsing the plugin store for plugins related to your desired provider.
There are many scenarios in which you'll need to email the users of your app. Whether it's to notify them about updates, send password reset links, share promotional offers, or simply welcome them onboard, effective email communication enhances user engagement and trust in your platform.
Sending emails can be done sing the Send Email action. Some specific email types, such as resetting a user's password, has a built-in feature that generates a secure password reset token for you and can also automatically send the email.
Bubble offers two ways to send emails:
Shared email address: if you haven't set up a custom domain and/or SendGrid account, Bubble offers a shared email address from which you can email your users. For apps in development, this solution is suitable. However, for live apps, we recommend using a dedicated SendGrid account to ensure email deliverability. The shared email address also has a limitation of 50 recipients per email.
Custom domain: when you own a custom domain, you can customize SendGrid and Bubble's built-in email features use that domain instead. This is a more reliable solution for apps with live users.
When your app does not use a custom domain, all emails will come from [email protected]. This is a shared email address from Sendgrid that comes out-of-the-box with your new Bubble app to help you get started.
In many scenarios you'll need to send an email to your users. This article covers the basic email settings needed to use Bubble's built-in email system.
Built-in email features
Bubble lets you send emails with customizable content, and additionally offers built-in features for sending more technically-oriented emails, such as those required for resetting a user's password.
Click on each point below for more information and links to their core reference entries:
Using the shared email address
If you have not yet connected your app to a custom domain, you can use Bubble's shared email address. What this means is that all your emails will come from the same address as other apps using the same feature:
This is useful for when you are developing and testing your app, but we recommend setting up your own SendGrid account when your app goes live. You can read more about why and how to do that in the section below.
The built-in functionality for sending from the shared address comes out-of-the-box when your app is set up, and you don't need to make any changes to your app's settings. To send an email, simply use the feature in the workflow editor.
Limitations of using the shared email address
Using Bubble's shared email address comes with a few limitations:
Due to rate limiting from SendGrid, a maximum of 50 recipients can be specified per email
Measures such as is only available if you are managing your own SendGrid account
SendGrid provides a range of features including custom email templates, tracking, analytics, and more. These are only available if you register your own account
SendGrid keeps logs of all sent emails. The logs are only available if you register your own account.
Using a custom domain
Regardless of the email domain you want to use, Bubble's built-in email feature uses SendGrid to send emails. If you want to use your own and , you need to set up your own SendGrid account.
Setting up SendGrid
Before you set up your SendGrid account, you must own the domain that you want to use and connect it to your Bubble app. You can read more about registering our domain in the article below.
After logging in, you need to get your API key from SendGrid (see SendGrid documentation here). Make sure to treat the API key as sensitive data and store it in a secure way.
Step 3: Set up and validate the key in Bubble
Navigate to Settings - Domain / Email and scroll down to the header that says Email settings. Note that if you have not yet connected your Bubble app to a domain, the setting will not be displayed.
Enter it in the input box in the SendGrid API Key field, and click on Verify Sendgrid Key. If your key is valid, a validation email will be sent to the account you used to sign up for Bubble.
Once you have validated your SendGrid connection, you will be able to, optionally, enter a template ID (so that all emails coming from your app follow a template you design in SendGrid).
You will also be able to modify the alias of the admin email.
Note that there are some things you can do on SendGrid's end to optimize email delivery, such as domain white-labeling, IP white-labeling, etc.
Social media sharing
Many social media platforms (and other types of software that allow link sharing) fetch some information about your app that it uses to generate a preview. This gives you as the app's developer the chance to set up the text content and image that the platform displays, to ensure it represents your app in a good way.
Open Graph is a protocol that enables web pages to become rich objects (meaning that they are displayed with details like a customizable title and preview image) in social media platforms and other online services.
It was first introduced by Facebook, but has since been adopted by many other platforms such Twitter and LinkedIn. By tweaking the Open Graph settings in Bubble, you can control what content is displayed on platforms that support the Open Graph protocol.Open Graph is a protocol that enables web pages to become rich objects (meaning that they are displayed with details like a customizable title and preview image) in social media platforms and other online services.
It was first introduced by Facebook, but has since been adopted by many other platforms such Twitter and LinkedIn. By tweaking the Open Graph settings in Bubble, you can control what content is displayed on platforms that support the Open Graph protocol.
This setting specifies the tags that are used when your app's domain is shared. You can also set specific tags for a given page. See the page level settings section.
Popular social networks let you customize how links to your website look, when posted on their platforms. You can control this setting (open graph meta tags) in the Meta tags section and customize the image and the content of the text that will be displayed.
Here's an example of what the tags for the www.bubble.io website look like on LinkedIn:
Settings in the Settings tab will be applied to all pages of the application. Bubble also lets you modify these values at the page level. This is in particular useful if you want to use some dynamic information (for instance, the current page's product's image) instead of a generic image.
If you have some settings at the page level, they will prevail over the application's settings. To edit the page's setting:
Open up the page that you want to edit
Double-click the page itself or locate it in the element tree to open up the property editor
In the Appearance tab, scroll down to the Title/Description and Image setting as illustrated below: