{"id":21650576,"url":"https://github.com/sakkke/svelte-ultimate-template","last_synced_at":"2026-04-11T03:05:18.271Z","repository":{"id":133419704,"uuid":"418794645","full_name":"sakkke/svelte-ultimate-template","owner":"sakkke","description":"A starter template for Progressive Web App with Svelte + TypeScript + SugarSS","archived":false,"fork":false,"pushed_at":"2021-10-31T00:24:30.000Z","size":3961,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-25T05:27:09.345Z","etag":null,"topics":["eslint","gitpod","jest","nodejs","parcel","postcss","pwa","starter","stylelint","sugarss","svelte","template","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sakkke.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}},"created_at":"2021-10-19T06:14:56.000Z","updated_at":"2023-09-08T18:27:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ec7861c-e7eb-4738-a32e-5d322f213e8f","html_url":"https://github.com/sakkke/svelte-ultimate-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakkke%2Fsvelte-ultimate-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakkke%2Fsvelte-ultimate-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakkke%2Fsvelte-ultimate-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakkke%2Fsvelte-ultimate-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sakkke","download_url":"https://codeload.github.com/sakkke/svelte-ultimate-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244543995,"owners_count":20469591,"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":["eslint","gitpod","jest","nodejs","parcel","postcss","pwa","starter","stylelint","sugarss","svelte","template","typescript"],"created_at":"2024-11-25T07:41:23.270Z","updated_at":"2025-12-30T20:58:15.699Z","avatar_url":"https://github.com/sakkke.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![.github/workflows/main.yml](https://github.com/sakkke/svelte-ultimate-template/actions/workflows/main.yml/badge.svg)](https://github.com/sakkke/svelte-ultimate-template/actions/workflows/main.yml)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/from-referrer/)\n# Svelte Ultimate Template\n\n![svelte-typescript-sugarss](src/assets/svelte-typescript-sugarss.svg)\n\nA starter template for Progressive Web App with **Svelte** + **TypeScript** + **SugarSS**\n\n[Use this template on GitHub](https://github.com/sakkke/svelte-ultimate-template/generate)\n\n## ✨ Features\n\n- [x] Svelte\n  - [x] [svelte-spa-router](https://github.com/ItalyPaleAle/svelte-spa-router)\n- [x] TypeScript\n- [x] SugarSS\n- [x] PWA\n\n### ♻️ Lint and Test\n\n- [x] Jest\n- [x] ESLint\n  - [x] [eslint-config-standard-with-typescript](https://github.com/standard/eslint-config-standard-with-typescript)\n- [x] Stylelint\n\n### 🔨 Development\n\n- [x] Parcel\n  - [x] HMR\n- [x] Automated testing using GitHub Actions\n- [ ] Source map support for CSS\n- [x] Gitpod support\n\n## 🎨 App structure\n\n```console\n$ tree src\nsrc\n├── App.svelte\n├── assets\n│   ├── android-chrome-192x192.png\n│   ├── android-chrome-512x512.png\n│   ├── apple-touch-icon.png\n│   ├── favicon-16x16.png\n│   ├── favicon-32x32.png\n│   ├── favicon.ico\n│   ├── maskable_icon.png\n│   ├── maskable_icon_x128.png\n│   ├── maskable_icon_x192.png\n│   ├── maskable_icon_x384.png\n│   ├── maskable_icon_x48.png\n│   ├── maskable_icon_x512.png\n│   ├── maskable_icon_x72.png\n│   ├── maskable_icon_x96.png\n│   ├── safari-pinned-tab.svg\n│   └── svelte-typescript-sugarss.svg\n├── components\n│   ├── Counter.svelte\n│   └── Counter.test.ts\n├── index.html\n├── main.ts\n├── routes\n│   ├── Home.svelte\n│   └── NotFound.svelte\n├── site.webmanifest\n└── sw.ts\n\n3 directories, 25 files\n```\n\n## 🎉 Get started (automatic if using Gitpod)\n\n**Requires:**\n\n- `tmux` (used by `npm run dev`)\n\n```sh\nnpx degit sakkke/svelte-ultimate-template [project-name]\ncd [project-name]\nnpm i\nnpm run dev\n```\n\n### Stop `npm run dev`\n\n1. Press `\u003cC-b\u003e:killw\u003cCR\u003e`\n1. Done!\n\n### Manually lint and test instead of `npm run dev`\n\n#### Run Jest in watch mode\n\n```sh\nnpm run test:watch\n```\n\n#### Run ESLint in watch mode\n\n```sh\nnpm run lint:watch\n```\n\n#### Run Stylelint in watch mode\n\n```sh\nnpm run lint:style:watch\n```\n\n## 🔰 Checklist\n\n- [ ] Check or update `./LICENSE`\n- [ ] Update `name`, `description`, `author` in `./package.json`\n- [ ] Update title in `./src/index.html`\n- [ ] Update assets in `./src/assets` and `./public`\n- [ ] Update `./src/site.webmanifest`\n- [ ] Update `./README.md`\n\nDefault assets created with:\n\n1. [SVGPORN](https://svgporn.com/)\n1. [Maskable.app](https://maskable.app/)\n1. [RealFaviconGenerator](https://realfavicongenerator.net/)\n\n## 🚀 Deploy\n\n`.github/workflows/main.yml`\n\n```diff\non: push\n\njobs:\n+ deploy:\n+   needs: test\n+   runs-on: ubuntu-latest\n+   steps:\n+     - uses: actions/checkout@v2\n+     - uses: actions/setup-node@v2\n+       with:\n+         node-version: '16'\n+         cache: npm\n+     - run: npm ci\n+     - run: npm run build\n+     - uses: peaceiris/actions-gh-pages@v3\n+       with:\n+         github_token: ${{ secrets.GITHUB_TOKEN }}\n+         publish_dir: ./public\n+\n  test:\n    ...\n```\n\n## 📄 License\n\nUnlicense","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakkke%2Fsvelte-ultimate-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakkke%2Fsvelte-ultimate-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakkke%2Fsvelte-ultimate-template/lists"}