{"id":23215935,"url":"https://github.com/digitalservicebund/typescript-vite-application-template","last_synced_at":"2025-06-29T07:37:55.943Z","repository":{"id":36960615,"uuid":"468831536","full_name":"digitalservicebund/typescript-vite-application-template","owner":"digitalservicebund","description":"Bootstrap a TypeScript application with Vite dev server and Continuous Delivery","archived":false,"fork":false,"pushed_at":"2025-06-19T19:59:12.000Z","size":2233,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-06-19T20:51:35.698Z","etag":null,"topics":["continuous-delivery","typescript","vite"],"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/digitalservicebund.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2022-03-11T16:54:12.000Z","updated_at":"2025-06-19T19:59:14.000Z","dependencies_parsed_at":"2023-02-14T11:31:43.583Z","dependency_job_id":"6bcdf23b-86d2-4e74-ba8c-db6f26f6e994","html_url":"https://github.com/digitalservicebund/typescript-vite-application-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/digitalservicebund/typescript-vite-application-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalservicebund%2Ftypescript-vite-application-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalservicebund%2Ftypescript-vite-application-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalservicebund%2Ftypescript-vite-application-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalservicebund%2Ftypescript-vite-application-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalservicebund","download_url":"https://codeload.github.com/digitalservicebund/typescript-vite-application-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalservicebund%2Ftypescript-vite-application-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262558545,"owners_count":23328556,"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","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":["continuous-delivery","typescript","vite"],"created_at":"2024-12-18T20:20:53.426Z","updated_at":"2025-06-29T07:37:55.938Z","avatar_url":"https://github.com/digitalservicebund.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeScript + Vite Application Template\n\n[![Pipeline](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/pipeline.yml/badge.svg)](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/pipeline.yml)\n[![Scan](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/scan.yml/badge.svg)](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/scan.yml)\n[![Secrets Check](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/secrets-check.yml/badge.svg)](https://github.com/digitalservicebund/typescript-vite-application-template/actions/workflows/secrets-check.yml)\n\nBootstrap a TypeScript application with Vite dev server and Continuous Delivery\n\n## Prerequisites\n\n### Node.js\n\nWe aim to use the current active [LTS version of nodejs](https://nodejs.dev/en/about/releases/), which is v20 at the time of writing. There is a `.node-version` file to simplify setup using [nodenv](https://github.com/nodenv/nodenv).\n\n### Testing\n\nFor E2E and a11y testing with [Playwright](https://playwright.dev/docs/intro) you will need to install the supported browsers:\n\n```bash\nnpx playwright install\nnpx playwright install msedge\n```\n\n### Git Hooks\n\nFor the provided Git hooks you will need to install [lefthook](https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md) (git hook manager) and [talisman](https://thoughtworks.github.io/talisman/docs) (secrets scanner):\n\n```bash\nbrew install lefthook talisman\n./run.sh init\n```\n\nThe following hooks are specified in the `lefthook.yml`:\n\n- `commitlint` - write [conventional commit messages](https://chris.beams.io/posts/git-commit/)\n- `lint` - avoid commiting code violating linting rules\n- `format` - avoid commiting wrongly formatted code\n\nBefore pushing, the following checks are additionally ran:\n\n- `licenses-audit` - uses `license-checker-rseidelsohn` to verify depency licenses\n- `secrets-audit` - avoid accidental pushes of [secrets and sensitive information](https://thoughtworks.github.io/talisman/)\n\n### security.txt\n\nThis template contains a [security.txt](https://securitytxt.org/), where you probably want to update the expiration date. The following entries may also be added:\n\n```\nPolicy: https://raw.githubusercontent.com/digitalservicebund/\u003c\u003cREPO_NAME\u003e\u003e/main/SECURITY.md\nCanonical: https://\u003c\u003cPROJECT_URL\u003e\u003e/.well-known/security.txt\n```\n\n## Development\n\n### Dev server\n\nThe project uses [Vite](https://vitejs.dev/guide/) to provide a bundler-less dev server, available via `npm run dev`.\n\n### Testing\n\nThe application has\n\n- unit tests (using [Jest](https://jestjs.io/docs/getting-started))\n- end-to-end tests (using [Playwright](https://playwright.dev/docs/intro))\n- accessibility tests (using [Axe](https://github.com/abhinaba-ghosh/axe-playwright#readme) and [Playwright](https://playwright.dev/docs/intro))\n\n**Test commands**\n\n- Run unit tests: `npm test`\n- Run unit tests with watcher: `npm test -- --watch`\n- Gather coverage: `npm run coverage`\n- Run E2E tests: `npm run test:e2e`\n- Run a11y tests: `npm run test:a11y`\n\n### Code quality checks (linting \u0026 formatting)\n\nThe project uses [ESLint](https://eslint.org/docs/latest/) for linting and [Prettier](https://prettier.io/docs/en/). for formatting.\n\n**Commands**\n\n- Check style: `npm run style:check`\n- Autofix style issues: `npm run style:fix`\n- Check lint: `npm run lint:check`\n- Autofix lint issues: `npm run lint:fix`\n\n## Architecture Decision Records\n\nThe `docs/adr` directory contains [architecture decisions](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions).\nFor adding new records the [adr-tools](https://github.com/npryce/adr-tools) command-line tool is useful but not strictly necessary:\n\n```bash\nbrew install adr-tools\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalservicebund%2Ftypescript-vite-application-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalservicebund%2Ftypescript-vite-application-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalservicebund%2Ftypescript-vite-application-template/lists"}