@@ -32,6 +23,6 @@ Make sure you pick the backend you want to use for the deploy.
## Hosting your Frontend at GCP or AWS
-- **Google Cloud Platform** If you would like use GCP to host the frontend you can follow this [guide](https://cloud.google.com/storage/docs/hosting-static-website). There you will create a bucket, a load balancer and a CDN.
+- **Google Cloud Platform** If you would like use GCP to host the frontend you can follow this [guide](https://cloud.google.com/storage/docs/hosting-static-website). There you will create a bucket, a load balancer and a CDN.
-- **Amazon Web Services** If you prefer to use AWS you can watch this [video](https://www.youtube.com/watch?v=BpFKnPae1oY&ab_channel=AmazonWebServices) it will explain how to create an S3 bucket and how to route traffic using the AWS DNS service, Route 53.
+- **Amazon Web Services** If you prefer to use AWS you can watch this [video](https://www.youtube.com/watch?v=BpFKnPae1oY&ab_channel=AmazonWebServices) it will explain how to create an S3 bucket and how to route traffic using the AWS DNS service, Route 53.
diff --git a/docs/guides/deploy/overview.md b/docs/guides/deploy/overview.md
index adfa580..d1fc4d4 100644
--- a/docs/guides/deploy/overview.md
+++ b/docs/guides/deploy/overview.md
@@ -2,9 +2,12 @@
title: Deploying and hosting Noodl apps
hide_title: true
---
+
# Deploying and hosting Noodl apps
-Noodl have it's own hosting infrastructure which makes it very easy to deploy Noodl app. You can also use your own custom domain to point to the app if you have one.
-If you for some reason want to host the frontend and/or the backend on you own infrastructure that's also possible.
+Noodl allows you to export your frontend and backend so that you can host it on your own servers.
-### [Start learning about hosting and deployment of Noodl apps](/docs/guides/deploy/deploying-an-app-on-sandbox)
\ No newline at end of file
+- [Learn about deploying the frontend](/docs/guides/deploy/hosting-frontend)
+- [Learn about deploying the backend on AWS](/docs/guides/deploy/setting-up-backend-on-aws)
+- [Learn about deploying the backend on GCP](/docs/guides/deploy/setting-up-backend-on-gcp)
+- [Learn about deploying to iOS and Android](/docs/guides/deploy/deploying-to-ios-and-android)
diff --git a/docs/guides/deploy/setting-up-backend-on-aws.md b/docs/guides/deploy/setting-up-backend-on-aws.md
index 8633183..622f111 100644
--- a/docs/guides/deploy/setting-up-backend-on-aws.md
+++ b/docs/guides/deploy/setting-up-backend-on-aws.md
@@ -39,7 +39,7 @@ You can choose if you want to manually control when you redeploy and instance. T
On the next screen you provide a **name** for your service and you can change settings for service. For the most part you can keep the standard settings but a few needs to be changed.
-* **Port** The port of the application needs to be set to **3000**
+- **Port** The port of the application needs to be set to **3000**
You also need to provide a few environment variables to the instance. You do this using the **Add environment variable** button.
@@ -51,15 +51,15 @@ You also need to provide a few environment variables to the instance. You do thi
The following variables are needed:
-* **APP_ID** You can choose this yourself, you need to provide it in the Noodl editor when connecting to your backend.
-* **MASTER_KEY** This you be a password that you need to keep safe. With this password you get full access to your backend, this is also needed to connect to your backend from Noodl.
-* **DATABASE_URI** This is the database url that you got when setting up the MongoDB database in the previous step. This can also be a Postgres url.
+- **APP_ID** You can choose this yourself, you need to provide it in the Noodl editor when connecting to your backend.
+- **MASTER_KEY** This you be a password that you need to keep safe. With this password you get full access to your backend, this is also needed to connect to your backend from Noodl.
+- **DATABASE_URI** This is the database url that you got when setting up the MongoDB database in the previous step. This can also be a Postgres url.
-* **PUBLIC_SERVER_URL** (Optional) This is needed if you want to support file uploads and downloads, in that case you might need to go back here and update this environment variable after you have received the URL in the next step. This variable should be the public url where your clour services can be reached, starting with `https://`.
+- **PUBLIC_SERVER_URL** (Optional) This is needed if you want to support file uploads and downloads, in that case you might need to go back here and update this environment variable after you have received the URL in the next step. This variable should be the public url where your clour services can be reached, starting with `https://`.
With that in place you can move on to reviewing your settings and deploying your service. It might take a few minutes to completely setup you new service.
-Once the service is up and running the last step is to find the URL of the service. You can find it by navigating to the service details page. It will look something like this:
+Once the service is up and running the last step is to find the URL of the service. You can find it by navigating to the service details page. It will look something like this:
@@ -67,21 +67,15 @@ Once the service is up and running the last step is to find the URL of the servi
-
With that URL, master key and app id in hand, [go back](/docs/guides/deploy/using-an-external-backend#connect-your-application-to-the-self-hosted-backend) to the self hosting guide.
# File storage
If you want to support file upload and download, you need to specify the **PUBLIC_SERVER_URL** environment variable as noted above. By default the files will be stored in the database of your application, but if you instead want to use an S3 bucket for storage you need to create a bucket, and policy, you can find instructions on that [here](http://docs.parseplatform.org/parse-server/guide/#configuring-s3adapter). Then specify these additional environment variables:
-* **S3_ACCESS_KEY** The AWS access key for a user that has the required permissions. Required.
-* **S3_SECRET_KEY** The AWS secret key for the user. Required.
-* **S3_BUCKET** The name of your S3 bucket. Needs to be globally unique in all of S3. Required.
-* **S3_REGION** (Optional) The AWS region to connect to. Default: ‘us-east-1’
-* **S3_BUCKET_PREFIX** (Optional)Create all the files with the specified prefix added to the filename. Can be used to put all the files for an app in a folder with ‘folder/’.
-* **S3_DIRECT_ACCESS** (Optional)Whether reads are going directly to S3 or proxied through your Parse Server. If set to true, files will be made publicly accessible, and reads will not be proxied. Default: false
-
-
-
-
-
+- **S3_ACCESS_KEY** The AWS access key for a user that has the required permissions. Required.
+- **S3_SECRET_KEY** The AWS secret key for the user. Required.
+- **S3_BUCKET** The name of your S3 bucket. Needs to be globally unique in all of S3. Required.
+- **S3_REGION** (Optional) The AWS region to connect to. Default: ‘us-east-1’
+- **S3_BUCKET_PREFIX** (Optional)Create all the files with the specified prefix added to the filename. Can be used to put all the files for an app in a folder with ‘folder/’.
+- **S3_DIRECT_ACCESS** (Optional)Whether reads are going directly to S3 or proxied through your Parse Server. If set to true, files will be made publicly accessible, and reads will not be proxied. Default: false
diff --git a/docs/guides/deploy/using-an-external-backend.md b/docs/guides/deploy/using-an-external-backend.md
index 8e348da..7833aaa 100644
--- a/docs/guides/deploy/using-an-external-backend.md
+++ b/docs/guides/deploy/using-an-external-backend.md
@@ -2,36 +2,33 @@
title: Using a self hosted backend
hide_title: true
---
+
# Using a self hosted backend
## What you will learn in this guide
-This guide will let you create a self hosted backend with an external database. This is an alternative to using an **Noodl Hosted Cloud Services**. Some reasons why you might want to do this could be:
+This guide will let you create a self hosted backend with an external database. This is an alternative to using a built on **Noodl Cloud Service**. Some reasons why you might want to do this could be:
-- You want to host your own database, maybe to ensure where data is stored or other privacy reasons.
-- You want to host your own backend on a cloud service such as AWS or Google Cloud Platform.
-
-:::note
-**Self Hosting**
Note: To be able to follow this guide you must have "Self Host" feature enabled. This is not available in the free Noodl plan. But you can request a trial [here](https://noodl.net/plans).
-:::
+- You want to host your own database, maybe to ensure where data is stored or other privacy reasons.
+- You want to host your own backend on a cloud service such as AWS or Google Cloud Platform.
## Overview
We will go through the follwing steps
-- Set up a Database cluster on MongoDB Atlas (any MongoDB or Postgres database is supported)
-- Spin up a container with the Noodl backend docker image.
-- Connect to the self hosted backend from your Noodl project.
+- Set up a Database cluster on MongoDB Atlas (any MongoDB or Postgres database is supported)
+- Spin up a container with the Noodl backend docker image.
+- Connect to the self hosted backend from your Noodl project.
## The different parts of a Noodl App
As a background it's good to know that a Noodl App consists of three parts:
-- **The database** All Noodl applications must be backed by a database, you can use either a MongoDB or Postgres compatible database. This is where users and other records are stored. Nodes like **Query Records** access the database via the backend web service.
+- **The database** All Noodl applications must be backed by a database, you can use either a MongoDB or Postgres compatible database. This is where users and other records are stored. Nodes like **Query Records** access the database via the backend web service.
-- **The backend service** This is the Noodl backend service that is provided via a Docker image and an instance can be started on most cloud providers. The Noodl backend is based on and compatable with the [Parse Platform](https://parseplatform.org) which is a great choice for a backend service. A solid open source project with an active foundation supporting many of the critical functions needed.
+- **The backend service** This is the Noodl backend service that is provided via a Docker image and an instance can be started on most cloud providers. The Noodl backend is based on and compatable with the [Parse Platform](https://parseplatform.org) which is a great choice for a backend service. A solid open source project with an active foundation supporting many of the critical functions needed.
-- **Static frontend hosting** Noodl applications are SPAs (Single Page Applications) and need a place that serves the application frontend created when you deploy your application from Noodl. You can use a **Noodl hosted** frontend, with a custom domain, together with a self hosted backend, or you can host the frontend yourself as well.
+- **Static frontend hosting** Noodl applications are SPAs (Single Page Applications) and need a place that serves the application frontend created when you deploy your application from Noodl.
This guide will look at setting up your own self hosted **Database** and **Backend**.
@@ -51,7 +48,6 @@ You can start by choosing the free plan (you can always upgrade later) and then
Once your database is up and running you need to get the connection details for the next step. First you need to obtain the password of the **Admin** user. You will find your database users under the **Database Access** section.
-

@@ -90,7 +86,7 @@ Now you need to copy and keep the connection URI shown below. It will look somet
mongodb+srv://Admin:
@cluster0.xxxxxxx.mongodb.net/?retryWrites=true&w=majority
```
-You need to replace the `````` with the **Admin** password you generated before. Also, insert the name of your database in the url, you can pick any name, let's call it `noodldb`, your final URL should look something like this:
+You need to replace the `` with the **Admin** password you generated before. Also, insert the name of your database in the url, you can pick any name, let's call it `noodldb`, your final URL should look something like this:
```bash
mongodb+srv://Admin:@cluster0.xxxxxxx.mongodb.net/noodldb?retryWrites=true&w=majority
@@ -102,10 +98,9 @@ Keep this URI safe as it will have full access to your database.
Next up we will deploy an instance of the Noodl backend service that we will point our application to. We provide guides for setting up Noodl on Amazon Web Services or Google Cloud Platform, follow the links below and set up the container. When you are ready you can proceed to the **Connect your application to the self hosted backend** below.
-* **Setting up a backend on AWS** Make sure you have an AWS account created and then follow [this guide](/docs/guides/deploy/setting-up-backend-on-aws).
-
-* **Setting up a backend on GCP** Make sure you have account on Google Cloud Platform created and then follow [this guide](/docs/guides/deploy/setting-up-backend-on-gcp).
+- **Setting up a backend on AWS** Make sure you have an AWS account created and then follow [this guide](/docs/guides/deploy/setting-up-backend-on-aws).
+- **Setting up a backend on GCP** Make sure you have account on Google Cloud Platform created and then follow [this guide](/docs/guides/deploy/setting-up-backend-on-gcp).
### Connect your application to the self hosted backend
@@ -135,17 +130,17 @@ Create a new cloud service. Make sure the **Self Hosted** checkbox is checked:
Fill out the information
-- **Name** - Any name you want. This will be the name of the backend in the list of backends.
-- **Description** - Some descriptive text of the backend.
-- **Endpoint** - This is the url to the backend service you have created in the previous step.
-- **Application id** - This is the application id that you provided when setting up the backend service in the previous step. It's simply and identifier of your own choosing.
-- **Masterkey** - This is the master key to the backend service you created in the previous step. It is needed by the editor to access the database for the dashboard, query nodes etc. This is stored locally and encrypted. You need to keep this safe as with it you have full access to your backend and database.
+- **Name** - Any name you want. This will be the name of the backend in the list of backends.
+- **Description** - Some descriptive text of the backend.
+- **Endpoint** - This is the url to the backend service you have created in the previous step.
+- **Application id** - This is the application id that you provided when setting up the backend service in the previous step. It's simply and identifier of your own choosing.
+- **Masterkey** - This is the master key to the backend service you created in the previous step. It is needed by the editor to access the database for the dashboard, query nodes etc. This is stored locally and encrypted. You need to keep this safe as with it you have full access to your backend and database.
You can make some quick tests, for example opening the **Dashboard** and create a **Class** to see that it works. That's it, now you have a self hosted Noodl cloud services up and running.
-## Migrating from a Noodl hosted cloud service
+## Migrating from a Noodl cloud service
-If you are migrating from a Noodl hosted cloud service we can provide you with a database dump that you can use to restore your new database to, [email support to request](mailto:support@noodl.net). Once you have the backup file you need to install the MongoDB database tools, you can find instructions [here](https://www.mongodb.com/docs/database-tools/installation/installation/).
+If you are migrating from a Noodl cloud service we can provide you with a database dump that you can use to restore your new database to, [email support to request](mailto:support@noodl.net). Once you have the backup file you need to install the MongoDB database tools, you can find instructions [here](https://www.mongodb.com/docs/database-tools/installation/installation/).
Then you will use the following command to migrate your data:
diff --git a/docs/guides/user-interfaces/figma-plugin.md b/docs/guides/user-interfaces/figma-plugin.md
index 3c0ed82..96b94f0 100644
--- a/docs/guides/user-interfaces/figma-plugin.md
+++ b/docs/guides/user-interfaces/figma-plugin.md
@@ -50,11 +50,11 @@ Here's the same node duplicated in Noodl, with a different source and border rad
All text styles used by exported text layers will automatically be imported.
-?> Figma uses the fonts you have installed on your system. In Noodl apps the required font files have to be defined in your projects. You can [import fonts via Google Fonts](https://www.youtube.com/watch?v=lgMZZC6XoAs) or [via font files](https://www.youtube.com/watch?v=P76v0Q38eKI)
+Figma uses the fonts you have installed on your system. In Noodl apps the required font files have to be defined in your projects. You can [import fonts via Google Fonts](https://www.youtube.com/watch?v=lgMZZC6XoAs) or [via font files](https://www.youtube.com/watch?v=P76v0Q38eKI)
-?> Note that the text styles was added to the styles tab in Noodl 
+Note that the text styles was added to the styles tab in Noodl 
## Export complex shapes
diff --git a/docs/guides/user-interfaces/layout.mdx b/docs/guides/user-interfaces/layout.mdx
index d47e848..6b3efca 100644
--- a/docs/guides/user-interfaces/layout.mdx
+++ b/docs/guides/user-interfaces/layout.mdx
@@ -32,7 +32,7 @@ The **Group** node is the most central node for doing a layout. It's the fundame
**Group** nodes are arranged in a hierarchy and can have other nodes as children. It controls the layout of its children and there are a number of properties that can be used to specify how the children of a **Group** node will be laid out. You can copy the various node examples used in this guide by clicking "Copy nodes" and then pasting into a Noodl project.
@@ -99,7 +99,7 @@ Next, create the two states.
@@ -110,7 +110,7 @@ We will also specify **Values** for each of our states. In the same way you adde
@@ -119,11 +119,11 @@ Specify the value for each state. The X position should be **40** when the switc
@@ -131,7 +131,7 @@ Specify the value for each state. The X position should be **40** when the switc
Connect the **Knob X** output of the **States** node to the **Pos X** input of the **Circle** node.
-

+
As you can see the **States** node will get an output corresponding to each value that is defined under **Values**. This output will transition to the specified values when the **States** node changes state. One way to see the different states and transitions is to play with the **State** dropdown menu in the properties panel.
@@ -146,7 +146,7 @@ You can connect the outputs of the **States** node to anything you like. In this
@@ -154,7 +154,7 @@ You can connect the outputs of the **States** node to anything you like. In this
Finally, we can make the **States** node toggle state when the switch **Group** node is clicked. This is achieved by connecting the **Click** signal from the **Group** to the **Toggle** input of the **States** node. This will make the **States** node jump to the next state in the list and when the last one is reached it will jump to the first one again. In this case we only have two states, so it will toggle between **On** and **Off**.
@@ -344,7 +344,7 @@ Both transitions (color and size) have the default transition curves. You can ed
@@ -355,7 +355,7 @@ In this case we want to change the curve for the **Size** transition. You can ed
@@ -369,7 +369,7 @@ You can play with different settings for the curves and see them working when yo
@@ -379,7 +379,7 @@ You can play with different settings for the curves and see them working when yo
You can also connect several **States** nodes together to create more complex types of animations. In the node graph below we have a second **States** node that expands the **Group** node (changes the width). The second **States** node labeled **Expand** changes the width between the states **Yes** and **No**. The neat thing is that it is triggered when the first states node (the hover states) has reached the **Yes** state. It is returned to **No** when the mouse leaves (the hover end), just like the first node.
diff --git a/library/modules/google-analytics/guides/setting-up-google-analytics/README.md b/library/modules/google-analytics/guides/setting-up-google-analytics/README.md
index bb815c9..5ca830c 100644
--- a/library/modules/google-analytics/guides/setting-up-google-analytics/README.md
+++ b/library/modules/google-analytics/guides/setting-up-google-analytics/README.md
@@ -2,6 +2,7 @@
title: Setting up Google Analytics
hide_title: true
---
+
# Setting up Google Analytics
## What you will learn in this guide
@@ -12,11 +13,11 @@ This guide will show you how to add basic tracking with Google Analytics. After
We will go through the following topics:
-- Beginners guide to Google Analytics
-- Set up Google Analytics
-- Set up the Noodl Module
-- Allow tracking
-- Next steps
+- Beginners guide to Google Analytics
+- Set up Google Analytics
+- Set up the Noodl Module
+- Allow tracking
+- Next steps
## Beginners guide to Google Analytics
@@ -55,7 +56,7 @@ Make sure that you are using _Google Analytics 4_ and **NOT** _Universal Analyti
So what is a **Data Stream**? Simply put, it's a connection that will stream data from your app to Google Analytics. You can have multiple **Data Streams** in your **Property**, but in most cases you will only need one.
-Let's set up our first **Data Stream**. As Noodl outputs Web Apps, we will need to select the [**Web** option](https://support.google.com/analytics/answer/9304153#stream&zippy=%2Cweb). When asked for the URL of the primary website, this needs to be the URL for your app [when it's deployed](/docs/guides/deploy/deploying-an-app-on-sandbox). `example.com` works for testing purposes as well.
+Let's set up our first **Data Stream**. As Noodl outputs Web Apps, we will need to select the [**Web** option](https://support.google.com/analytics/answer/9304153#stream&zippy=%2Cweb). When asked for the URL of the primary website, this needs to be the URL for your app when it's deployed. `example.com` works for testing purposes as well.
!> Make sure to disable [_Enhanced Measurement_](https://support.google.com/analytics/answer/9216061), as this might send double page views.
diff --git a/library/modules/qr-scanner/guides/camera-feed/README.md b/library/modules/qr-scanner/guides/camera-feed/README.md
index 79b3cb4..46e1058 100644
--- a/library/modules/qr-scanner/guides/camera-feed/README.md
+++ b/library/modules/qr-scanner/guides/camera-feed/README.md
@@ -2,6 +2,7 @@
title: Scanning for QR Codes in a camera feed
hide_title: true
---
+
# Scanning for QR Codes in a camera feed
This example enables you to scan a camera feed for Quick Response (QR) Codes and fetch the resulting data in the QR Code. To scan for QR Codes via uploaded images, see the documentation on the [Image QR Scanner](/library/modules/qr-scanner/guides/image-upload).
@@ -33,4 +34,4 @@ Since we are using a **Video** node to display the camera feed, you might want t
## No camera stream in viewer? HTTP vs. HTTPS
For security reasons, the camera feed can generally only be accessed through a secure connection, i.e. an URL beginning with https://, and not http://. This means that on some platforms (depending on OS and browser) the camera feed of the **Camera QR Scanner** will not work inside of the Noodl viewer. Furthermore, connecting to http://localhost:8574/ might have the same issue. However, on some platforms localhost is exempted from the rule and the camera works without problems in the viewer.
-If you run into this problem you will have to deploy to a secure server via https://. The easiest way to do that is to use the [Noodl Sandbox Deploy](/docs/guides/deploy/deploying-an-app-on-sandbox) which uses https:// protocols.
+If you run into this problem you will have to deploy to a secure server via https://.
diff --git a/library/prefabs/pdf/README.md b/library/prefabs/pdf/README.md
deleted file mode 100644
index f50bd97..0000000
--- a/library/prefabs/pdf/README.md
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: PDF Export
-hide_title: true
----
-
-# PDF Export
-
-:::note
-This prefab only works on Noodl hosted cloud services.
-:::
-
-It's recommended that you have a grasp of the following concepts before diving into this prefab:
-
-* [Page Navigation](/docs/guides/navigation/basic-navigation) - How to create pages and navigate between them.
-* [Cloud Functions](/docs/guides/cloud-logic/introduction) - How to create cloud functions and run logic on the backend.
-
-Here is a nifty prefab for exporting / generating PDFs. Exporting a PDF involves two components:
-
-* **A PDF Page** This needs to be a page in your applications that is accessible externally. This page will be turned into a PDF in the next step.
-* **A PDF export cloud function** This is a cloud function that will perform the PDF export, the exported PDF will be uploaded as a file to the cloud service and you will receive a URL that can be send to the frontend and opened in a new tab.
-
-Let's review the two components one by one:
-
-## The PDF Page
-First you need to create a Noodl page in a page router that will be accessible at a specific `url` when you deploy the application. This web page should contain the content pages of your PDF. We have found that you get the best result when simply stacking groups on top of each other as shown below:
-
-
-
-
-
-
-
-We also recommend setting the dimensions of each page to explicit values as shown below:
-
-
-
-
-
-
-
-In this way you can put the content of each page within these groups. You could also use a [Repeater](/nodes/ui-controls/repeater) to dynamically generate the pages with data. You need to make sure that the page is publicly available so it doesn't require a login for any data you put on the pages. Here is an example: `https://pdf-test.sandbox.noodl.app/pdf`.
-
-## The PDF export cloud function
-The second step is to create a cloud function that performs the PDF export and returns a URL with the ready PDF. After cloning the prefab into your project you will have
-
-
-
-
-
-
-
-
-The cloud function `Create PDF` will simply create a PDF from a prodived web page URL, upload the file and return the URL. The content of the cloud functions is very simple:
-
-
-
-
-
-
-
-The request is connected to the `Generate PDF` logic component that does the PDF export and when it succeeds the url with the location of the PDF is returned in the request.
-
-## Hooking it up
-
-Here is a very simple example of to hook it up in your application. When the button is clicked the cloud function is called with a string with the URL of the web page that should be made into a PDF.
-
-
-
-
-
-
-
-When the cloud function completes the url to the exported PDF is sent to an [External Link](/nodes/navigation/external-link) node that opens the url in a new tab and the browser will show a preview of the PDF.
-
-The PDF generation generally takes a second or two, so it's good to show something like a [Loading Spinner](/library/prefabs/loading-spinner) while processing.
-
-## User sessions
-
-Often the web page that has the content of the PDF requires access the cloud database to include data in the document. This data should generally be protected with [Access Control](/docs/guides/cloud-data/access-control) so only users with permissions can access. But the page used to export the PDF will not have a valid user session as it's only used in the export process. We can solve this by providing a session token as a query parameter to the page.
-
-There is a second cloud function called `Create PDF With Session` that helps us do this, it works like the other but it first fetches a session for the user calling the cloud function (this cloud function requires authentication on the front end to be called). The session is appended to the provided page url, as seen below:
-
-
-
-
-
-
-
-To use the session token on the frontend you need to extract it from the [Page Inputs](/nodes/navigation/page-inputs) and feed into a function node with this code:
-
-```javascript
-if(Inputs.SessionToken) {
- try {
- await Noodl.Users.become(Inputs.SessionToken);
- }
- catch(e) {
- Outputs.Failure();
- throw e;
- }
-
- Outputs.Success();
-}
-else {
- Outputs.Failure();
- throw Error("No session token provided");
-}
-```
-
-This code will use the provided session token to authenticate and "become" the user that the session token is valid for. Here is an example of how you can add the user email address to the PDF content.
-
-
-
-
-
-
-
diff --git a/sidebarsLibrary.js b/sidebarsLibrary.js
index 760d39b..67c162f 100644
--- a/sidebarsLibrary.js
+++ b/sidebarsLibrary.js
@@ -1310,19 +1310,7 @@ const sidebars = {
},
],
- // PDF
- PDFExportSidebar: [
- {
- type: 'doc',
- label: 'Overview',
- id: 'prefabs/pdf/README',
- },
- {
- type: 'link',
- label: 'Back to prefabs',
- href: '/library/prefabs/overview',
- },
- ],
+
// Marquee Module
marquee: [
diff --git a/static/data/guides.js b/static/data/guides.js
index e892d3c..9c6d4c7 100644
--- a/static/data/guides.js
+++ b/static/data/guides.js
@@ -451,20 +451,6 @@ const guides = [
label: 'Deploying and hosting apps',
link: { type: 'doc', id: 'guides/deploy/overview' },
items: [
- {
- type: 'doc',
- label: 'Sandbox Deploy',
- id: 'guides/deploy/deploying-an-app-on-sandbox',
- imageUrl: '/img/featured-content-images/hosting.png',
- description: 'Learn how to deploy your app to a Noodl sandbox domain',
- },
- {
- type: 'doc',
- label: 'Deploying to custom domains',
- id: 'guides/deploy/deploying-to-custom-domain',
- imageUrl: '/img/featured-content-images/hosting.png',
- description: 'Learn how to deploy your app to custom domains ',
- },
{
type: 'doc',
label: 'Using a self hosted cloud service',
diff --git a/static/library/prefabs/index.json b/static/library/prefabs/index.json
index bd85ad7..bf938b2 100644
--- a/static/library/prefabs/index.json
+++ b/static/library/prefabs/index.json
@@ -223,14 +223,7 @@
"docs": "/library/prefabs/openai/",
"tags": ["Cloud"]
},
- {
- "label": "PDF Export",
- "desc": "A prefab for creating a PDF file from a web page",
- "icon": "library/prefabs/pdf/pdf.png",
- "project": "library/prefabs/pdf/pdf-0-1.zip",
- "docs": "/library/prefabs/pdf/",
- "tags": ["Cloud"]
- },
+
{
"label": "Xano",
"desc": "Connects to Xano and handles queries, users and authTokens. Built by @gmaison.",
diff --git a/static/library/prefabs/pdf/cloud-components.png b/static/library/prefabs/pdf/cloud-components.png
deleted file mode 100644
index 772143c..0000000
Binary files a/static/library/prefabs/pdf/cloud-components.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/create-pdf-nodes.png b/static/library/prefabs/pdf/create-pdf-nodes.png
deleted file mode 100644
index e94385f..0000000
Binary files a/static/library/prefabs/pdf/create-pdf-nodes.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/create-pdf-session.png b/static/library/prefabs/pdf/create-pdf-session.png
deleted file mode 100644
index ff33d3d..0000000
Binary files a/static/library/prefabs/pdf/create-pdf-session.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/create-pdf.png b/static/library/prefabs/pdf/create-pdf.png
deleted file mode 100644
index 33c0fc1..0000000
Binary files a/static/library/prefabs/pdf/create-pdf.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/hook-up-1.png b/static/library/prefabs/pdf/hook-up-1.png
deleted file mode 100644
index af2e821..0000000
Binary files a/static/library/prefabs/pdf/hook-up-1.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/hook-up-2.png b/static/library/prefabs/pdf/hook-up-2.png
deleted file mode 100644
index 8d4cbe9..0000000
Binary files a/static/library/prefabs/pdf/hook-up-2.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/page-size.png b/static/library/prefabs/pdf/page-size.png
deleted file mode 100644
index eb4da91..0000000
Binary files a/static/library/prefabs/pdf/page-size.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/pages.png b/static/library/prefabs/pdf/pages.png
deleted file mode 100644
index cb5ef9f..0000000
Binary files a/static/library/prefabs/pdf/pages.png and /dev/null differ
diff --git a/static/library/prefabs/pdf/pdf-0-1.zip b/static/library/prefabs/pdf/pdf-0-1.zip
deleted file mode 100644
index 3fd6dc6..0000000
Binary files a/static/library/prefabs/pdf/pdf-0-1.zip and /dev/null differ
diff --git a/static/library/prefabs/pdf/pdf.png b/static/library/prefabs/pdf/pdf.png
deleted file mode 100644
index 2375173..0000000
Binary files a/static/library/prefabs/pdf/pdf.png and /dev/null differ