# Connect your app to a data source

> Discover how to connect your application to various data sources, whether via the PandaSuite Datastore or external solutions like Airtable or Cloud Firestore. Learn the advantages of each option to manage your data effectively.

https://docs.pandasuite.com/essentials/data/connect-your-app-to-a-data-source/

**Connect your application to any data source. Depending on your needs, create your own data model with the PandaSuite Datastore or connect to an existing database (Airtable, Cloud Firestore, or any REST API).**

[Video: Introduction to data sources](https://www.youtube.com/embed/ISpSyGgCK1Q?&hl=en&cc_lang_pref=en&cc_load_policy=1)

Not every app needs data. But if you want to manage products, scores, users, or any dynamic content, you need to connect your app to a data source.

A data source can be internal (stored on the device) or external (fetched via a server call). You can also combine multiple data sources within the same app.

## Which source should you use?

| Source                                                                               | Best for                                                     |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------ |
| [Datastore](https://docs.pandasuite.com/essentials/data/datastore/)                  | Per-user local data (scores, preferences, editorial content) |
| [Firebase](https://docs.pandasuite.com/essentials/components/firebase-session/)      | User sessions, data shared across devices                    |
| [Airtable](https://docs.pandasuite.com/essentials/integrations/connect-to-airtable/) | Content already hosted in Airtable                           |
| [REST API](https://docs.pandasuite.com/essentials/components/http/)                  | Any existing external data source                            |

## Datastore

[Image: Datastore: the people collection with Name, Achievements and Category columns]

The [Datastore](https://docs.pandasuite.com/essentials/data/datastore/) is PandaSuite's internal data source. The data is authored in Studio, hosted on PandaSuite servers, and then stored locally on each user's device. It can be refreshed via an internet connection.

Changes made from the app stay local to the device and are not linked to a user account. They persist after the app is closed, but are deleted if the user uninstalls the app.

The Datastore is useful for:

- managing [variables](https://docs.pandasuite.com/essentials/data/variables/) for local use (bookmarks, user selections, quiz scores)
- displaying collections that require advanced PandaSuite components (HD Image, for example).

## External data sources

PandaSuite connects to any external source via an API. Even from an external source, your data is **available offline**: PandaSuite handles caching and API pagination options.

### Cloud Firestore

[Image: Firebase console, Cloud Firestore Data tab: a users collection whose selected document holds email, name, and score fields]

[Firebase](http://firebase.google.com/) is Google's mobile app development platform. [Cloud Firestore](https://firebase.google.com/docs/firestore) is its cloud-based NoSQL database for storing and synchronizing data.

It allows you to manage user sessions and authentication. Each authenticated user has a unique identifier, and you can retrieve, create, update, or delete their associated data from your app.

To connect your app to Cloud Firestore, insert a [Firebase Session](https://docs.pandasuite.com/essentials/components/firebase-session/) component.

### Airtable

[Image: Airtable base Pandimmo in grid view: property listings with Name, Description, Image, Address, Price, and Type columns]

Airtable combines spreadsheet and database. It's an ideal solution if you want team members to edit content directly, without going through PandaSuite Studio.

Airtable is useful for:

- Visually managing content via rows and columns
- Giving non-technical users access to edit content
- Generating dynamic content from a collection

To connect your app to Airtable, use the **HTTP** component: [Connect to Airtable](https://docs.pandasuite.com/essentials/integrations/connect-to-airtable/)

### Other data source

You can connect to any other data source via an API. To do so, use the [HTTP](https://docs.pandasuite.com/essentials/components/http/) component.
