diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/APVerify.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/APVerify.svelte
new file mode 100644
index 000000000..02e73037e
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/APVerify.svelte
@@ -0,0 +1,12 @@
+
Instructions
+
+ -
+ Get preview link by clicking on the entry with type asset-preview in the Product Files grid view.
+
+ -
+ Test the asset packages by setting the Container App URL in a Container APP project to the preview link. Then Run the iOS Container App in an iOS Simulator.
+
+ -
+ Click Approve when you are satisfied that everything is ready to go and the app will be published.
+
+
\ No newline at end of file
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Configuration.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Configuration.svelte
new file mode 100644
index 000000000..e0a3bf480
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Configuration.svelte
@@ -0,0 +1,25 @@
+Instructions
+
+ -
+ In the Publishing > App Publishing configuration page:
+
+ -
+ Enable Scriptoria by selecting the We would like to use Scriptoria option.
+
+
+
+ -
+ In the Publishing > Scriptoria configuration page:
+
+ -
+ Copy and Paste the above App Project URL into the Enter App Project URL field.
+
+ -
+ Click Login... to connect to Scriptoria.
+
+ -
+ Click Upload and successfully upload the data to the app publishing repository.
+
+
+
+
\ No newline at end of file
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/CreateEntry.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/CreateEntry.svelte
new file mode 100644
index 000000000..52b85a06b
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/CreateEntry.svelte
@@ -0,0 +1,139 @@
+Instructions
+
+ - Download the AAB file by clicking on the entry with type aab in the Product Files grid view.
+ - Go to Google Play Developer Console and sign in.
+ -
+ Click Create app button and complete the following items:
+
+ - Set App name to Project Name shown above.
+ - Set Default language to Store Listing Language shown above.
+ - Set App or game to App.
+ - Set Free or paid to Free.
+ -
+ Check Confirm app meets the Developer Program Policies checkbox.
+
+
+ - Check Accept US export laws checkbox.
+ - Click the Create app button.
+
+
+ -
+ Select App content under the Policy section in the menu on the left and do the following:
+
+ -
+ Under the Privacy policy section, click the Start link.
+
+ -
+ Fill in the URL for your app's privacy policy.
+
+ - For an example, see the Wycliffe Scripture App Privacy Policy
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the Ads section, click the Start link.
+
+ - Click on No, my app does not contain ads radio button.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the App access section, click the Start link.
+
+ - Click the appropriate1 radio button based on features used in the app.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the Content ratings section, click the Start link.
+
+ - Click the Start questionnaire button and complete the questionnaire.
+ - Click the Save button at the bottom of the page.
+ - Click the Next button at the bottom of the page.
+ - Review the ratings applied and then click the Submit button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the Target audience and content section, click the Start link.
+
+ - Check the appropriate2 Target age groups for the app (we suggest 13-15, 16-17, and 18 and over).
+ - Click the Next button at the bottom of the page.
+ - For the Appeals to children option, click the No radio button.
+ - Click the Next button at the bottom of the page.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the News apps section, click the Start link.
+
+ - Click on No, my app does not contain ads radio button.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the COVID-19 contract tracing and status apps section, click the Start link.
+
+ - Click on the My app is not a publicly available COVID-19 contact tracing or status app checkbox.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the Data safety section, click the Start link.
+
+ - Download the Data Safety CSV by clicking on the entry with type data-safety-csv in the Product Files grid view.
+ - Click the Import from CSV button at the top of the page.
+ - In the Import from CSV dialog, click on the Upload link and select the downloaded Data Safety CSV (or drag and drop the file into the file upload area).
+ - Click the Submit button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+ -
+ Under the Advertising ID section, click the Start link.
+
+ - For the Does your app use advertising ID? question, click the No radio button.
+ - Click the Save button at the bottom of the page.
+ - Click the App content link at the top of the page to go back.
+
+
+
+
+ - Select Production under the Release section in the menu on the left.
+ -
+ On the right, click the Countries / regions link and do the following:
+
+ - Click the Add countries / regions link.
+ - Select the countries where the app will be available. You can click the checkbox next to Country / region to select all countries.
+ - Click the Add countries / regions button at the bottom of the page.
+ - Click the Add button in the Add countries / regions? dialog.
+
+
+ -
+ On the right, click Create new release button at the top of the page and complete the following items:
+
+ - In the App bundles section, click the Choose signing key link.
+ - In the Choose signing key dialog, click the Use Google-generate key button.
+ - Wait for the App signing key generated message at the bottom of the window.
+ - Click the Upload link and select the downloaded AAB (or drag and drop the file into the file upload area).
+
+
+ - Click the Save link at the bottom of the page.
+ - Click the Review release button and ignore the Errors1 and Warnings2 for now.
+
+Notes
+
+ -
+ The errors are due to missing store listing information which will be uploaded later by Scriptoria.
+
+ -
+ The warning is related to the upload containing native code and not uploading debug symbols.
+
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Download.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Download.svelte
new file mode 100644
index 000000000..ea1447307
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Download.svelte
@@ -0,0 +1,51 @@
+Instructions
+To be sure you are updating the latest version of this published project, please download the project before making changes. This can be done in one of two different ways:
+
+ -
+ Download a new copy
+
+ -
+ From the File menu, select Open App From Scriptoria...
+
+ -
+ Copy and Paste the above App Project URL into the Enter the project URL field.
+
+ -
+ Click Login to connect to Scriptoria.
+
+ -
+ Click Download to download a new copy of the project from the app publishing repository.
+
+ -
+ Click OK to add the project to you list of projects.
+
+
+
+ -
+ Update current project
+
+ -
+ In the Publishing > App Publishing configuration page:
+
+ -
+ Enable Scriptoria by selecting the We would like to use Scriptoria option (if not already selected).
+
+
+
+ -
+ In the Publishing > Scriptoria configuration page:
+
+ -
+ Copy and Paste the above App Project URL into the Enter App Project URL field (if not already set).
+
+ -
+ Click Login to connect to Scriptoria.
+
+ -
+ Click Download and successfully update the project from the app publishing repository.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPConfiguration.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPConfiguration.svelte
new file mode 100644
index 000000000..a7b74fd35
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPConfiguration.svelte
@@ -0,0 +1,39 @@
+Instructions
+
+ -
+ In the Publishing > App Publishing configuration page:
+
+ - Enable Scriptoria by selecting the We would like to use Scriptoria option.
+
+
+ -
+ In the Publishing > Google Play Store Listing configuration page:
+
+ - Fill out the Play Listing information.
+
+
+ -
+ In the Publishing > Publishing Properties configuration page:
+
+ - Fill out any needed publishing properties.
+ - For new apps, set BUILD_ANDROID_AAB to the value 1.
+ - For new apps, set BUILD_KEYSTORE to the name of a keystore not used to publish APKs.
+ - See the Publishing Properties Documentation for more details.
+
+
+ -
+ In the Publishing > Scriptoria configuration page:
+
+ - Copy and Paste the above App Project URL into the Enter App Project URL field.
+ - Click Login... to connect to Scriptoria.
+ - Click Upload and successfully upload the data to the app publishing repository.
+
+
+ -
+ To continue:
+
+ - If this is a new app that has not been uploaded to Google Play yet, click New App.
+ - If this is an app that already exists in Google Play, click Existing App.
+
+
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPVerify.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPVerify.svelte
new file mode 100644
index 000000000..0e87f2a0d
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/GPVerify.svelte
@@ -0,0 +1,12 @@
+Instructions
+
+ - Download the APK or AAB file by clicking on the entry with type apk or aab in the Product Files grid view.
+ - Test the app1. See Installing Android Apps For Testing for help.
+ - Open the preview of the store listing by clicking on the entry with type play-listing in the Product Files grid view.
+ - Click Approve when you are satisfied that everything is ready to go and the app will be published.2
+
+Notes
+
+ - If the "Share app Installer file" feature is enabled, it will be present in the APK and not present in the AAB.
+ - The first time the app is published, the Organization Admin will need to do extra work to make it live. After the first time, it will be available in a shorter amount of time.
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/MakeItLive.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/MakeItLive.svelte
new file mode 100644
index 000000000..6d235169e
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/MakeItLive.svelte
@@ -0,0 +1,39 @@
+Instructions
+
+ For apps being added to Scriptoria that are already published to Google Play, most of these steps have already been completed. You will still need to perform the last step to complete the rollout of the draft publish of the new version of
+ the app.
+
+
+ - Go to Google Play Developer Console and sign in.
+ - Select Store presence under the Grow section in the menu on the left. This will expand the items below it.
+ - Select Store settings in the menu on the left and do the following:
+ -
+
+ -
+ Set Category to Books & Reference (or appropriate category)
+
+ - Click on Manage tags link and set appropriate tags (e.g. Religious text) and click the Apply button at the bottom of the page.
+ - Set Email address
+ - Set Website (optional)
+ - Click the Save button at the bottom of the page.
+
+
+
+
+ -
+
To complete the rollout, Select Production in the menu on the left and do the following:
+
+ -
+
Click the Edit release button at the top of the page.
+
+ - Click the Review release button at the bottom of the page.
+ - Click the Start rollout to Production button at the bottom of the page.
+
+Notes
+
+ - If the app uses one of the Restricted Users setting in Security, then you will need to provide instructions on how a reviewer can gain access.
+ -
+ If your app isn't specifically targeted to appeal to children (like a Children's Bible or Bible stories picture book), then you should specify that it is intended for 13+ otherwise there are additional regulations that have to
+ be met.
+
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Pending.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Pending.svelte
new file mode 100644
index 000000000..cd7d102cc
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Pending.svelte
@@ -0,0 +1,13 @@
+Instructions
+Communicate with the end user if you have questions about whether this project should be published.
+
+ -
+ Select Reject to terminate this product request.
+
+ -
+ Select Hold to update the comment on the task.
+
+ -
+ Select Approve to continue with the product.
+
+
\ No newline at end of file
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/ReadinessCheck.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/ReadinessCheck.svelte
new file mode 100644
index 000000000..352c3558e
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/ReadinessCheck.svelte
@@ -0,0 +1,8 @@
+Instructions
+Press Continue when all the following are true.
+
+ - I have reviewed the Intellectual Property (IP) Attributions Guidelines.
+ - I have used the appropriate App Builder on my computer to define and compile my app. I have tested it and believe it is ready to publish widely.
+ - I have been given permission by my organization to publish the contents of the app.
+ - I know who should be listed as copyright owners for the text and audio.
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/SynchronizeData.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/SynchronizeData.svelte
new file mode 100644
index 000000000..84ea1637f
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/SynchronizeData.svelte
@@ -0,0 +1,11 @@
+Instructions
+
+ - Make any changes needed in the app.
+ -
+ In the Publishing > Scriptoria configuration page:
+
+ - Click Login... to connect to Scriptoria.
+ - Click Upload and successfully upload the data to the app publishing repository.
+
+
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Upload.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Upload.svelte
new file mode 100644
index 000000000..03131323e
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Upload.svelte
@@ -0,0 +1,9 @@
+Instructions
+
+ -
+ Make any changes needed in the app.
+
+ -
+ Click Upload in the Publishing > Scriptoria app configuration page and successfully upload the data to the app publishing repository.
+
+
\ No newline at end of file
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Verify.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Verify.svelte
new file mode 100644
index 000000000..eb1a59972
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/Verify.svelte
@@ -0,0 +1,6 @@
+Instructions
+
+ - Download the APK file by clicking on the entry with type apk in the Product Files grid view.
+ - Test the app. See Installing Android Apps For Testing for help.
+ - Click Approve when you are satisfied that everything is ready to go and the app will be published.
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/WVerify.svelte b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/WVerify.svelte
new file mode 100644
index 000000000..acbc174e6
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/WVerify.svelte
@@ -0,0 +1,6 @@
+Instructions
+
+ - Download a zip file of the web site by clicking on the entry with type html or pwa in the Product Files grid view.
+ - Extract the zip file and test the web site.
+ - Click Approve when you are satisfied that everything is ready to go and the app will be published.
+
diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/index.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/index.ts
new file mode 100644
index 000000000..3eb6a0406
--- /dev/null
+++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/tasks/[product_id]/instructions/index.ts
@@ -0,0 +1,31 @@
+import APVerify from "./APVerify.svelte";
+import Configuration from "./Configuration.svelte";
+import CreateEntry from "./CreateEntry.svelte";
+import Download from "./Download.svelte";
+import GPConfiguration from "./GPConfiguration.svelte";
+import GPVerify from "./GPVerify.svelte";
+import MakeItLive from "./MakeItLive.svelte";
+import Pending from "./Pending.svelte";
+import ReadinessCheck from "./ReadinessCheck.svelte";
+import SynchronizeData from "./SynchronizeData.svelte";
+import Upload from "./Upload.svelte";
+import Verify from "./Verify.svelte";
+import Waiting from "./Waiting.svelte";
+import WVerify from "./WVerify.svelte";
+
+export const instructions: {[key: string]: typeof Configuration} = {
+ "ap_verify": APVerify,
+ "configuration": Configuration,
+ "create_entry": CreateEntry,
+ "download": Download,
+ "gp_configuration": GPConfiguration,
+ "gp_verify": GPVerify,
+ "make_it_live": MakeItLive,
+ "pending": Pending,
+ "readiness_check": ReadinessCheck,
+ "synchronize_data": SynchronizeData,
+ "upload": Upload,
+ "verify": Verify,
+ "waiting": Waiting,
+ "w_verify": WVerify
+};
\ No newline at end of file