Skip to main content
Skip table of contents

How to create and develop a Scroll Viewport theme

The fastest way to get started with Scroll Viewport theme development is to use viewport-uploaderThe viewport-uploader package is a node module to upload local resources to the Scroll Viewport app inside Atlassian Confluence Data Center. For example, it can be used as part of a webpack build process to automate building and uploading a theme.

Please make sure you have a current Confluence Version (at least v7.11.2) installed and the necessary user permissions to edit page contents.

Setting up the local development environment

Create the file .vpconfig.json in your home directory and add your target environments similar to the example below.

Note: The identifier (in the below case "DEV") must equal the environment name in the envName property.

// ~/.vpconfig.json
  "DEV": {
    "envName": "DEV",
    "confluenceBaseUrl": "http://localhost:8090/confluence",
    "username": "admin",
    "password": "admin",
    "spaceKey": ""
  "PROD": {
    "envName": "PROD",
    "confluenceBaseUrl": "",
    "username": "admin",
    "password": "admin",
    "spaceKey": "prodspace"




envNameStringName of target environment. This should also be the name of the identifier.
confluenceBaseUrlStringURL of Confluence Data Center. It may not contain a trailing slash.
usernameStringUsername for Confluence Data Center

Password for Confluence Data Center

spaceKeyStringSpace key (empty for global). It may contain up to 225 alphanumeric characters. Scroll Viewport treats space keys case-sensitive even though for Confluence they are case-insensitive. If you provide the wrong case, the upload will fail without a helpful error message. In order to upload a global theme you need to be a Confluence admin, otherwise you will get a permission error.

Getting started with Scroll Viewport theme development

This example contains a basic theme setup, including a page.vm for the templating, styles and scripts to edit functionality and appearance of your theme and a webpack configuration to bundle and upload the code.

1. Clone this repository and change to this directory examples/basic:

git clone

cd example/basic

2. Install dependencies

yarn install

3. Start development

Start development mode with automatic rebuilds. Once the webpack build has finished, the theme will be uploaded to the specified Confluence environment.

VPRT_ENV=DEV yarn watch

4. Upload a development build of your theme

Build and upload a development build (e.g contains source maps) to your Confluence instance.

VPRT_ENV=DEV yarn upload:dev

5. Upload a production build to a different Confluence environment

Specify a PROD environment in your ~/.vpconfig.json first.

VPRT_ENV=PROD yarn upload:prod

The configuration for the upload can be found in the webpack.config.js. For further information on how the upload works see the Viewport Uploader API Documentation.

Advanced Usage

We recommend that only users with advanced webpack knowledge should make changes to the webpack configuration.

If you would like to create your own webpack configuration or use a different bundler in your CI, use the viewport-uploader package by installing it via yarn or NPM. 

yarn add @k15t/viewport-uploader
npm i @k15t/viewport-uploader

To learn more about the configuration and usage of viewport-uploader please visit the
 API Documentation on Github.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.