# Quickstart Guide

## **Step 1:  Set up your homepage**

Our Canvas template includes a fully functional homepage maker. App owners can manage and customize their homepage content from the [Owner’s Portal](https://docs.airdev.co/canvas/assets/pages/owners-portal-page) without needing to modify the app index page through the Bubble editor.

![](https://406542698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaSPHO3_MVlFI7s3dpf%2F-LaSPW1VePGMMB_wa85y%2F-LaSPWuH6EhSC_j25knM%2Fscreen-shot-2019-03-05-at-1.57.52-pm.png?generation=1553124182333581\&alt=media)

To set up your homepage:

* Go to your app (<https://bubble.is/page?id=**YOURAPPNAME**\\>)
* Click on the `Data` tab > `App data` tab > `Users` data object
* Click `run as` next to the user <dev@airdev.co> (any user that has the `Owner` field as `yes` will be able to access the Owner’s Portal page)
* On the [Owner’s Portal page](https://docs.airdev.co/events-platform-template/assets/pages/owners-portal-page), click on the Homepage tab to customize your homepage content

For more information on how to setup your homepage, click [here](https://docs.airdev.co/canvas/assets/pages/owners-portal-page).

## **Step 2:  Set up your email**

This template does not use Bubble’s native “send email” functionality, but instead it uses an API workflow that generates a nicely-formatted HTML email from SendGrid.

![](https://406542698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaSPHO3_MVlFI7s3dpf%2F-LaSPW1VePGMMB_wa85y%2F-LaSPWuJ_hg4gHcBJa5A%2Fscreen-shot-2019-03-05-at-2.11.11-pm.png?generation=1553124182015855\&alt=media)

To set up your email:

* Navigate to [SendGrid](https://sendgrid.com/) and sign up for a free account
* Once you are in the SendGrid dashboard, click on the `Settings` tab > `API keys` tab
* Select `Create API key` > `General API key` and fill out the subsequent form
* Save your API key somewhere (you will not be able to view it again)
* Go to your app (<https://bubble.is/page?id=**YOURAPPNAME**\\>)
* Go to the `Plugins` tab > `API connector` > `SendGrid API` > Expand send email API call
* Under `Headers` enter the following:
  * Key: `Authorization` | Value: `Bearer yourapikey` | Private
  * Key: `Content-Type` | Value: `application/json` | Private

To update the admin email for the app:

* In run-mode, go to the [owner's portal](https://docs.airdev.co/events-platform-template/assets/pages/owners-portal-page)
* From the `IDENTITY` tab, find the input for "ADMIN EMAIL"
* Update this with the relevant email address and save your changes

## **Step 3:  Register your app with Canvas Portal**

You can easily add fully responsive pages and modules to your app by registering your app with our [Canvas Portal](https://canvas.airdev.co).

![](https://406542698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaSPHO3_MVlFI7s3dpf%2F-LaSPW1VePGMMB_wa85y%2F-LaSPWuL8GIeUb8krJhO%2Fscreen-shot-2019-03-05-at-2.13.13-pm.png?generation=1553124199057288\&alt=media)

To register your app:

* Go to your app (<https://bubble.is/page?id=**YOURAPPNAME**\\>)
* Go to the `Settings` tab > `Collaboration` tab > add <dev@airdev.co> as a collaborator
* Go to the [Canvas Portal](https://canvas.airdev.co) and sign up or log in to your account (please use the same email address you are using for your Bubble account)
* Go to `MY APPS` tab to view all of your registered apps with Canvas Portal
* After your app is registered, you can click `VIEW DETAILS` to add a page, update your app colors, or connect with an AirDev partner

## Step **4**: Migrate your Bubble database to live mode

When you first access this template, you will be viewing the **Development** version of the database. While this database version is sufficient for designing, building, and testing your application, it is highly recommended that you deploy all app updates to live and **migrate your development database to the production database** before launching your app with real users.

#### Switching your database view from development to live

When viewing your application's data (through `Data` > `App data` in the Bubble editor), it is critical that your data view matches the version of your app that you are examining. To switch views between the Development and Production database, simply click the red "Switch to Live" (or "Switch to Dev.") button in the top right.

#### Copying over your database from development to live (and vice versa)

After you initially deploy your app to live, **please copy over the development database to the production version**.

* While its not critical to migrate every piece of test data to the live version, there are certain data types (and instances of those data types) that are necessary to retain in both versions for various reasons
* Because of this, it is highly recommended that you copy over the entire database and then delete certain bits of test data that are not needed
* In any case, there are a few data types you'll want to make sure you've copied over
  * Each database version should include **exactly one** instance of the `Website` data type
  * If you want to retain the ability to customize your homepage, make sure you've copied over **all 11 entries for the** `Homepage block` **data type**
  * Similarly, if you want to retain the specific blocks of content you've configured for the homepage, make sure you've copied over **all entries for the** `Block entry` **data type**

To copy over database versions, click the red "Copy and restore database" button in the top right.&#x20;

![](https://406542698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaSPHO3_MVlFI7s3dpf%2F-LcWrf1TmLy5NN7fHZH_%2F-LcWrmfJb1zP4oXzyn5S%2FScreen%20Shot%202019-04-11%20at%2010.07.26%20AM.png?alt=media\&token=64776ff7-770b-4188-bdcc-6e100bf5360f)

* From this modal, select the option for **Copy development data into the live database**
* Next, choose **All types**
* After you've made sure you've selected the appropriate options, type in the requested text and click to confirm the migration

![](https://406542698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaSPHO3_MVlFI7s3dpf%2F-LcWrf1TmLy5NN7fHZH_%2F-LcWrkVCY9kwksDEaV2p%2FScreen%20Shot%202019-04-11%20at%2010.08.29%20AM.png?alt=media\&token=e363c6d3-3b09-4da1-96b0-bbf62449337c)

## **Other critical things to note**

* [Groups](https://docs.airdev.co/events-platform-template/general-information/design-and-layout/pages-groups-and-popups#standard-group) on the same page should be stacked vertically (not overlapping)
* Use Canvas app [reusables elements](https://docs.airdev.co/events-platform-template/assets/reuseables) to reduce redundancy in workflows
* Store results of URL parameters, search results that to be referenced in multiple places, or calculation results based on an input on the page in the [“Hidden variables” popup](https://docs.airdev.co/events-platform-template/general-information/functionality/hidden-variables-popup) on each page
* [Privacy rules](https://docs.airdev.co/bubble-development-guide/steps/plan/database-structure#privacy-rules) need be to set up for all new objects created


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.airdev.co/events-platform-template/quickstart-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
