# PWC Plugin List

**URL:** <https://forum.bubble.io/t/pwc-plugin-list/44276>\
**Category:** Showcase\
**Created:** [December 8, 2018, 12:12pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276 "2018-12-08T12:12:03Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [December 8, 2018, 12:12pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/1 "2018-12-08T12:12:03Z")

</div>

![prem](https://us1.discourse-cdn.com/bubble/original/3X/a/e/ae1f77a3429c42fa85746fcd158b8598e1739b9d.jpeg)  
**Hello Bubble members!**

**We wanted to open a new thread to list our plugins & provide a space to allow questions & answers relating to them. Please look below to see our available plugins.**

* * *

**[Upload Informer](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)**

![ui](https://us1.discourse-cdn.com/bubble/original/3X/d/c/dc0435395826bd2853495cb64cb8811fc25597c0.jpeg)

_Upload Informer automatically works with default Bubble file upload elements, HTML file input elements & other file upload plugins. The events fire & collect information about an upload elements file each time a user interacts with an upload element. Upload Informer reads the file client-side using the users browser, then provides custom states for it’s name, size, MIME, file type, Base64 & Base64 URL allowing you to run the reject or approve action’s before saving the file in your database. The reject action simply clears the file while the accept action allows you to override the file name before uploading the file directly to your database & providing the new Bubble URL. This plugin is best for single file uploads for better control, that said we have added some multi file element support for the first file. If demand for multi file analysis rises we can look at changing it._

Try the [DEMO](https://pwc-file-informer.bubbleapps.io/).

* * *

[Chrome Theme Color](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)

![ch](https://us1.discourse-cdn.com/bubble/original/3X/5/6/56537145837a3fe8ac93b7a33340a69f05b3835e.jpeg)

_Give your Android users a unique look when using a chrome version 39^ browser by showing your own color in the address/status bar._

Try the [DEMO](http://pwc-theme.bubbleapps.io).

* * *

[Visual Effect’s (UI/UX)](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)

![ux](https://us1.discourse-cdn.com/bubble/original/3X/9/f/9f0ecae034d9d42ffda34ecec29c8ed075745210.jpeg)

FREE - Visual Effects for your app.

Try the [DEMO](https://pwc-ui-effects.bubbleapps.io/)

* * *

[Prefetch - Load Resources Faster](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)

![pre](https://us1.discourse-cdn.com/bubble/original/3X/9/3/935558a35ed3c820dee013a7702c0e2342dbef98.jpeg)

Prefetch your images, audio, video, pages & other resources to give your users a faster experience. No more delay while an image renders!

Try the [DEMO](https://pwc-prefetch.bubbleapps.io). (Keep in mind the galaxy image that you see in this demo is a **70 Megapixel** image.)

* * *

[Road Data](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)

![road](https://us1.discourse-cdn.com/bubble/original/3X/8/c/8c1543381c2ed99f1a000ec1150e9da37a6548dd.jpeg)

Does your app require road data such as speed, number of lanes, surface type (paved), category (highway), Latitude, Longitude, Bounding Box lat & lng for map inputs + MORE?

[Try the DEMO](https://pwc-road-data.bubbleapps.io).

* * *

**Keep your eyes out for more plug-ins as they become available**.

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [December 8, 2018, 5:06pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/2 "2018-12-08T17:06:25Z")

</div>

**New Plugin**

* * *

[Magnify-able](https://bubble.io/contributor/premiercode-1535163219105x248740260489285000)

 ![clue](https://us1.discourse-cdn.com/bubble/original/3X/0/f/0f6aa0cb83b9cbc116b3a7c16262163f3ae2e2e7.jpeg)

Show a custom Magnifying Glass over images in your Bubble App. Allowing control over element, glass size, zoom power, inner color & outer color gives your app great ability in this area.

![magnify](https://us1.discourse-cdn.com/bubble/original/3X/c/e/ceec07a9bfcad3b0be2f3cafb0819e5f8930a2cb.gif)

Try the [DEMO](https://pwc-mag-demo.bubbleapps.io/).

---

<div class="post-metadata">

**Author:** ![sharma.rope](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/sharma.rope/32/26437_2.png) [@sharma.rope](https://forum.bubble.io/u/sharma.rope)\
**Post date:** [December 8, 2018, 5:42pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/3 "2018-12-08T17:42:13Z")

</div>

Seems silly that this isn’t already available! I can’t see it in the store yet so I guess it hasn’t finished deploying?

I will be subscribing to this and thank you for opening her up for me its going to provide more of an open store feel to my clients.

---

<div class="post-metadata">

**Author:** ![sharma.rope](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/sharma.rope/32/26437_2.png) [@sharma.rope](https://forum.bubble.io/u/sharma.rope)\
**Post date:** [December 8, 2018, 6:13pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/5 "2018-12-08T18:13:17Z")

</div>

@hikaru, thanks for the tip! Not the first time a dirty browser cache has played games with me though. I was referring to the fact that this plug-in does not yet seem to be listed in the plug-in list.

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [December 8, 2018, 6:30pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/7 "2018-12-08T18:30:21Z")

</div>

Thanks for your interest - Although Bubble is usually fast to approve our work, we still like pop updates here so expect this plugin to be avail. shortly.

Thanks again for your support.

---

<div class="post-metadata">

**Author:** ![sharma.rope](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/sharma.rope/32/26437_2.png) [@sharma.rope](https://forum.bubble.io/u/sharma.rope)\
**Post date:** [December 8, 2018, 6:34pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/8 "2018-12-08T18:34:27Z")

</div>

Thought this may have been the case. Can’t wait still!

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 11:29am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/9 "2019-02-13T11:29:54Z")

</div>

New Plugin

**Ribbit**

![com_appforest_uf_f1548297867146x741144735331598700_ribbit](https://us1.discourse-cdn.com/bubble/original/3X/e/b/eb8affa2800ffdcdf1aeb7cb2afd82080e6a0718.jpeg)

Edit all your photos in one easy place with Ribbet.

[Demo](https://pwc-ribbet.bubbleapps.io/)

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 11:32am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/10 "2019-02-13T11:32:15Z")

</div>

New Plugin

**IPInfoDB**

![com_appforest_uf_f1545621193899x260843982924632280_logo-large](https://us1.discourse-cdn.com/bubble/original/3X/6/2/62114a2e5dd59d3c72e38d6f97698375a26d60b2.png)

View a users IP, Longitude, Latitude, Country, Timezone & more.

[Demo](https://pwc-ip-demo.bubbleapps.io)

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 11:35am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/11 "2019-02-13T11:35:07Z")

</div>

New Plugin

**Anything To Image**

 ![com_appforest_uf_f1549871776640x652712731030469200_191-512](https://us1.discourse-cdn.com/bubble/original/3X/8/b/8b1a5a9356ccd3da749f49177954d6e0bdb3f4ac.png)

Turn your anything into an IMAGE & includes convert to PDF, Both are uploaded to your Bubble database.

[Demo](https://pwc-anythingtoimage.bubbleapps.io)

---

<div class="post-metadata">

**Author:** ![Bubbleboy](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/bubbleboy/32/19512_2.png) [@Bubbleboy](https://forum.bubble.io/u/Bubbleboy)\
**Post date:** [February 13, 2019, 12:44pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/12 "2019-02-13T12:44:58Z")

</div>

@PWC… I know this might be an obvious question but just for completeness would you be kind enough to confirm if this can include an image as part of the group/element which in turn would be converted to an image. I assume this works on the entire page also with embedded images?

---

<div class="post-metadata">

**Author:** ![bosunjohnson](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/bosunjohnson/32/34541_2.png) [@bosunjohnson](https://forum.bubble.io/u/bosunjohnson)\
**Post date:** [February 13, 2019, 12:51pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/13 "2019-02-13T12:51:34Z")

</div>

Sweet

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 1:48pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/14 "2019-02-13T13:48:26Z")

</div>

@Bubbleboy I can confirm that the code incorporates a fix for the image issue. In the demo we turn a group containing an image, text, a button, an input, a checkbox and an icon into an image then use the convert image to PDF action (just added this to the [demo](https://pwc-anythingtoimage.bubbleapps.io/)). The result is exactly as it’s seen on the page.

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 1:50pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/15 "2019-02-13T13:50:25Z")

</div>

I would like to add that this provides an option for many images in a group or the page to become a single image or PDF.

---

<div class="post-metadata">

**Author:** ![Bubbleboy](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/bubbleboy/32/19512_2.png) [@Bubbleboy](https://forum.bubble.io/u/Bubbleboy)\
**Post date:** [February 13, 2019, 1:55pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/16 "2019-02-13T13:55:54Z")

</div>

@PWC thank you for the quick reply and confirmation… Exemplary!

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [February 13, 2019, 1:56pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/17 "2019-02-13T13:56:54Z")

</div>

Most welcome 👍

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [March 23, 2019, 6:12pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/18 "2019-03-23T18:12:49Z")

</div>

Some new additions:

[https://bubble.io/plugin/3d-anything-1553021515182x641466953369387000](https://bubble.io/plugin/3d-anything-1553021515182x641466953369387000)

DEMO - [https://pwc-3d-anything.bubbleapps.io](https://pwc-3d-anything.bubbleapps.io)

[https://bubble.io/plugin/blobby-frame-1553157304763x376760415851380740](https://bubble.io/plugin/blobby-frame-1553157304763x376760415851380740)

DEMO - [https://pwc-blobby-frame-demo.bubbleapps.io](https://pwc-blobby-frame-demo.bubbleapps.io)

Thanks!

---

<div class="post-metadata">

**Author:** ![PWC](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/pwc/32/29669_2.png) [@PWC](https://forum.bubble.io/u/PWC)\
**Post date:** [March 28, 2019, 10:19am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/19 "2019-03-28T10:19:28Z")

</div>

Keep an eye out for a couple of new releases.

**Data Layer**

 ![DataLayerstack](https://us1.discourse-cdn.com/bubble/original/3X/3/e/3eb168255cdafdba3062e3da0b0d4c64254c2fcd.png)  
Make your data instantly available, synced with your Firebase project & updating in real time!

- Export Your Bubble Data
- Sync Across Different Apps
- Offline Persistent Storage
- Run Data as JavaScript / jQuery
- Search a Term Through the Entire Data Layer

* * *

_Note_: Firebase Firestore is **HIPAA** compliant as long as you comply with the [Security Rule](https://www.hhs.gov/hipaa/for-professionals/security/index.html?language=es), the [Privacy Rule](https://www.hhs.gov/hipaa/for-professionals/privacy/index.html?language=es) & the [Breach Notification Rule](https://www.hhs.gov/hipaa/for-professionals/breach-notification/index.html?language=es).

* * *

# 

What is the Data Layer?

The Data Layer is your Firebase Firestore Data & Bubble Data (if you wish) formatted as JSON. The Data Layer is updated in real time from your Firebase Database & as often as you like from your apps database.

# 

Does this work offline?

Yes, one of the features the Premier Data Layer has is when your users go offline, any values, portion of the Data Layer or pre-selected event data is cached and once the connection is restored the new values are synchronized with the server.

# 

Where do I find my Firebase details?

In your [Firebase Console](https://console.firebase.google.com/), choose your project, then navigate to **‘Authentication’** and click **‘Web Setup’**. You will see the ID/Keys that are required here.

Make sure you only copy the values without the quotes, for example this line,

`projectId: "my-firebase-project",`

Would mean your ID is, `my-firebase-project`

# 

Can I export my Bubble Data to Firebase or the Data Layer?

Yes, We have included a server side action to pull your Bubble Data using the Bubble GET API so you can easily push the result to your Firebase Database using the update action or add to data layer action afterwards.

# 

Does the Plugin deal with Authentication for the user?

Yes, We have allowed for both Email/Password sign in & Anonymous sign in. By using the Firebase Privacy Rules you can restrict the data as required then even if you request all data to be available in the Data Layer only the data that matches your rules will be available.

# 

Can I create functions that work online & offline?

Yes, Using the **‘Run Data as JS’** action you can perform JavaScript tasks even while offline by saving the JS in your database. A good example of this is to have a Firebase Main Collection with a sub-collection called JS, now create a new string `{Key: "Value"}` pair and call the field offline & set the value to:

`document.write("<!doctype html> Site Maintenance body { text-align: center; padding: 150px; } h1 { font-size: 50px; } body { font: 20px Helvetica, sans-serif; color: #333; } article { display: block; text-align: left; width: 650px; margin: 0 auto; } a { color: #dc8100; text-decoration: none; } a:hover { color: #333; text-decoration: none; } We’ll be back soon!")`

Now in your Bubble app you can use the **‘Data Offline’** event to run the **‘Run Data as JS’** action and point the action to your above code stored in the Database. The result will be a nice offline page when the internet is disconnected. Of coarse you can expand on this and feature some code in the above snippet to listen for the connection and redirect back to your page, where as promised any data changes will be synchronized both to & from your Firebase Database.

# 

What actions are available?

- Initialize Data Layer

- Get Data

- Write Data

- Get Value for Inputs

- Post Data To Endpoint

- Create New User

- Log User In

- Log User Out

- Run Data as JS

- Export Bubble Data Part 1 & Part 2

- Add Data to Layer

- Search Data Layer

- Make Data Offline

- Make Data Online

- Delete Data

- Clear Data Layer

# 

What custom states are available?

- String Output

- Number Output

- Boolean Output

- Search Results (list)

- Logged In

- Display Name

- Email

- Email Verified

- Photo URL

- Is Anonymous

- User UID

- Provider Data (JSON)

- Data Offline

# 

What events are available?

- Data Layer Updated

- Signed out

- Signed In

- Search Finished

- Data Offline

- Data Online

- Data Deleted

The ‘Data Layer Updated’ event is fired each time the Data Layer changes, this includes if another app was to update the Firebase database as any changes to the Firebase database will trigger this event while online. If the app is offline the event will fire when the app connects again.

# 

Basic Usage:

Once you have setup your [Firebase Console](https://console.firebase.google.com/) & finished adding the required values into the plugin settings tab, your can place the **‘Data Layer’** element on each page its required on. Once this element is on a page you will then have access to its actions & states.

**Ensure only ONE** _ **‘Data Layer’** _ **element is placed on each page.**

If you have `public` data you wish to use in your Firebase Database, you should add a **‘Initialize Data Layer’** action in an **‘On Page Load’** event and define the Main Collection name(s).

**If you want to initialize more than one Main Collection, you can separate them with a comma.**

**Example:** _`Site_Assets,Public_Data,JS`_

You can use the **‘Initialize Data Layer’** as many times as you like. This should be done in cases such as a user has signed in or out using the plugin events as such. This is because you may initialize on page load a Main Collection called `public_data` because the user is not yet signed in then once the **‘Signed In’** event fires you can initialize ` public_data,user_data` . You must include the `public_data` again because calling **‘Initialize Data Layer’** also clears the Data Layer so that any Main Collection that is not included is no longer part of the Data Layer to prevent data remaining that should no longer be available.

The events for **‘Signed In’** & **‘Signed Out’** fire on page load so if a user is logged in and returns to your site then the relevant event will fire automatically. This is also true for other events such as **‘Data Offline’,**  **‘Data Online’** & **‘Data Layer Updated’.**

Now that the Data Layer is setup you can start making use of the other element action’s to read, write & delete data & also export your bubble data or post the Data Layer JSON to your apps workflow API.

The **‘Export Bubble Data’** action comes in two parts, first you need to run the **‘Export Bubble Data (1)’** action followed by the **‘Export Bubble Data (2)’** action. To use the export actions you need to enable your apps Data API (GET), check all `'things' ` you want to export & generate an API key. The API Key is required in the plugin’s settings in the field `Bubble Data API Key` .

Exporting is as simple as defining your Data API’s URL for the thing your exporting, then using the resulting JSON in the **‘Export Bubble Data (2)’** action.

If your `'thing'` was for example `'user'` , then your API URL would look like this,

Run Mode: **`https://your-bubble-app.bubbleapps.io/api/1.1/obj/user`**

Version-Test Mode: **`https://your-bubble-app.bubbleapps.io/version-test/api/1.1/obj/user`**

The resulting data in your Firebase Database will be structured as follows:

**user (Main Collection) / unique\_id (List of Thing’s ID’s) / this\_users\_data (JSON Data of this Thing)**

* * *

**Get Web Page’s**

 ![logo1](https://us1.discourse-cdn.com/bubble/original/3X/d/a/da21812d94021c50c6be9384a96c6fd9359f3110.png)  
Server-Side action that will fetch the HTML for a requested site & return the `HTML`, The `<head>`, `<style>`, `<body>` & `escaped HTML`. The plugin automatically deals with images & links that do not have a host.

* * *

**Will post the demo apps once they are done being published** 🙂

Thanks ,  
@PWC

---

<div class="post-metadata">

**Author:** ![luke2](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/luke2/32/256674_2.png) [@luke2](https://forum.bubble.io/u/luke2)\
**Post date:** [March 28, 2019, 10:43am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/20 "2019-03-28T10:43:34Z")

</div>

Very interesting, nice work - worthy of a new post in the showcase section for wider reach (as some people subscribe to new posts within that topic section)

---

<div class="post-metadata">

**Author:** ![luke2](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/luke2/32/256674_2.png) [@luke2](https://forum.bubble.io/u/luke2)\
**Post date:** [March 28, 2019, 10:46am UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/21 "2019-03-28T10:46:50Z")

</div>

Again nice work 👍, if I might add, it could do with just a little documentation as it goes a long way.

---

<div class="post-metadata">

**Author:** ![anon65040322](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@anon65040322](https://forum.bubble.io/u/anon65040322)\
**Post date:** [March 28, 2019, 12:44pm UTC](https://forum.bubble.io/t/pwc-plugin-list/44276/22 "2019-03-28T12:44:26Z")

</div>

impressive

[Next page](https://forum.bubble.io/t/pwc-plugin-list/44276.md?page=2)
