{"id":35154795,"url":"https://github.com/volrog/forge-app-template","last_synced_at":"2025-12-28T16:44:39.523Z","repository":{"id":329927013,"uuid":"1002935107","full_name":"volrog/forge-app-template","owner":"volrog","description":"Quickstart template for Atlassian Forge apps: ready-made template using Yarn Berry (PnP), TypeScript, React, Vite, Vitest \u0026 Playwright","archived":false,"fork":false,"pushed_at":"2025-12-22T10:31:14.000Z","size":150,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-23T21:47:30.587Z","etag":null,"topics":["atlassian","eslint","forge","playwright","react","reactjs","template","typescript","vite","vitest","yarn","yarn-berry","yarn-pnp","yarn-workspaces"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/volrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-16T11:20:19.000Z","updated_at":"2025-12-22T10:31:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/volrog/forge-app-template","commit_stats":null,"previous_names":["volrog/forge-app-template"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/volrog/forge-app-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volrog%2Fforge-app-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volrog%2Fforge-app-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volrog%2Fforge-app-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volrog%2Fforge-app-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/volrog","download_url":"https://codeload.github.com/volrog/forge-app-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volrog%2Fforge-app-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28101486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-28T02:00:05.685Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atlassian","eslint","forge","playwright","react","reactjs","template","typescript","vite","vitest","yarn","yarn-berry","yarn-pnp","yarn-workspaces"],"created_at":"2025-12-28T16:44:37.978Z","updated_at":"2025-12-28T16:44:39.515Z","avatar_url":"https://github.com/volrog.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forge App Template\n\n![Atlassian Forge](https://img.shields.io/badge/Atlassian%20Forge-cloud-blue?logo=atlassian)\n![Yarn Berry](https://img.shields.io/badge/Yarn%20Berry-%20%20Plug'n'Play%20%2B%20Workspaces-2C8EBB?logo=yarn)\n![Vite](https://img.shields.io/badge/Vite-gray?logo=vite)\n![React](https://img.shields.io/badge/React-gray?logo=react)\n![TypeScript](https://img.shields.io/badge/TypeScript-gray?logo=typescript)\n![ESLint](https://img.shields.io/badge/ESLint-gray?logo=eslint)\n![Vitest](https://img.shields.io/badge/Vitest-unit--tests-6E9F18?logo=vitest)\n![Playwright](https://img.shields.io/badge/Playwright-e2e--tests-45BA6E)\n\n## Getting Started\n\nAll instructions assume that you are using macOS or Debian-based Linux on your host machine.\n\n### Environment setup\n\n- Install [nvm][nvm-docs]\n- Run `nvm use` from project root to install required node.js version\n- Run `corepack enable` to install required version of package manager (yarn)\n- Install [@forge/cli][forge-cli-docs]\n\n### Prepare development instance\n\n- Create new cloud dev instance http://go.atlassian.com/cloud-dev\n- Enable development mode on your cloud instance yourinstance.atlassian.net/plugins/servlet/upm (for jira) or yourinstance.atlassian.net/wiki/plugins/servlet/upm (for confluence)\n\n## Development\n\n### First start\n1. Install dependencies\n  ```bash\n  yarn install \n  ```\n\n2. Open `packages/forge-jira` and [log in with an Atlassian API token][forge-getting-started]. \n  ```bash\n  cd packages/forge-jira \u0026\u0026 forge login\n  ```\n\n3. Register your app\n  ```bash\n  yarn forge:register # from anywhere places in the project \n  ```\n  or\n  ```bash\n  forge register # from packages/forge-jira\n  ```\n\n4. Build frontend and deploy your app\n  ```bash\n  yarn forge:deploy # from anywhere places in the project\n  ```\n\n5. Install your app to your dev instance\n  ```bash\n  yarn forge:install # from anywhere places in the project\n  ```\n\n### Manual development\n\n1. After the first installation (see First Start) you can build frontend and deploy changes manually \n  ```bash\n  yarn forge:deploy\n  ```\n\n2. After major changes to the `manifest.yml`, deploy and upgrade the app:\n  ```bash\n  yarn forge:upgrade # from anywhere places in the project\n  ```\n   \n### Start dev server\n\n1. After the first installation (see First Start) you can start a Forge tunnel to redirect requests to localhost (vite dev server):\n  ```bash\n  yarn start # from root of project\n  ```\n\n2. After major changes to the `manifest.yml`, deploy and upgrade the app:\n  ```bash\n  yarn forge:upgrade # from anywhere places in the project\n  ```\n\n## Project structure\n\n```\n.\n├── packages/\n│   ├── forge-jira/\n│   │   ├── src/\n│   │   ├── manifest.yml\n│   │   ├── package.json\n│   │   └── ...\n│   ├── frontend/\n│   │   ├── src/\n│   │   ├── index.html\n│   │   ├── package.json\n│   │   └── ...\n│   └── shared/\n│       ├── src/\n│       ├── package.json\n│       └── ...\n├── tsconfig.json\n├── package.json\n└── yarn.lock\n```\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE).\n\n[forge-cli-docs]: https://developer.atlassian.com/platform/forge/cli-reference/\n[nvm-docs]: https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating\n[forge-getting-started]: https://developer.atlassian.com/platform/forge/getting-started/#log-in-with-an-atlassian-api-token\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolrog%2Fforge-app-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolrog%2Fforge-app-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolrog%2Fforge-app-template/lists"}