ViteReactStarter

forge-starter — Vite Starter Template

By andrei-pisklenov

A starter template for Atlassian Forge apps that integrates Vite, React, TypeScript, Yarn, and testing tools, providing three workspaces for Jira, Confluence, and Bitbucket.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

1 previews
Author preview
Author-provided preview

Preview provided in the project README.

One original preview is available. Open the full image to inspect the design.

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Yarn workspaces host three Forge apps for Jira, Confluence, and Bitbucket along with shared packages

02

Per-platform build, forge:register, forge:deploy, and forge:install scripts; deployment supports -e to specify staging or production

03

During development, yarn dev:jira / yarn dev:conf start Custom UI hot reload and establish a Forge tunnel

04

Integrates ESLint, Vitest with Testing Library, and Playwright, and provides lint, test, and other scripts

05

The README states UI Kit is officially supported only with React 18, while Custom UI can use other React versions

Template Details

ForgeStarter is a starter template for building Atlassian Forge apps targeting Jira, Confluence, and Bitbucket, and it also supports maintaining all three apps in a single repository. The template organizes code with Yarn workspaces: under packages, it places three Forge apps—forge-jira, forge-conf, and forge-bitb—a shared package for common types and constants, a Custom UI package used by all apps, and an e2e testing package for the UI. Build and deployment are separated by platform. Initial builds are generated via yarn build:jira, build:conf, and build:bitb, then registration, deployment, and installation are completed with the forge:register, forge:deploy, and forge:install script series. The deployment scripts support specifying staging or production via the -e parameter. During development, running yarn dev:jira or yarn dev:conf starts Custom UI hot reload and establishes a Forge tunnel to forward requests locally. The template includes ESLint, Vitest with Testing Library, and Playwright, and provides scripts such as yarn lint and yarn test. The README notes that UI Kit is currently officially supported only with React 18 and is incompatible with React 19, but Custom UI assets can use other React versions. The repository root also includes bitbucket-pipelines.yml as an example pipeline configuration for self-hosted runners.

ViteReactStarter

Is it right for your project?

Use Cases

  • Creating a Forge app for Jira, Confluence, or Bitbucket and needing a ready-made project structure
  • Maintaining Forge apps for three Atlassian products in one repository and reusing shared code
  • Using Custom UI and a Forge tunnel for local hot-reload development
  • Setting up unit tests and end-to-end tests for a Forge app
  • Referencing bitbucket-pipelines.yml to set up a pipeline on self-hosted runners

Suitable For

  • Developers who need to quickly scaffold an Atlassian Forge app skeleton
  • Teams that want to organize multiple Forge apps as a monorepo
  • Frontend developers using a Vite, React, and TypeScript stack
  • Projects that need to add testing and lint configuration for a Forge app

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Prerequisites are Node.js, Yarn, and the Forge CLI; run yarn install first to install dependencies

  2. 2

    Run yarn build:jira, yarn build:conf, or yarn build:bitb for the target platform to generate the initial build

  3. 3

    Run the corresponding platform's forge:register, forge:deploy, and forge:install scripts in sequence to register, deploy, and install

  4. 4

    To deploy to staging or production, append -e staging or -e production to the command

  5. 5

    After modifying manifest.yml, redeploy and run the install command with --upgrade

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in a public repository under the MIT license; the free scope is the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercialize, and distribute the code of this version for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Using this template requires installing the Atlassian Forge CLI and depends on Atlassian's Forge platform for registration, deployment, and installation.
  • The app must first be registered on the Atlassian Forge platform before it can be deployed and installed to a cloud instance.
  • You need an Atlassian cloud instance (Jira, Confluence, or Bitbucket) to install and run the app.
  • Deploying to production requires using the Forge platform's production environment and may involve Atlassian platform terms of use and fees.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

3. [Forge CLI](https://developer.atlassian.com/platform/forge/getting-started/)

Original README

#### Register the app with Forge:

Original README

Install the app on your cloud instance by running:

Original README

yarn forge:deploy:jira -e production

Original README
https://github.com/andrei-pisklenov/forge-starter/blob/master/LICENSEhttps://github.com/andrei-pisklenov/forge-starter/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 80 / 100
Technologies
Vite · React
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-01-24
Screenshot last checked
2026-10-03

No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.

The catalog identifies Vite as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 40ce62e3eadf6edf3ebe2df3bf48a26a108726058617df36f20858f9605c98ea

2026-10-03T02:46:31.700Z

Source file / repository
# ForgeStarter

![Vite](https://img.shields.io/badge/Vite-gray?logo=vite)
![React](https://img.shields.io/badge/React-gray?logo=react)
![TypeScript](https://img.shields.io/badge/TypeScript-gray?logo=typescript)
![ESLint](https://img.shields.io/badge/ESLint-gray?logo=eslint)
![Vitest](https://img.shields.io/badge/Vitest-unit--tests-6E9F18?logo=vitest)
![Playwright](https://img.shields.io/badge/Playwright-e2e--tests-45BA6E)

![](./docs/assets/repo-banner-crop.png)

⚡️ A feature-packed, opinionated starter template for building Atlassian Forge apps. Includes Yarn, Vite, React 18, TypeScript, Vitest, Testing Library, Playwright, Eslint, and Atlaskit — everything you need to get started with modern tooling and best practices.

This repository follows the principle of **"Grab It All – Use Only What You Need"**.
It enables you to quickly start building Forge apps for **Jira, Confluence, Bitbucket**, or even a single app that integrates with all three applications.  


## Getting Started

### 0. Prerequisites

Before you begin, ensure you have the following installed:

1. [Node.js](https://nodejs.org/en/download/package-manager)
2. [Yarn](https://yarnpkg.com/)
3. [Forge CLI](https://developer.atlassian.com/platform/forge/getting-started/)

### 1. Install Dependencies

Run the following command to install the necessary dependencies:

```bash
yarn install
```

### 2. Initial Build

To create the initial build, run one of the following commands, depending on the app version you'd like to start with:
- `yarn build:jira` - For Jira app version
- `yarn build:conf` - For Confluence app version
- `yarn build:bitb` - For Bitbucket app version

### 3. Register, Deploy, Install

#### Register the app with Forge:
- `yarn forge:register:jira` - For Jira version
- `yarn forge:register:conf` - For Confluence version
- `yarn forge:register:bitb` - For Bitbucket version

#### Deploy to Forge

Deploy the app to the development environment:
- `yarn forge:deploy:jira` - For Jira version
- `yarn forge:deploy:conf` - For Confluence version
- `yarn forge:deploy:bitb` - For Bitbucket version

#### Install the App on Your Cloud Instance

Install the app on your cloud instance by running:
- `yarn forge:install:jira` - For Jira version
- `yarn forge:install:conf` - For Confluence version
- `yarn forge:install:bitb` - For Bitbucket version

Follow the on-screen instructions to complete the process. 
The Forge app should now be installed from the development environment and available on your cloud instance.


## Available Scripts and additional parameters

### Deploy

To deploy to another environment (e.g., staging or production), append the environment flag:
- `yarn forge:deploy:jira -e staging`    - For staging
- `yarn forge:deploy:jira -e production` - For production
- `yarn forge:deploy:conf -e staging`    - For staging
- `yarn forge:deploy:conf -e production` - For production

### Test

`yarn test`


### Lint

- Check for linting issues:
  ```bash
  yarn lint
  ```
- Automatically fix linting issues:
  ```bash
  yarn lint:fix
  ```


# Development Workflow

Once the app is installed (see Getting Started), follow this development loop:

1. Start the Custom UI with hot reloading and establish a Forge tunnel to redirect requests to localhost:
    ```bash
    yarn dev:jira   # For Jira version
    ```

    or

    ```bash
    yarn dev:conf   # For Confluence version
    ```
2. Make changes to your app and enjoy instant feedback with hot-reloading.
3. After major changes to the `manifest.yml`, deploy and reinstall the app:
  - `yarn forge:deploy:jira` - For Jira version
  - `yarn forge:install:jira --upgrade` - For Jira version

    or
  
  - `yarn forge:deploy:conf` - For Confluence version
  - `yarn forge:install:conf --upgrade` - For Confluence version

# Folders structure

```bash
└── packages # all workspaces of your monorepo project
    └── forge-jira # Jira Forge app
        ├── manifest.yml # main manifest file
        └── src # Forge FAAS, resolvers, UI Kit modules, web triggers, custom fields, workflow postfunctions, and so on
        └── ...
    └── forge-conf # Confluence Forge app
        ├── manifest.yml # main manifest file
        └── src # Forge FAAS, resolvers, UI Kit modules, web triggers and so on
        └── ...
    └── forge-bitb # Bitbucket Forge app
        ├── manifest.yml # main manifest file
        └── src # Forge FAAS, resolvers, UI Kit modules, and so on
        └── ...
    └── shared # shared types, consts
        └── ...
    └── ui # Custom UI for all apps
        └── ...
    └── e2e # E2E tests for ui
        └── ...
└── .gitignore
└── bitbucket-pipelines.yml # Github pipelines configuration file example (self hosted runner)
└── eslint.config.js # Single eslint config file for all apps
└── tsconfig.base.json # Base TypeScript config file for all apps
└── package.json # overall workspace configuration and dependencies
```

# FAQ

<details>
  <summary><strong>Why is my app NOT eligible for the Runs on Atlassian program?</strong></summary>

  **Short answer:**  
  Your app's manifest file (`manifest.yml`) must not include any entries under the `permissions -> external` section.

  For more details about the Runs on Atlassian program, please visit the [https://go.atlassian.com/runs-on-atlassian](https://go.atlassian.com/runs-on-atlassian).
</details>

<details>
  <summary><strong>Dev Routines</strong></summary>

   1. **Upgrade dependencies interactively**  
    Use [`yarn upgrade-interactive`](https://classic.yarnpkg.com/en/docs/cli/upgrade-interactive/) to update your dependencies to the latest versions in a controlled way.
   2. **Find unused files, dependencies, and exports**  
    Use `yarn knip` to detect unused code. ⚠️ *Note: There may be false positives — review the results carefully before removing anything.*
   3. **Refresh the lockfile**  
    Run `yarn install --refresh-lockfile` to regenerate the `yarn.lock` file.  
    This is helpful for:
      - Upgrading Yarn versions
      - Fixing "ghost" dependencies stuck in the lockfile
   4. **Visualize your Vite bundle**  
    Use `npx vite-bundle-visualizer` to analyze and optimize your Vite build output. 

</details>

<details>
  <summary><strong>UI Kit is not compatible with React 19</strong></summary>

  This is a known issue — Atlassian is gradually updating UI Kit to support newer versions of React, but as of now, only React 18 is officially supported. 

  The good news is that you can still use React 18 for your UI Kit-based frontend resources, while using a different React version (including React 19) for any Custom UI resources in your app.
</details>


# License

This project is licensed under the MIT License.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

react-starter-kit

react-starter-kit

A full-stack SaaS monorepo starter built on Vite and React, with Bun, TypeScript, tRPC, Drizzle ORM, Better Auth, Stripe, and Cloudflare Workers. It includes email OTP, passkey, Google OAuth, organizations, subscription billing, Drizzle migrations, seed scripts, and Terraform infrastructure.

Vite · SaaS

cove

cove

Cove is a minimal TanStack Start starter template maintained by mugnavo, integrating React, TanStack Router/Query, Tailwind CSS, shadcn/ui, Drizzle ORM with PostgreSQL, Better Auth, Vite Plus, and Nitro.

Vite · SaaS

vite-react-boilerplate

vite-react-boilerplate

A production-ready Vite + React starter template with TypeScript, Tailwind CSS, TanStack Router/Query/Table, Storybook, React Hook Form + Zod, Vitest and Playwright testing, plus Husky/Commitizen/Commitlint commit conventions.

Vite · Starter

react-vite-admin

react-vite-admin

A backend management starter built on Vite and React, integrating Recoil, React Query, TypeScript, and Axios, with Ant Design-style interface screenshots. Suitable as a starting point for management-side projects, licensed under MIT, with Chinese documentation and common scripts.

Vite · Admin dashboard

typescript-react_best_practices-vite_template

typescript-react_best_practices-vite_template

A Vite + React + TypeScript starter template by CodelyTV, preconfigured with Jest and React Testing Library unit tests, Cypress end-to-end tests, ESLint and Prettier using Codely's shared configuration, GitHub Actions workflows, a Makefile, and Sass.

Vite · Starter

cloudflare-starter-kit

cloudflare-starter-kit

A Cloudflare Workers project scaffolding template maintained by kriasoft, using Vite and TypeScript, with three built-in workspaces: api, app, and edge, and preconfigured local testing, multiple environments, and a GitHub Actions deployment workflow.

Vite · Starter