diff --git a/README.md b/README.md
index 48238f045808db2ceb93ce32cd994ea21eb7e185..e257575e2ba40ad14bd820ff81dafc0e584af3ca 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-# Batch Connect - Example Jupyter Notebook Server
+# Batch Connect - JupyterLab
 
 ![GitHub Release](https://img.shields.io/github/release/osc/bc_example_jupyter.svg)
 ![GitHub License](https://img.shields.io/github/license/osc/bc_example_jupyter.svg)
 
-An example Batch Connect app that launches a Jupyter Notebook server within a
+An example Batch Connect app that launches a JupyterLab within a
 batch job.
 
 ## Prerequisites
@@ -12,9 +12,9 @@ This Batch Connect app requires the following software be installed on the
 **compute nodes** that the batch job is intended to run on (**NOT** the
 OnDemand node):
 
-- [Jupyter Notebook](http://jupyter.readthedocs.io/en/latest/) 4.2.3+ (earlier
+- [JupyterLab](http://jupyterlab.readthedocs.io/en/latest/) 3.2.1 (earlier
   versions are untested but may work for you)
-- [OpenSSL](https://www.openssl.org/) 1.0.1+ (used to hash the Jupyter Notebook
+- [OpenSSL](https://www.openssl.org/) 1.0.1+ (used to hash the JupyterLab
   server password)
 
 **Optional** software:
@@ -22,7 +22,7 @@ OnDemand node):
 - [Lmod](https://www.tacc.utexas.edu/research-development/tacc-projects/lmod)
   6.0.1+ or any other `module purge` and `module load <modules>` based CLI
   used to load appropriate environments within the batch job before launching
-  the Jupyter Notebook server.
+  the JupyterLab.
 
 ## Install
 
@@ -34,16 +34,16 @@ this.
 
 ```sh
 # Download the zip from the GitHub page
-wget https://github.com/OSC/bc_example_jupyter/archive/master.tar.gz
+wget https://github.com/uabrc/ood_jupyterlab/archive/master.tar.gz
 
 # Create a catchy directory
-mkdir my_jupyter_app
+mkdir my_jupyterlab_app
 
 # Unzip the downloaded file into this directory
-tar xzvf master.tar.gz -C my_jupyter_app --strip-components=1
+tar xzvf master.tar.gz -C my_jupyterlab_app --strip-components=1
 
 # Change the working directory to this new directory
-cd my_jupyter_app
+cd my_jupyterlab_app
 ```
 
 From here you will make any modifications to the code that you would like and
diff --git a/form.yml.erb b/form.yml.erb
index dd8532d432a35d1e9d1e3f3400b4cef080c57ccb..46ca0758c924e8d337a12ed075703bb929955fc2 100644
--- a/form.yml.erb
+++ b/form.yml.erb
@@ -8,15 +8,15 @@
 # under /etc/ood/config/clusters.d/*.yml
 # @example Use the Owens cluster at Ohio Supercomputer Center
 #     cluster: "owens"
-cluster: "SLURM_CLUSTER" 
+cluster: "SLURM_CLUSTER"
 
 # Title of the app displayed in the Dashboard
-title: "Jupyter Notebook"
+title: "JupyterLab"
 
 # Description of the app displayed in the Dashboard (can use multi-line string
 # and Markdown syntax)
 description: |
-  This app will launch a Jupyter Notebook server on one or more cores.
+  This app will launch a JupyterLab server on one or more cores.
 
 # Define attribute values that aren't meant to be modified by the user within
 # the Dashboard form
@@ -44,7 +44,7 @@ attributes:
       # format:
       # module load example_module/VERSION example_module2
 
-  # Whether Conda extensions will be available within the Jupyter notebook
+  # Whether Conda extensions will be available within the JupyterLab
   # server
   #
   # @note Allows the user to use conda environment-based kernels from their
@@ -56,11 +56,11 @@ attributes:
   # @see https://docs.continuum.io/anaconda/user-guide/tasks/use-jupyter-notebook-extensions
   conda_extensions: "1"
 
-  # Any extra command line arguments to feed to the `jupyter notebook ...`
-  # command that launches the Jupyter notebook within the batch job
+  # Any extra command line arguments to feed to the `jupyter-lab ...`
+  # command that launches the JupyterLab within the batch job
   extra_jupyter_args:
     widget: text_field
-    label: Extra jupyter arguments
+    label: Extra JupyterLab arguments
 
   bc_num_hours:
     value: 1
diff --git a/icon.png b/icon.png
index 480932523cd389416c1b7dfffb8b0580616e9051..41db6ac6b48e9458f4fd0330a7432b765f4db56f 100644
Binary files a/icon.png and b/icon.png differ
diff --git a/manifest.yml b/manifest.yml
index 86a69aa35a23821abf7eb1986f3fdafa411f8aa8..2fb639c79faae10f5f632a3eadf40a0614ff14fa 100644
--- a/manifest.yml
+++ b/manifest.yml
@@ -1,7 +1,7 @@
 ---
-name: Jupyter Notebook
+name: JupyterLab
 category: Interactive Apps
 subcategory: Servers
 role: batch_connect
 description: |
-  This app will launch a Jupyter Notebook server on one or more nodes.
+  This app will launch a JupyterLab server on one or more nodes.
diff --git a/template/script.sh.erb b/template/script.sh.erb
index 54c185de20c40284afdb4f7c58609f1435863df8..77357c1ffaa0b8b888eb947fb878ddc264524039 100755
--- a/template/script.sh.erb
+++ b/template/script.sh.erb
@@ -4,10 +4,10 @@
 cd "${HOME}"
 module reset
 #
-# Start Jupyter Notebook Server
+# Start JupyterLab Server
 #
 module load Anaconda3
 <%= context.custom_environment %>
 unset XDG_RUNTIME_DIR
-# Launch the Jupyter Notebook Server
-jupyter notebook --config="${CONFIG_FILE}" <%= context.extra_jupyter_args %>
+# Launch the JupyterLab Server
+jupyter-lab --config="${CONFIG_FILE}" <%= context.extra_jupyter_args %>
diff --git a/view.html.erb b/view.html.erb
index e3f43bfab30ede42ab8294a0a490a20ba9788bda..0fbd3078bc8de2ebfb2cca2556b397c5c194a4a6 100644
--- a/view.html.erb
+++ b/view.html.erb
@@ -1,6 +1,6 @@
 <form action="/node/<%= host %>/<%= port %>/login" method="post" target="_blank">
   <input type="hidden" name="password" value="<%= password %>">
   <button class="btn btn-primary" type="submit">
-    <i class="fas fa-eye"></i> Connect to Jupyter
+    <i class="fas fa-eye"></i> Connect to JupyterLab
   </button>
 </form>