├── .github ├── PULL_REQUEST_TEMPLATE.md ├── format_urls.py ├── workflows │ ├── gh-pages.yml │ ├── link-check-config.json │ ├── link-check.yml │ ├── new-site.yml │ └── test.yml └── yamllint.yml ├── .gitignore ├── .pre-commit-config.yaml ├── license ├── readme.md ├── site ├── .env.example ├── .prettierrc.yml ├── eslint.config.js ├── package.json ├── playwright.config.ts ├── src │ ├── app.css │ ├── app.d.ts │ ├── app.html │ ├── lib │ │ ├── ContributorList.svelte │ │ ├── Filters.svelte │ │ ├── Person.svelte │ │ ├── Screenshot.svelte │ │ ├── SiteDetails.svelte │ │ ├── SiteList.svelte │ │ ├── SitePreview.svelte │ │ ├── index.ts │ │ └── stores.ts │ ├── routes │ │ ├── +error.svelte │ │ ├── +layout.svelte │ │ ├── +layout.ts │ │ ├── +page.server.ts │ │ ├── +page.svelte │ │ └── [slug] │ │ │ ├── +page.server.ts │ │ │ └── +page.svelte │ ├── sites.yml │ └── tasks │ │ ├── fetch-github-metadata.ts │ │ ├── index.ts │ │ ├── screenshots.ts │ │ └── update-readme.ts ├── static │ ├── awesome-sveltekit-banner.svg │ ├── favicon.svg │ └── screenshots │ │ ├── asm-editor.avif │ │ ├── asm-editor.small.avif │ │ ├── auth-starter-app.avif │ │ ├── auth-starter-app.small.avif │ │ ├── barnsworthburning.avif │ │ ├── barnsworthburning.small.avif │ │ ├── beatbump.avif │ │ ├── beatbump.small.avif │ │ ├── chat-ui.avif │ │ ├── chat-ui.small.avif │ │ ├── concertmash.avif │ │ ├── concertmash.small.avif │ │ ├── connorrothschild.com.avif │ │ ├── connorrothschild.com.small.avif │ │ ├── coolify.avif │ │ ├── coolify.small.avif │ │ ├── cryptgeon.avif │ │ ├── cryptgeon.small.avif │ │ ├── cybernetic.dev.avif │ │ ├── cybernetic.dev.small.avif │ │ ├── digital-criticism.avif │ │ ├── digital-criticism.small.avif │ │ ├── dotfyle.avif │ │ ├── dotfyle.small.avif │ │ ├── editable-website.avif │ │ ├── editable-website.small.avif │ │ ├── elementari.avif │ │ ├── elementari.small.avif │ │ ├── evidence.avif │ │ ├── evidence.small.avif │ │ ├── files.avif │ │ ├── files.small.avif │ │ ├── fireship.avif │ │ ├── fireship.small.avif │ │ ├── flayks.avif │ │ ├── flayks.small.avif │ │ ├── flowbite.avif │ │ ├── flowbite.small.avif │ │ ├── fluent-svelte.avif │ │ ├── fluent-svelte.small.avif │ │ ├── gitpod.avif │ │ ├── gitpod.small.avif │ │ ├── graphcms-starter-blog.avif │ │ ├── graphcms-starter-blog.small.avif │ │ ├── guess-the-year.avif │ │ ├── guess-the-year.small.avif │ │ ├── hexapipes.avif │ │ ├── hexapipes.small.avif │ │ ├── houdini-graphql.avif │ │ ├── houdini-graphql.small.avif │ │ ├── houses-of-world.avif │ │ ├── houses-of-world.small.avif │ │ ├── immich.avif │ │ ├── immich.small.avif │ │ ├── inlang.avif │ │ ├── inlang.small.avif │ │ ├── intl-explorer.avif │ │ ├── intl-explorer.small.avif │ │ ├── joy-of-code.avif │ │ ├── joy-of-code.small.avif │ │ ├── jschallenger.avif │ │ ├── jschallenger.small.avif │ │ ├── layer-cake.avif │ │ ├── layer-cake.small.avif │ │ ├── learn.svelte.dev.avif │ │ ├── learn.svelte.dev.small.avif │ │ ├── level-up-tutorials.avif │ │ ├── level-up-tutorials.small.avif │ │ ├── macos-themed-portfolio.avif │ │ ├── macos-themed-portfolio.small.avif │ │ ├── macos-web.avif │ │ ├── macos-web.small.avif │ │ ├── markushatvan.com.avif │ │ ├── markushatvan.com.small.avif │ │ ├── matt-fantinel.avif │ │ ├── matt-fantinel.small.avif │ │ ├── mermaid-live-editor.avif │ │ ├── mermaid-live-editor.small.avif │ │ ├── modern-fluid-typography-editor.avif │ │ ├── modern-fluid-typography-editor.small.avif │ │ ├── multi-monitor-calculator.avif │ │ ├── multi-monitor-calculator.small.avif │ │ ├── neovim-craft.avif │ │ ├── neovim-craft.small.avif │ │ ├── official-sveltekit-docs.avif │ │ ├── official-sveltekit-docs.small.avif │ │ ├── ollama-web-ui.avif │ │ ├── ollama-web-ui.small.avif │ │ ├── pancake.avif │ │ ├── pancake.small.avif │ │ ├── paper-trader-game.avif │ │ ├── paper-trader-game.small.avif │ │ ├── pixel-art-together.avif │ │ ├── pixel-art-together.small.avif │ │ ├── puruvj.dev.avif │ │ ├── puruvj.dev.small.avif │ │ ├── qwer.avif │ │ ├── qwer.small.avif │ │ ├── scientific-diagrams.avif │ │ ├── scientific-diagrams.small.avif │ │ ├── shadcn-svelte.avif │ │ ├── shadcn-svelte.small.avif │ │ ├── significa.co.avif │ │ ├── significa.co.small.avif │ │ ├── sk-incognito.avif │ │ ├── sk-incognito.small.avif │ │ ├── skeleton.avif │ │ ├── skeleton.small.avif │ │ ├── stemroller.avif │ │ ├── stemroller.small.avif │ │ ├── svead.avif │ │ ├── svead.small.avif │ │ ├── svelte-command-palette.avif │ │ ├── svelte-command-palette.small.avif │ │ ├── svelte-commerce.avif │ │ ├── svelte-commerce.small.avif │ │ ├── svelte-cubed.avif │ │ ├── svelte-cubed.small.avif │ │ ├── svelte-french-toast.avif │ │ ├── svelte-french-toast.small.avif │ │ ├── svelte-headless-ui.avif │ │ ├── svelte-headless-ui.small.avif │ │ ├── svelte-intl-precompile.avif │ │ ├── svelte-intl-precompile.small.avif │ │ ├── svelte-legos.avif │ │ ├── svelte-legos.small.avif │ │ ├── svelte-material-ui.avif │ │ ├── svelte-material-ui.small.avif │ │ ├── svelte-multiselect.avif │ │ ├── svelte-multiselect.small.avif │ │ ├── svelte-put.avif │ │ ├── svelte-put.small.avif │ │ ├── svelte-realworld.avif │ │ ├── svelte-realworld.small.avif │ │ ├── svelte-society.avif │ │ ├── svelte-society.small.avif │ │ ├── svelte-summit-fall-2021.avif │ │ ├── svelte-summit-fall-2021.small.avif │ │ ├── svelte.dev.avif │ │ ├── svelte.dev.small.avif │ │ ├── sveltekit-embed.avif │ │ ├── sveltekit-embed.small.avif │ │ ├── sveltekit-experiments.avif │ │ ├── sveltekit-experiments.small.avif │ │ ├── sveltekit-mdsvex-blog.avif │ │ ├── sveltekit-mdsvex-blog.small.avif │ │ ├── sveltekit-on-edge.avif │ │ ├── sveltekit-on-edge.small.avif │ │ ├── sveltekit-static-blog-starter.avif │ │ ├── sveltekit-static-blog-starter.small.avif │ │ ├── sveltekit-typescript-showcase.avif │ │ ├── sveltekit-typescript-showcase.small.avif │ │ ├── sveltelab.avif │ │ ├── sveltelab.small.avif │ │ ├── sveltestrap.avif │ │ ├── sveltestrap.small.avif │ │ ├── svelvet.avif │ │ ├── svelvet.small.avif │ │ ├── swyxkit.avif │ │ ├── swyxkit.small.avif │ │ ├── team-health-check.avif │ │ ├── team-health-check.small.avif │ │ ├── the-pudding.avif │ │ ├── the-pudding.small.avif │ │ ├── threlte.avif │ │ ├── threlte.small.avif │ │ ├── trpc-sveltekit.avif │ │ ├── trpc-sveltekit.small.avif │ │ ├── urara.avif │ │ ├── urara.small.avif │ │ ├── vert.avif │ │ ├── vert.small.avif │ │ ├── watch-this.avif │ │ ├── watch-this.small.avif │ │ ├── windmill.avif │ │ └── windmill.small.avif ├── svelte.config.js ├── tests │ └── site.test.ts ├── tsconfig.json └── vite.config.ts ├── sites.yml └── tools.yml /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | New sites should be added to sites.yml, not the auto-generated readme. They should also be 2 | 3 | - open source: While a site with private code can give design and feature ideas, there's little educational value if you can't inspect how it was made. 4 | - novel: Not just another blog or todo app. Ideally, some application or technology not already covered in this collection. 5 | - popular: At least 50 stars on GitHub or reasonable expectation to reach that number soon. 6 | 7 | If you're unsure if a site belongs here, [open a discussion](https://github.com/janosh/awesome-sveltekit/discussions). 8 | 9 | If your new site includes a tool/language/package in its `uses: [...]` field that's 10 | not already used by another site, make sure you add a link to that tool in tools.yml. 11 | -------------------------------------------------------------------------------- /.github/format_urls.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import re 3 | 4 | 5 | def main() -> int: 6 | for filename in ("sites.yml", "readme.md"): 7 | with open(filename) as file: 8 | text = file.read() 9 | 10 | text = text.replace("www.", "") 11 | 12 | # remove trailing slash from URLs 13 | if filename == "readme.md": 14 | # target markdown inline links [link](url/) 15 | text = re.sub(r"/\)", ")", text) 16 | 17 | # target URLs with a slash followed by white space, question mark (start of 18 | # query string) or end of line 19 | text = re.sub( 20 | "(.*https?://.+)/(\\s|\\?|$)", r"\g<1>\g<2>", text, flags=re.MULTILINE 21 | ) 22 | 23 | with open(filename, "w") as file: 24 | file.write(text) 25 | 26 | return 0 27 | 28 | 29 | if __name__ == "__main__": 30 | raise SystemExit(main()) 31 | -------------------------------------------------------------------------------- /.github/workflows/gh-pages.yml: -------------------------------------------------------------------------------- 1 | name: GitHub Pages 2 | 3 | on: 4 | pull_request: 5 | branches: [main] 6 | push: 7 | branches: [main] 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | uses: janosh/workflows/.github/workflows/nodejs-gh-pages.yml@main 13 | with: 14 | working-directory: site 15 | -------------------------------------------------------------------------------- /.github/workflows/link-check-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "aliveStatusCodes": [0, 200, 403, 429, 500, 503] 3 | } 4 | -------------------------------------------------------------------------------- /.github/workflows/link-check.yml: -------------------------------------------------------------------------------- 1 | name: Link check 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '0 0 1 * *' # monthly 7 | push: 8 | branches: [main] 9 | pull_request: 10 | branches: [main] 11 | 12 | jobs: 13 | link-check: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Check out repo 17 | uses: actions/checkout@v4 18 | 19 | - name: Discover broken links 20 | uses: lycheeverse/lychee-action@v2 21 | with: 22 | args: --exclude '%7B' --exclude-path ./site/src/sites.yml -- ./**/*.{md,svelte,ts,yml} 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | -------------------------------------------------------------------------------- /.github/workflows/new-site.yml: -------------------------------------------------------------------------------- 1 | name: Update readme + site screenshots on changed sites.yml 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '0 0 1 */3 *' # https://crontab.guru/every-quarter 7 | 8 | jobs: 9 | new-site: 10 | runs-on: ubuntu-latest 11 | if: github.repository_owner == 'janosh' 12 | steps: 13 | - name: Check out repo 14 | uses: actions/checkout@v4 15 | with: 16 | ref: ${{ github.head_ref }} 17 | 18 | - name: Set up node 19 | uses: actions/setup-node@v4 20 | with: 21 | node-version: 19 22 | cache: npm 23 | cache-dependency-path: site/package.json 24 | 25 | - name: Install dependencies 26 | run: npm install puppeteer js-yaml imagemin imagemin-webp 27 | 28 | - name: Update existing site screenshots and repo contributors on scheduled runs 29 | if: github.event_name == 'schedule' 30 | run: ACTION=update-existing cd site && npm run dev 31 | 32 | - name: Add screenshots for new sites and update readme 33 | if: github.event_name != 'schedule' 34 | run: cd site && npm run dev 35 | 36 | - name: Push changes if any 37 | run: | 38 | if git diff --quiet site/static/screenshots readme.md; then 39 | echo "No changes to commit" 40 | exit 0 41 | fi 42 | git config user.name 'Janosh Riebesell' 43 | git config user.email janosh.riebesell@gmail.com 44 | git add readme.md site/static/screenshots 45 | git commit -m 'update readme + screenshots' 46 | git push 47 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: 4 | pull_request: 5 | branches: [main] 6 | push: 7 | branches: [main] 8 | workflow_dispatch: 9 | 10 | jobs: 11 | tests: 12 | uses: janosh/workflows/.github/workflows/npm-test.yml@main 13 | with: 14 | working-directory: site 15 | test-cmd: '' 16 | install-e2e: npx playwright install chromium 17 | e2e-test-cmd: npx playwright test tests/*.ts 18 | -------------------------------------------------------------------------------- /.github/yamllint.yml: -------------------------------------------------------------------------------- 1 | extends: default 2 | 3 | rules: 4 | line-length: 5 | max: 120 6 | document-start: disable 7 | truthy: 8 | check-keys: false 9 | comments: 10 | min-spaces-from-content: 1 11 | braces: 12 | max-spaces-inside: 1 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | 4 | # production build 5 | .svelte-kit 6 | build 7 | 8 | # secrets 9 | .env 10 | 11 | # tests 12 | test-results 13 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | ci: 2 | autoupdate_schedule: quarterly 3 | skip: [eslint] 4 | 5 | default_stages: [pre-commit] 6 | 7 | default_install_hook_types: [pre-commit, commit-msg] 8 | 9 | repos: 10 | - repo: https://github.com/pre-commit/pre-commit-hooks 11 | rev: v5.0.0 12 | hooks: 13 | - id: check-case-conflict 14 | - id: check-symlinks 15 | - id: check-yaml 16 | - id: destroyed-symlinks 17 | - id: end-of-file-fixer 18 | - id: mixed-line-ending 19 | - id: trailing-whitespace 20 | - id: file-contents-sorter 21 | files: ^tools\.yml$ 22 | 23 | - repo: https://github.com/pre-commit/mirrors-prettier 24 | rev: v4.0.0-alpha.8 25 | hooks: 26 | - id: prettier 27 | args: [--config, site/.prettierrc.yml, --write] # edit files in-place 28 | additional_dependencies: 29 | - prettier 30 | - prettier-plugin-svelte 31 | - svelte 32 | 33 | - repo: https://github.com/adrienverge/yamllint 34 | rev: v1.37.1 35 | hooks: 36 | - id: yamllint 37 | args: [--config-file, .github/yamllint.yml] 38 | 39 | - repo: https://github.com/igorshubovych/markdownlint-cli 40 | rev: v0.44.0 41 | hooks: 42 | - id: markdownlint 43 | # MD013: line too long 44 | # MD033: no inline HTML 45 | # MD041: first line in a file should be a top-level heading 46 | args: [--disable, MD013, MD033, MD041, '--'] 47 | 48 | - repo: https://github.com/codespell-project/codespell 49 | rev: v2.4.1 50 | hooks: 51 | - id: codespell 52 | exclude: ^site/src/sites.yml$ 53 | args: [--ignore-words-list, 'ons,linz', --check-filenames] 54 | stages: [pre-commit, commit-msg] 55 | 56 | - repo: https://github.com/crate-ci/typos 57 | rev: v1.32.0 58 | hooks: 59 | - id: typos 60 | types: [text] 61 | args: [] 62 | exclude: ^site/src/sites.yml|.pre-commit-config.yaml$ 63 | 64 | - repo: https://github.com/pre-commit/mirrors-eslint 65 | rev: v9.27.0 66 | hooks: 67 | - id: eslint 68 | types: [file] 69 | args: [--fix, --config, site/eslint.config.js] 70 | files: \.(js|ts|svelte)$ 71 | additional_dependencies: 72 | - 'typescript-eslint' 73 | - eslint 74 | - eslint-plugin-svelte 75 | - globals 76 | - svelte 77 | - typescript 78 | - '@stylistic/eslint-plugin' 79 | 80 | - repo: local 81 | hooks: 82 | - id: avif-screenshots 83 | name: Screenshots must use AVIF format 84 | entry: screenshot filenames must end in .avif 85 | language: fail 86 | files: '^site/static/screenshots/.*(? [[link](url)]' 90 | entry: '\]\]\(' 91 | language: pygrep 92 | types: [markdown] 93 | 94 | - id: no-http 95 | name: URLs must use HTTPS 96 | entry: 'http:' 97 | language: pygrep 98 | types_or: [markdown, yaml] 99 | exclude: .pre-commit-config.yaml 100 | 101 | - id: no-repeated-whitespace 102 | name: No repeated spaces 103 | entry: '\S+\s{2,}' 104 | language: pygrep 105 | types: [text] 106 | exclude_types: [javascript, ts] 107 | 108 | - id: format-urls 109 | name: Format URLs 110 | entry: .github/format_urls.py 111 | language: python 112 | files: ^(sites.yml|readme.md|.github/format_urls.py)$ 113 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Janosh Riebesell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | The software is provided "as is", without warranty of any kind, express or 16 | implied, including but not limited to the warranties of merchantability, 17 | fitness for a particular purpose and noninfringement. In no event shall the 18 | authors or copyright holders be liable for any claim, damages or other 19 | liability, whether in an action of contract, tort or otherwise, arising from, 20 | out of or in connection with the software or the use or other dealings in the 21 | software. 22 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |

2 | Awesome SvelteKit 3 |

4 | 5 |

6 | 7 | [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 8 | [![Pull Requests Welcome](https://img.shields.io/badge/Pull%20Requests-welcome-brightgreen.svg?logo=github)](https://github.com/janosh/awesome-sveltekit/pulls) 9 | [![Tests](https://github.com/janosh/awesome-sveltekit/actions/workflows/test.yml/badge.svg)](https://github.com/janosh/awesome-sveltekit/actions/workflows/test.yml) 10 | [![GH Pages](https://github.com/janosh/awesome-sveltekit/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/janosh/awesome-sveltekit/actions/workflows/gh-pages.yml) 11 | [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/janosh/awesome-sveltekit/main.svg)](https://results.pre-commit.ci/latest/github/janosh/awesome-sveltekit/main) 12 | 13 |

14 | 15 |
16 | 17 | Awesome examples of SvelteKit in the wild. Visit **[janosh.github.io/awesome-sveltekit](https://janosh.github.io/awesome-sveltekit)** to view this list with screenshots plus search and sort functionality (e.g. based on GH stars). 18 | 19 | ## Sites 20 | 21 | 1. **[Ollama Web UI](https://ollamahub.com)**  22 | [[code](https://github.com/ollama-webui/ollama-webui)]  23 | 24 | GitHub stars 25 | 26 | 27 | ChatGPT-Style Web UI Client for Ollama 🦙.
28 | 29 | uses: [highlight.js], [MarkedJS], [KaTeX], [TypeScript], [Tailwind] 30 | 31 | 1. **[Svelte.dev](https://svelte.dev)**  32 | [[code](https://github.com/sveltejs/svelte/tree/master/sites/svelte.dev)]  33 | 34 | GitHub stars 35 | 36 | 37 | Cybernetically enhanced web apps.
38 | 39 | uses: [CodeMirror], [Mapbox], [Docker] 40 | 41 | 1. **[Immich](https://immich.app)**  42 | [[code](https://github.com/immich-app/immich)]  43 | 44 | GitHub stars 45 | 46 | 47 | Self-hosted photo and video backup solution directly from your mobile phone.
48 | 49 | uses: [NestJS], [TypeScript], [Tailwind], [Flutter], [Python] 50 | 51 | 1. **[Coolify](https://coolify.io)**  52 | [[code](https://github.com/coollabsio/coolify)]  53 | 54 | GitHub stars 55 | 56 | 57 | An open-source & self-hostable Heroku / Netlify alternative.
58 | 59 | uses: [PNPM], [TypeScript], [Tailwind], [sveltekit-i18n], [PostCSS], [Husky] 60 | 61 | 1. **[Official SvelteKit docs](https://kit.svelte.dev)**  62 | [[code](https://github.com/sveltejs/kit/tree/main/documentation/docs)]  63 | 64 | GitHub stars 65 | 66 | 67 | The fastest way to build Svelte apps.
68 | 69 | uses: [Netlify], [PNPM] 70 | 71 | 1. **[Gitpod](https://gitpod.io)**  72 | [[code](https://github.com/gitpod-io/gitpod)]  73 | 74 | GitHub stars 75 | 76 | 77 | Gitpod streamlines developer workflows by providing prebuilt, collaborative development environments in your browser - powered by VS Code.
78 | 79 | uses: [MDsveX], [Tailwind], [Netlify] 80 | 81 | 1. **[Windmill](https://windmill.dev)**  82 | [[code](https://github.com/windmill-labs/windmill/blob/-/frontend)]  83 | 84 | GitHub stars 85 | 86 | 87 | An OSS developer platform to build multi-step automations and internal apps from minimal Python and Typescript scripts.
88 | 89 | uses: [TypeScript], [Tailwind], [cssnano], [Cypress], [PostCSS], [svelte-highlight], [svelte-markdown] 90 | 91 | 1. **[Chat UI](https://huggingface.co/chat)**  92 | [[code](https://github.com/huggingface/chat-ui)]  93 | 94 | GitHub stars 95 | 96 | 97 | Powers the HuggingChat app. Making the community's best AI chat models available to everyone.
98 | 99 | uses: [Huggingface Inference], [Huggingface Hub], [Tailwind] 100 | 101 | 1. **[shadcn-svelte](https://shadcn-svelte.com)**  102 | [[code](https://github.com/huntabyte/shadcn-svelte/tree/main/sites/docs)]  103 | 104 | GitHub stars 105 | 106 | 107 | shadcn/ui, but for Svelte.
108 | 109 | uses: [TypeScript], [Vercel], [Tailwind], [PNPM], [Changesets], [vitest], [Prism], [MarkedJS] 110 | 111 | 1. **[Skeleton](https://skeleton.dev)**  112 | [[code](https://github.com/Brain-Bones/skeleton)]  113 | 114 | GitHub stars 115 | 116 | 117 | A fully featured web UI toolkit for Svelte + Tailwind. Supports SvelteKit, Vite, and Astro.
118 | 119 | uses: [Vitest], [PostCSS], [highlight.js], [Tailwind], [Typescript], [jsdom] 120 | 121 | 1. **[evidence](https://evidence.dev)**  122 | [[code](https://github.com/evidence-dev/evidence/blob/-/sites/example-project)]  123 | 124 | GitHub stars 125 | 126 | 127 | Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown.
128 | 129 | uses: [PNPM], [Changesets], [echarts], [uvu] 130 | 131 | 1. **[mermaid-live-editor](https://mermaid.live)**  132 | [[code](https://github.com/mermaid-js/mermaid-live-editor)]  133 | 134 | GitHub stars 135 | 136 | 137 | Edit, live preview and share mermaid charts and diagrams.
138 | 139 | uses: [TypeScript], [Docker], [Tailwind], [PostCSS], [Cypress], [Husky] 140 | 141 | 1. **[Fireship](https://fireship.io)**  142 | [[code](https://github.com/fireship-io/fireship.io)]  143 | 144 | GitHub stars 145 | 146 | 147 | The Fireship PRO course platform frontend built with Svelte, Tailwind CSS, Hugo (for static content management), Firebase for Auth and DB, Flamethrower for routing.
148 | 149 | uses: [Tailwind], [Hugo], [Firebase], [Flamethrower], [Sass], [PostCSS], [Algolia] 150 | 151 | 1. **[Svelte Material UI](https://sveltematerialui.com)**  152 | [[code](https://github.com/hperrin/svelte-material-ui/blob/-/packages/site)]  153 | 154 | GitHub stars 155 | 156 | 157 | Svelte Material UI Components.
158 | 159 | uses: [MDsveX], [TypeScript], [highlight.js], [remark], [Sass] 160 | 161 | 1. **[VERT](https://vert.sh)**  162 | [[code](https://github.com/VERT-sh/VERT)]  163 | 164 | GitHub stars 165 | 166 | 167 | A file converter that converts files client-side while being completely ad-free.
168 | 169 | uses: [TypeScript], [Tailwind], [Coolify], [WASM], [FFmpeg], [libvips], [Plausible] 170 | 171 | 1. **[Threlte](https://threlte.xyz)**  172 | [[code](https://github.com/threlte/threlte/blob/-/apps/docs)]  173 | 174 | GitHub stars 175 | 176 | 177 | Threlte is a component library for Svelte to build and render three.js scenes declaratively and state-driven in Svelte apps.
178 | 179 | uses: [TypeScript], [Three.js], [Tailwind], [PostCSS], [Algolia], [Iconify] 180 | 181 | 1. **[StemRoller](https://stemroller.com)**  182 | [[code](https://github.com/stemrollerapp/stemroller)]  183 | 184 | GitHub stars 185 | 186 | 187 | Isolate vocals, drums, bass, and other instrumental stems from any song
188 | 189 | uses: [Electron], [Tailwind], [Lodash], [PostCSS], [ytdl-core] 190 | 191 | 1. **[Flowbite](https://flowbite-svelte.com)**  192 | [[code](https://github.com/themesberg/flowbite-svelte)]  193 | 194 | GitHub stars 195 | 196 | 197 | Official Svelte components built for Flowbite and Tailwind CSS. All interactivity handled by Svelte.
198 | 199 | uses: [PNPM], [TypeScript], [Tailwind], [MDsveX], [Prism], [PostCSS], [Playwright] 200 | 201 | 1. **[macos-web](https://macos-web.app)**  202 | [[code](https://github.com/PuruVJ/macos-web)]  203 | 204 | GitHub stars 205 | 206 | 207 | Replicate some of the macOS desktop experience on the web.
208 | 209 | uses: [TypeScript], [Vercel], [SCSS], [PNPM], [Iconify] 210 | 211 | 1. **[svelte-realworld](https://github.com/gothinkster/realworld)**  212 | [[code](https://github.com/sveltejs/realworld)]  213 | 214 | GitHub stars 215 | 216 | 217 | SvelteKit implementation of the RealWorld app.
218 | 219 | uses: [Netlify], [MarkedJS] 220 | 221 | 1. **[Svelte Headless UI](https://svelte-headlessui.goss.io)**  222 | [[code](https://github.com/rgossiaux/svelte-headlessui)]  223 | 224 | GitHub stars 225 | 226 | 227 | Unofficial Svelte port of Headless UI components.
228 | 229 | uses: [MDsveX], [TypeScript], [PostCSS], [Tailwind], [cssnano], [Jest], [rehype] 230 | 231 | 1. **[Svelte Commerce](https://demo.litekart.in)**  232 | [[code](https://github.com/itswadesh/svelte-commerce)]  233 | 234 | GitHub stars 235 | 236 | 237 | Headless, Authentication, Cart & Checkout, TailwindCSS, Server Rendered, Proxy + API Integrated, Animations, Stores, Lazy Loading, Loading Indicators, Carousel, Instant Search, Faceted Filters, Typescript, Open Source, MIT license. 1 command deploy to your own server, 1 click deploy to Netlify/Vercel.
238 | 239 | uses: [Vercel], [Tailwind], [TypeScript], [svelte-toasts], [PostCSS], [cssnano] 240 | 241 | 1. **[editable-website](https://editable.website)**  242 | [[code](https://github.com/michael/editable-website)]  243 | 244 | GitHub stars 245 | 246 | 247 | A SvelteKit template for building CMS-free editable websites.
248 | 249 | uses: [Tailwind], [ProseMirror], [AWS] 250 | 251 | 1. **[Layer Cake](https://layercake.graphics)**  252 | [[code](https://github.com/mhkeller/layercake)]  253 | 254 | GitHub stars 255 | 256 | 257 | Graphics framework for Svelte with colorful demo page. Can generate responsive graphics server-side that work without JavaScript.
258 | 259 | uses: [D3], [GitHub Pages], [JSDoc], [Mocha], [Underscore] 260 | 261 | 1. **[inlang](https://inlang.com)**  262 | [[code](https://github.com/inlang/monorepo)]  263 | 264 | GitHub stars 265 | 266 | 267 | Translate software products 2x faster.
268 | 269 | uses: [TypeScript], [Vercel], [IBM Carbon], [Tailwind], [Supabase] 270 | 271 | 1. **[Pancake](https://pancake-charts.surge.sh)**  272 | [[code](https://github.com/Rich-Harris/pancake)]  273 | 274 | GitHub stars 275 | 276 | 277 | Experimental Svelte charting library. Visualize data with a combination of HTML, SVG and canvas/WebGL. Designed with server-side rendering in mind, so graphs potentially work without JavaScript. Blog post.
278 | 279 | uses: [D3], [surge.sh], [TypeScript] 280 | 281 | 1. **[Sveltestrap](https://sveltestrap.js.org)**  282 | [[code](https://github.com/bestguy/sveltestrap)]  283 | 284 | GitHub stars 285 | 286 | 287 | Bootstrap 4 & 5 components for Svelte.
288 | 289 | uses: [Storybook], [Babel], [Testing Library], [Jest], [PostCSS], [Prism] 290 | 291 | 1. **[Svelte Cubed](https://svelte-cubed.vercel.app)**  292 | [[code](https://github.com/Rich-Harris/svelte-cubed)]  293 | 294 | GitHub stars 295 | 296 | 297 | Three.js component library for Svelte. Abandoned. Check out threlte instead.
298 | 299 | uses: [TypeScript], [PNPM], [Vercel], [MDsveX] 300 | 301 | 1. **[Beatbump](https://beatbump.io)**  302 | [[code](https://github.com/snuffyDev/beatbump)]  303 | 304 | GitHub stars 305 | 306 | 307 | Alternative frontend for YouTube Music.
308 | 309 | uses: [TypeScript], [PostCSS], [SCSS] 310 | 311 | 1. **[Cryptgeon](https://cryptgeon.org)**  312 | [[code](https://github.com/cupcakearmy/cryptgeon/blob/-/packages/frontend)]  313 | 314 | GitHub stars 315 | 316 | 317 | A secure, open source notes and file sharing service inspired by PrivNote written in Rust & Svelte.
318 | 319 | uses: [svelte-intl-precompile], [sanitize-html] 320 | 321 | 1. **[Dotfyle](https://dotfyle.com)**  322 | [[code](https://github.com/codicocodes/dotfyle)]  323 | 324 | GitHub stars 325 | 326 | 327 | Discover and share Neovim configurations and plugins.
328 | 329 | uses: [TypeScript], [PNPM], [tRPC-SvelteKit], [Prisma], [Tailwind], [Octokit] 330 | 331 | 1. **[svelte-french-toast](https://svelte-french-toast.com)**  332 | [[code](https://github.com/kbrgl/svelte-french-toast)]  333 | 334 | GitHub stars 335 | 336 | 337 | Svelte port of react-hot-toast, a lightweight, customizable toast notification library.
338 | 339 | uses: [TypeScript], [Prism], [Tailwind], [PostCSS], [PNPM] 340 | 341 | 1. **[Houdini GraphQL](https://houdinigraphql.com)**  342 | [[code](https://github.com/HoudiniGraphQL/houdini)]  343 | 344 | GitHub stars 345 | 346 | 347 | Documentation site for Houdini.
348 | 349 | uses: [PNPM], [MDsveX], [Husky], [highlight.js] 350 | 351 | 1. **[svelte-put](https://svelte-put.vnphanquang.com)**  352 | [[code](https://github.com/vnphanquang/svelte-put)]  353 | 354 | GitHub stars 355 | 356 | 357 | Useful svelte stuff to put in your projects.
358 | 359 | uses: [Changesets], [MDsveX], [PostCSS], [PNPM], [Turbo] 360 | 361 | 1. **[tRPC-SvelteKit](https://icflorescu.github.io/trpc-sveltekit)**  362 | [[code](https://github.com/icflorescu/trpc-sveltekit)]  363 | 364 | GitHub stars 365 | 366 | 367 | End-to-end type-safe APIs for your SvelteKit applications.
368 | 369 | uses: [TypeScript], [tRPC] 370 | 371 | 1. **[svelte-legos](https://svelte-legos.surge.sh)**  372 | [[code](https://github.com/ankurrsinghal/svelte-legos)]  373 | 374 | GitHub stars 375 | 376 | 377 | A library of Svelte actions.
378 | 379 | uses: [TypeScript], [vitest], [Tailwind], [PostCSS], [Prism] 380 | 381 | 1. **[sveltekit-typescript-showcase](https://github.com/ivanhofer/sveltekit-typescript-showcase)**  382 | [[code](https://github.com/ivanhofer/sveltekit-typescript-showcase)]  383 | 384 | GitHub stars 385 | 386 | 387 | This repository shows how Svelte and SvelteKit work together with TypeScript.
388 | 389 | uses: [TypeScript] 390 | 391 | 1. **[swyxkit](https://swyxkit.netlify.app)**  392 | [[code](https://github.com/sw-yx/swyxkit)]  393 | 394 | GitHub stars 395 | 396 | 397 | An opinionated blog starter for SvelteKit + Tailwind + Netlify. Refreshed for 2022!
398 | 399 | uses: [Tailwind], [Netlify] 400 | 401 | 1. **[Fluent Svelte](https://fluent-svelte.vercel.app)**  402 | [[code](https://github.com/Tropix126/fluent-svelte)]  403 | 404 | GitHub stars 405 | 406 | 407 | A faithful implementation of Microsoft's Fluent design system in Svelte.
408 | 409 | uses: [MDsveX], [SCSS], [TypeScript], [remark], [rehype], [PNPM], [PostCSS], [Prism] 410 | 411 | 1. **[Urara](https://urara-demo.netlify.app)**  412 | [[code](https://github.com/importantimport/urara)]  413 | 414 | GitHub stars 415 | 416 | 417 | Sweet & Powerful SvelteKit Blog Template.
418 | 419 | uses: [MDsveX], [PostCSS], [Tailwind], [DaisyUI], [TypeScript], [PNPM] 420 | 421 | 1. **[learn.svelte.dev](https://learn.svelte.dev)**  422 | [[code](https://github.com/sveltejs/learn.svelte.dev)]  423 | 424 | GitHub stars 425 | 426 | 427 | A soup-to-nuts interactive tutorial on how to build apps with Svelte.
428 | 429 | uses: [Vercel], [PNPM], [Prism], [MarkedJS], [CodeMirror] 430 | 431 | 1. **[QWER](https://svelte-qwer.vercel.app)**  432 | [[code](https://github.com/kwchang0831/svelte-QWER)]  433 | 434 | GitHub stars 435 | 436 | 437 | ✒︎ Simply Awesome Blog Starter built with SvelteKit and ❤
438 | 439 | uses: [UnoCSS], [TypeScript], [MarkedJS], [PNPM], [Vercel] 440 | 441 | 1. **[SvelteKit static blog starter](https://sveltekit-static-starter.netlify.app)**  442 | [[code](https://github.com/josh-collinsworth/sveltekit-blog-starter)]  443 | 444 | GitHub stars 445 | 446 | 447 | A pre-configured SvelteKit static blog starter, with Sass, Markdown, MDSvex, Rehype and background preloading.
448 | 449 | uses: [Netlify], [MDsveX], [Sass], [Husky] 450 | 451 | 1. **[Joy of Code](https://joyofcode.xyz)**  452 | [[code](https://github.com/mattcroat/joy-of-code)]  453 | 454 | GitHub stars 455 | 456 | 457 | 🌸 Joy of Code is a digital garden growing curious minds.
458 | 459 | uses: [GitHub API], [Monaco], [Playwright], [Google Analytics], [Supabase], [Vercel], [PNPM], [Sass], [TypeScript], [remark], [rehype] 460 | 461 | 1. **[Files](https://files.community)**  462 | [[code](https://github.com/files-community/website)]  463 | 464 | GitHub stars 465 | 466 | 467 | 3rd Party File Manager for Windows.
468 | 469 | uses: [PNPM], [TypeScript], [SCSS], [Vercel] 470 | 471 | 1. **[SvelteLab](https://sveltelab.dev)**  472 | [[code](https://github.com/sveltelab/sveltelab)]  473 | 474 | GitHub stars 475 | 476 | 477 | Supercharged REPL for Svelte (think StackBlitz specialized for Svelte)
478 | 479 | uses: [Playwright], [vitest], [Iconify], [MarkedJS], [TypeScript], [PNPM], [Pocketbase], [Vercel], [Tailwind] 480 | 481 | 1. **[Svelte Society](https://sveltesociety.dev)**  482 | [[code](https://github.com/svelte-society/sveltesociety.dev)]  483 | 484 | GitHub stars 485 | 486 | 487 | Global network of Svelte fans striving to promote Svelte and its ecosystem.
488 | 489 | uses: [TypeScript], [Gitpod] 490 | 491 | 1. **[Watch This](https://github.com/StephDietz/watch-this/issues/28)**  492 | [[code](https://github.com/StephDietz/watch-this)]  493 | 494 | GitHub stars 495 | 496 | 497 | Uses OpenAI GPT-3 API and streaming Vercel edge functions to generate cinema recommendations based on user input.
498 | 499 | uses: [TypeScript], [Vercel], [Tailwind] 500 | 501 | 1. **[Modern Fluid Typography Editor](https://modern-fluid-typography.vercel.app)**  502 | [[code](https://github.com/codeAdrian/modern-fluid-typography-editor)]  503 | 504 | GitHub stars 505 | 506 | 507 | Easily create and fine-tune fluid typography values with Modern CSS clamp().
508 | 509 | uses: [TypeScript], [PostCSS], [Chart.js], [cssnano] 510 | 511 | 1. **[neovim craft](https://neovimcraft.com)**  512 | [[code](https://github.com/neurosnap/neovimcraft)]  513 | 514 | GitHub stars 515 | 516 | 517 | Curated list of neovim plugins.
518 | 519 | uses: [TypeScript], [Husky] 520 | 521 | 1. **[Matt Fantinel](https://fantinel.dev)**  522 | [[code](https://github.com/matfantinel/matfantinel.github.io)]  523 | 524 | GitHub stars 525 | 526 | 527 | Personal website and blog of Matt Fantinel, web developer.
528 | 529 | uses: [MDsveX], [SCSS], [Iconoir], [Plausible] 530 | 531 | 1. **[Svelte MultiSelect](https://janosh.github.io/svelte-multiselect)**  532 | [[code](https://github.com/janosh/svelte-multiselect)]  533 | 534 | GitHub stars 535 | 536 | 537 | Keyboard-friendly, accessible and highly customizable multi-select component.
538 | 539 | uses: [Vitest], [Playwright], [Typescript], [PNPM], [pre-commit], [rehype], [jsdom], [GitHub Pages], [mdsvexamples] 540 | 541 | 1. **[Scientific Diagrams](https://janosh.github.io/diagrams)**  542 | [[code](https://github.com/janosh/diagrams)]  543 | 544 | GitHub stars 545 | 546 | 547 | 100+ MIT-licensed scientific diagrams created with CeTZ (Typst) and/or TikZ (LaTeX). Mostly about physics, chemistry, and machine learning.
548 | 549 | uses: [TypeScript], [svelte-multiselect], [pre-commit], [PNPM], [svelte-enhanced-img] 550 | 551 | 1. **[Svelte Intl Precompile](https://svelte-intl-precompile.com/en/docs/configuration)**  552 | [[code](https://github.com/cibernox/svelte-intl-precompile)]  553 | 554 | GitHub stars 555 | 556 | 557 | I18n library for Svelte that analyzes your keys at build time for maximum performance and minimal footprint. Built as a SvelteKit plugin so good to use as a reference if you want to build one yourself.
558 | 559 | uses: [JS-Yaml], [JSON5] 560 | 561 | 1. **[Significa.co](https://significa.co)**  562 | [[code](https://github.com/significa/significa.co)]  563 | 564 | GitHub stars 565 | 566 | 567 | Product Design and Development agency website, built with Sveltekit.
568 | 569 | uses: [TypeScript], [Vercel], [Tailwind], [AWS], [Dynamodb], [Notion], [Storyblock], [Matter.js], [Plausible] 570 | 571 | 1. **[SvelteKit on Edge](https://sveltekit-on-the-edge.vercel.app)**  572 | [[code](https://github.com/Rich-Harris/sveltekit-on-the-edge)]  573 | 574 | GitHub stars 575 | 576 | 577 | SvelteKit, running on the edge. In this case, Vercel's edge network. See https://twitter.com/leeerob/status/1517627769924034565.
578 | 579 | uses: [PNPM], [Vercel] 580 | 581 | 1. **[SvelteKit Embed](https://sveltekit-embed.vercel.app)**  582 | [[code](https://github.com/spences10/sveltekit-embed)]  583 | 584 | GitHub stars 585 | 586 | 587 | SvelteKit embed components for YouTube, Vimeo, Twitter, Spotify, SoundCloud, StackBlitz, CodePen, AnchorFM, Simple Cast and more.
588 | 589 | uses: [TypeScript], [PNPM], [Vercel], [MDsveX], [Tailwind], [PostCSS], [Husky], [Playwright], [DaisyUI] 590 | 591 | 1. **[Pixel Art Together](https://pixelart.liveblocks.app)**  592 | [[code](https://github.com/liveblocks/pixel-art-together)]  593 | 594 | GitHub stars 595 | 596 | 597 | A multiplayer pixel art editor powered by Liveblocks.
598 | 599 | uses: [TypeScript], [Liveblocks], [Tailwind], [PostCSS], [panzoom] 600 | 601 | 1. **[Hexapipes](https://hexapipes.vercel.app)**  602 | [[code](https://github.com/gereleth/hexapipes)]  603 | 604 | GitHub stars 605 | 606 | 607 | Browser game where the goal is to correctly line up pipes placed on hexagonal puzzle pieces.
608 | 609 | uses: [Vercel] 610 | 611 | 1. **[svelte-command-palette](https://svelte-command-palette.vercel.app)**  612 | [[code](https://github.com/rohitpotato/svelte-command-palette)]  613 | 614 | GitHub stars 615 | 616 | 617 | Dead simple command palette with fuzzy search.
618 | 619 | uses: [TypeScript], [Playwright], [PostCSS], [Tailwind], [Release It], [Vercel] 620 | 621 | 1. **[Auth starter app](https://passlock.dev)**  622 | [[code](https://github.com/passlock-dev/passlock/tree/master/packages/create-sveltekit/docs)]  623 | 624 | GitHub stars 625 | 626 | 627 | SvelteKit template featuring Passkeys, Social Sign in and more.
628 | 629 | uses: [passlock], [tailwind], [superforms], [lucia] 630 | 631 | 1. **[ASM Editor](https://asm-editor.specy.app)**  632 | [[code](https://github.com/Specy/asm-editor)]  633 | 634 | GitHub stars 635 | 636 | 637 | A modern webapp to write, run and learn M68K assembly code.
638 | 639 | uses: [TypeScript], [Sass], [Monaco], [WASM] 640 | 641 | 1. **[sveltekit-mdsvex-blog](https://sveltekit-mdsvex-blog.netlify.app)**  642 | [[code](https://github.com/mvasigh/sveltekit-mdsvex-blog)]  643 | 644 | GitHub stars 645 | 646 | 647 | A minimalist blog template built with SvelteKit and MDsveX.
648 | 649 | uses: [TypeScript], [MDsveX], [Rehype], [Remark], [PNPM], [Vitest], [Playwright] 650 | 651 | 1. **[Elementari](https://janosh.github.io/elementari)**  652 | [[code](https://github.com/janosh/elementari)]  653 | 654 | GitHub stars 655 | 656 | 657 | Interactive visualizations for materials science: periodic tables, 3d crystal structures (Molecules coming soon), Bohr atoms, nuclei, heatmaps, scatter plots.
658 | 659 | uses: [TypeScript], [pre-commit], [D3], [svelte-multiselect], [Vitest], [Playwright], [PNPM], [jsdom], [GitHub Pages] 660 | 661 | 1. **[Intl Explorer](https://intl-explorer.com)**  662 | [[code](https://github.com/jesperorb/intl-explorer)]  663 | 664 | GitHub stars 665 | 666 | 667 | A tool for experimenting and trying out the ECMAScript Internationalization API.
668 | 669 | uses: [TypeScript], [PNPM], [Playwright], [Vercel], [svelte-highlight], [Husky], [commitlint] 670 | 671 | 1. **[Paper Trader Game](https://paper-trader.davjhan.com)**  672 | [[code](https://github.com/davjhan/paper-trader-game)]  673 | 674 | GitHub stars 675 | 676 | 677 | A simple web game where you are given 45 seconds and $100 to make as much money as you can trading a fake stock.
678 | 679 | uses: [Tailwind], [Netlify], [Chart.js], [Plausible] 680 | 681 | 1. **[SvelteKit Experiments](https://sveltekit-demo-psi.vercel.app)**  682 | [[code](https://github.com/tsukhu/sveltekit-demo)]  683 | 684 | GitHub stars 685 | 686 | 687 | A set of example apps built with SvelteKit and deployed on Vercel. As an ongoing project, this will continue to be enhanced with more examples to showcase the power of SvelteKit.
688 | 689 | uses: [Tailwind], [Vercel], [GraphQL], [Firebase], [Typescript] 690 | 691 | 1. **[SK Incognito](https://sk-incognito.vercel.app)**  692 | [[code](https://github.com/GrygrFlzr/kit-docs)]  693 | 694 | GitHub stars 695 | 696 | 697 | The unofficial SvelteKit docs.
698 | 699 | uses: [MDsveX], [Tailwind], [PNPM] 700 | 701 | 1. **[Svead](https://svead.pages.dev)**  702 | [[code](https://github.com/spences10/svead)]  703 | 704 | GitHub stars 705 | 706 | 707 | Svead 🍺, a component that allows you to set head meta information, canonical, title, Twitter and Facebook Open Graph tags, and schema.org data.
708 | 709 | uses: [TypeScript], [PNPM], [Cloudflare Pages], [MDsveX], [Tailwind], [PostCSS], [DaisyUI] 710 | 711 | 1. **[markushatvan.com](https://markushatvan.com)** 712 | 713 | Blog posts with code snippets, contact form with Svelte Forms Lib, RSS and sitemap.
714 | 715 | uses: [Tailwind], [MDsveX], [Svelte Forms Lib] 716 | 717 | 1. **[connorrothschild.com](https://connorrothschild.com)**  718 | [[code](https://github.com/connorrothschild/v4)]  719 | 720 | GitHub stars 721 | 722 | 723 | Creative, content-based portfolio site of Connor Rothschild.
724 | 725 | uses: [MDsveX], [GSAP], [Netlify] 726 | 727 | 1. **[The Pudding](https://pudding.cool)**  728 | [[code](https://github.com/the-pudding/website)]  729 | 730 | GitHub stars 731 | 732 | 733 | Digital publication with emphasis on data viz.
734 | 735 | uses: [D3], [PostCSS], [Lodash], [PNPM] 736 | 737 | 1. **[macOS-Themed Portfolio](https://macosportfolio.netlify.app)**  738 | [[code](https://github.com/ansxuman/macOS-Themed-Portfolio)]  739 | 740 | GitHub stars 741 | 742 | 743 | An interactive portfolio website inspired by the macOS interface.
744 | 745 | uses: [TypeScript], [Tailwind], [PM2], [Cloudflare], [Netlify], [Nginx] 746 | 747 | 1. **[Guess The Year](https://guess-the-year.davjhan.com)**  748 | [[code](https://github.com/davjhan/guess-the-year-game)]  749 | 750 | GitHub stars 751 | 752 | 753 | Round-based browser game where you guess the year in which famous event happened. Answers range between 1900-2021. You start with 100 points. The more your guess is off, the more points you loose.
754 | 755 | uses: [Tailwind], [Netlify] 756 | 757 | 1. **[Multi-Monitor Calculator](https://multimonitorcalculator.com)**  758 | [[code](https://github.com/KevinVandy/multi-monitor_calculator)]  759 | 760 | GitHub stars 761 | 762 | 763 | A tool for planning your multi-monitor setup.
764 | 765 | uses: [TypeScript], [SMUI], [Sass] 766 | 767 | 1. **[barnsworthburning](https://barnsworthburning.net)**  768 | [[code](https://github.com/Aias/barnsworthburning)]  769 | 770 | GitHub stars 771 | 772 | 773 | An experimental commonplace book / digital garden with a richly interconnected set of links, notes, and ideas.
774 | 775 | uses: [TypeScript], [Airtable], [Radix], [MarkedJS], [Cloudflare Pages] 776 | 777 | 1. **[puruvj.dev](https://puruvj.dev)**  778 | [[code](https://github.com/puruvj/puruvjdev3)]  779 | 780 | GitHub stars 781 | 782 | 783 | Puru Vijay's blog site.
784 | 785 | uses: [Vercel], [TypeScript], [SCSS], [Cloudinary] 786 | 787 | 1. **[ConcertMash](https://concertmash.com)**  788 | [[code](https://github.com/mcmxcdev/ConcertMash)]  789 | 790 | GitHub stars 791 | 792 | 793 | Easily generate a playlist for your upcoming concerts based on selected artists!
794 | 795 | uses: [TypeScript], [Tailwind], [Spotify Web API], [Filepond], [PNPM], [Netlify] 796 | 797 | 1. **[GraphCMS Starter Blog](https://scottspence.com/2021/05/06/graphcms-svelte-starter)**  798 | [[code](https://github.com/spences10/sveltekit-starter-blog)]  799 | 800 | GitHub stars 801 | 802 | 803 | This blog starter shows how to use SvelteKit with GraphCMS.
804 | 805 | uses: [Vercel], [Tailwind], [SCSS], [GraphCMS] 806 | 807 | 1. **[Svelte Summit Fall 2021](https://sveltesummit.com)**  808 | [[code](https://github.com/svelte-society/svelte-summit)]  809 | 810 | GitHub stars 811 | 812 | 813 | The 4th virtual conference about Svelte
814 | 815 | uses: [Elder.js], [PostCSS], [Cloudflare] 816 | 817 | 1. **[Team Health Check](https://team-health-check-coral.vercel.app)**  818 | [[code](https://github.com/codehub-kirans/team-health-check)]  819 | 820 | GitHub stars 821 | 822 | 823 | A tool to visualize historical agile scrum team performance based on behavior anchors.
824 | 825 | uses: [PicoCSS], [Pocketbase], [Vercel] 826 | 827 | 1. **[digital criticism](https://critique-digitale.ch)**  828 | [[code](https://github.com/critique-digitale/critique-digitale.ch)]  829 | 830 | GitHub stars 831 | 832 | 833 | Scholarly conference in the digital humanities.
834 | 835 | uses: [MDsveX], [MVP.css], [Cloudflare] 836 | 837 | 1. **[Svelvet](https://svelvet.io)**  838 | [[code](https://github.com/oslabs-beta/Svelvet)]  839 | 840 | GitHub stars 841 | 842 | 843 | A lightweight Svelte component library for building interactive node-based flow diagrams.
844 | 845 | uses: [Playwright], [D3], [Testing Library], [Tailwind], [PostCSS], [Vitest] 846 | 847 | 1. **[Flayks](https://flayks.com)** 848 | 849 | Portfolio of Félix Péault, Digital Designer and Art Director. Sanity.io [interview], [feature].
850 | 851 | uses: [Sanity], [anime.js], [Vercel], [TypeScript], [SCSS], [PostCSS] 852 | 853 | 1. **[Level Up Tutorials](https://leveluptutorials.com)** 854 | 855 | Video tutorials for web developers and designers.
856 | 857 | uses: [TypeScript], [Google Tag Manager] 858 | 859 | 1. **[JSchallenger](https://jschallenger.com)** 860 | 861 | Free Javascript challenges. Learn Javascript online by solving coding exercises.
862 | 863 | uses: [Tailwind], [DynamoDB], [AWS] 864 | 865 | 1. **[cybernetic.dev](https://cybernetic.dev)** 866 | 867 | Data-centric UI experiments
868 | 869 | uses: [Three.js], [Cytoscape.js], [Vercel] 870 | 871 | 1. **[Houses of World](https://housesof.world)** 872 | 873 | A travel, photography and design project showcasing charismatic houses around the world.
874 | 875 | uses: [Typescript], [SCSS], [PostCSS], [Motion One], [OGL], [WebGL], [Directus], [Swell Commerce], [Vercel] 876 | 877 | [airtable]: https://airtable.com 878 | [algolia]: https://algolia.com 879 | [anime.js]: https://animejs.com 880 | [aws]: https://aws.amazon.com 881 | [babel]: https://babeljs.io 882 | [changesets]: https://github.com/changesets/changesets 883 | [chart.js]: https://chartjs.org 884 | [cloudflare pages]: https://pages.cloudflare.com 885 | [cloudflare]: https://cloudflare.com 886 | [cloudinary]: https://cloudinary.com 887 | [codemirror]: https://codemirror.net 888 | [commitlint]: https://github.com/conventional-changelog/commitlint 889 | [coolify]: https://coolify.io 890 | [cssnano]: https://cssnano.github.io/cssnano 891 | [cypress]: https://cypress.io 892 | [cytoscape.js]: https://js.cytoscape.org 893 | [d3]: https://d3js.org 894 | [daisyui]: https://daisyui.com 895 | [directus]: https://directus.io 896 | [docker]: https://docker.com 897 | [dynamodb]: https://aws.amazon.com/dynamodb 898 | [echarts]: https://github.com/apache/echarts 899 | [elder.js]: https://github.com/Elderjs/elderjs 900 | [electron]: https://electronjs.org 901 | [ffmpeg]: https://ffmpeg.org 902 | [filepond]: https://pqina.nl/filepond 903 | [firebase]: https://firebase.google.com 904 | [flamethrower]: https://github.com/fireship-io/flamethrower 905 | [flutter]: https://flutter.dev 906 | [github api]: https://docs.github.com/rest 907 | [github pages]: https://pages.github.com 908 | [gitpod]: https://gitpod.io 909 | [google analytics]: https://analytics.google.com 910 | [google tag manager]: https://tagmanager.google.com 911 | [graphcms]: https://graphcms.com 912 | [graphql]: https://graphql.org 913 | [gsap]: https://greensock.com/gsap 914 | [highlight.js]: https://highlightjs.org 915 | [huggingface hub]: https://github.com/huggingface/huggingface_hub 916 | [huggingface inference]: https://github.com/huggingface/text-generation-inference 917 | [hugo]: https://gohugo.io 918 | [husky]: https://github.com/typicode/husky 919 | [ibm carbon]: https://carbondesignsystem.com 920 | [iconify]: https://iconify.design 921 | [iconoir]: https://iconoir.com 922 | [jest]: https://jestjs.io 923 | [js-yaml]: https://github.com/nodeca/js-yaml 924 | [jsdoc]: https://jsdoc.app 925 | [jsdom]: https://github.com/jsdom/jsdom 926 | [json5]: https://github.com/json5/json5 927 | [katex]: https://github.com/KaTeX/KaTeX 928 | [libvips]: https://libvips.org 929 | [liveblocks]: https://liveblocks.io 930 | [lodash]: https://lodash.com 931 | [lucia]: https://github.com/lucia-auth/lucia 932 | [mapbox]: https://mapbox.com 933 | [markedjs]: https://marked.js.org 934 | [matter.js]: https://brm.io/matter-js 935 | [mdsvex]: https://github.com/pngwn/MDsveX 936 | [mdsvexamples]: https://github.com/mattjennings/mdsvexamples 937 | [mocha]: https://mochajs.org 938 | [monaco]: https://microsoft.github.io/monaco-editor 939 | [motion one]: https://motion.dev 940 | [mvp.css]: https://github.com/andybrewer/mvp 941 | [nestjs]: https://nestjs.com 942 | [netlify]: https://netlify.com 943 | [nginx]: https://nginx.org 944 | [notion]: https://notion.so 945 | [octokit]: https://github.com/octokit/octokit.js 946 | [ogl]: https://github.com/oframe/ogl 947 | [panzoom]: https://github.com/timmywil/panzoom 948 | [passlock]: https://github.com/passlock-dev/passkeys 949 | [picocss]: https://picocss.com 950 | [plausible]: https://plausible.io 951 | [playwright]: https://playwright.dev 952 | [pm2]: https://pm2.io 953 | [pnpm]: https://pnpm.io 954 | [pocketbase]: https://pocketbase.io 955 | [postcss]: https://postcss.org 956 | [pre-commit]: https://pre-commit.com 957 | [prism]: https://prismjs.com 958 | [prisma]: https://prisma.io 959 | [prosemirror]: https://prosemirror.net 960 | [python]: https://python.org 961 | [radix]: https://radix-ui.com 962 | [rehype]: https://github.com/rehypejs/rehype 963 | [release it]: https://github.com/release-it/release-it 964 | [remark]: https://github.com/remarkjs/remark 965 | [sanitize-html]: https://github.com/apostrophecms/sanitize-html 966 | [sanity]: https://sanity.io 967 | [sass]: https://sass-lang.com 968 | [scss]: https://sass-lang.com/documentation/syntax 969 | [smui]: https://sveltematerialui.com 970 | [spotify web api]: https://github.com/JMPerez/spotify-web-api-js 971 | [storyblock]: https://storyblok.com 972 | [storybook]: https://storybook.js.org 973 | [supabase]: https://supabase.com 974 | [superforms]: https://github.com/ciscoheat/sveltekit-superforms 975 | [surge.sh]: https://surge.sh 976 | [svelte forms lib]: https://github.com/tjinauyeung/svelte-forms-lib 977 | [svelte-enhanced-img]: https://svelte.dev/docs/kit/images#sveltejs-enhanced-img 978 | [svelte-highlight]: https://github.com/metonym/svelte-highlight 979 | [svelte-intl-precompile]: https://github.com/cibernox/svelte-intl-precompile 980 | [svelte-markdown]: https://github.com/pablo-abc/svelte-markdown 981 | [svelte-multiselect]: https://github.com/janosh/svelte-multiselect 982 | [svelte-toasts]: https://github.com/mzohaibqc/svelte-toasts 983 | [sveltekit-i18n]: https://github.com/sveltekit-i18n/lib 984 | [swell commerce]: https://swell.is 985 | [tailwind]: https://tailwindcss.com 986 | [testing library]: https://testing-library.com 987 | [three.js]: https://threejs.org 988 | [trpc-sveltekit]: https://github.com/icflorescu/trpc-sveltekit 989 | [trpc]: https://trpc.io 990 | [turbo]: https://github.com/vercel/turbo 991 | [typescript]: https://typescriptlang.org 992 | [underscore]: https://underscorejs.org 993 | [unocss]: https://github.com/unocss/unocss 994 | [uvu]: https://github.com/lukeed/uvu 995 | [vercel]: https://vercel.com 996 | [vitest]: https://vitest.dev 997 | [wasm]: https://webassembly.org 998 | [webgl]: https://developer.mozilla.org/docs/Web/API/WebGL_API 999 | [ytdl-core]: https://github.com/fent/node-ytdl-core 1000 | 1001 | ## 🎉 Suggestions Welcome 1002 | 1003 | Want to add an open-source project to this list? [PRs welcome](https://github.com/janosh/awesome-sveltekit/edit/main/sites.yml)! This collection is a community effort intended as a learning resource for Svelte devs. Entry requirements: 1004 | 1005 | 1. **open source**: While a site with private code can give design and feature ideas, there's little educational value if you can't inspect how it was made. 1006 | 1. **novel**: Not just another blog or todo app. Ideally, some application or technology not already covered in this collection. 1007 | 1. **popular**: At least 50 stars on GitHub or reasonable expectation to reach that number soon. 1008 | 1009 | These requirements arose over time so not all existing entries satisfy them. There can also be tradeoffs. For example, if novelty is very high, popularity can be lower. If you're unsure, please [open a discussion](https://github.com/janosh/awesome-sveltekit/discussions) first. 1010 | 1011 | A good place to discover influential Svelte projects (not necessarily SvelteKit) is [GitHub Trending](https://github.com/trending/svelte?since=monthly). If anything on that list stands out to you but is missing here, please add it! 1012 | -------------------------------------------------------------------------------- /site/.env.example: -------------------------------------------------------------------------------- 1 | GH_TOKEN=ghp_... 2 | -------------------------------------------------------------------------------- /site/.prettierrc.yml: -------------------------------------------------------------------------------- 1 | semi: false 2 | singleQuote: true 3 | overrides: 4 | - files: '*.svelte' 5 | options: 6 | printWidth: 90 7 | -------------------------------------------------------------------------------- /site/eslint.config.js: -------------------------------------------------------------------------------- 1 | import stylistic from '@stylistic/eslint-plugin' 2 | import svelte from 'eslint-plugin-svelte' 3 | import tslint from 'typescript-eslint' 4 | 5 | /** @type { import("eslint").Linter.Config[] } */ 6 | export default [ 7 | ...tslint.configs.recommended, 8 | ...svelte.configs[`flat/recommended`], 9 | { plugins: { '@stylistic': stylistic } }, 10 | { 11 | rules: { 12 | '@typescript-eslint/no-unused-vars': [ 13 | `error`, 14 | { argsIgnorePattern: `^_`, varsIgnorePattern: `^_` }, 15 | ], 16 | '@stylistic/quotes': [`error`, `backtick`, { avoidEscape: true }], 17 | 'svelte/no-at-html-tags': `off`, 18 | }, 19 | }, 20 | { 21 | languageOptions: { ecmaVersion: 2020 }, 22 | }, 23 | { 24 | files: [`**/*.svelte`], 25 | languageOptions: { 26 | parserOptions: { 27 | parser: tslint.parser, 28 | }, 29 | }, 30 | }, 31 | { 32 | ignores: [`build/`, `.svelte-kit/`, `package/`], 33 | }, 34 | ] 35 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-sveltekit", 3 | "description": "Awesome examples of SvelteKit in the wild", 4 | "author": "Janosh Riebesell ", 5 | "homepage": "https://janosh.github.io/awesome-sveltekit", 6 | "repository": "https://github.com/janosh/awesome-sveltekit", 7 | "license": "MIT", 8 | "version": "0.1.0", 9 | "type": "module", 10 | "bugs": "https://github.com/janosh/awesome-sveltekit/issues", 11 | "scripts": { 12 | "dev": "vite dev", 13 | "build": "vite build", 14 | "preview": "vite preview", 15 | "serve": "vite build && vite preview", 16 | "check": "svelte-check", 17 | "test": "playwright test tests/*.test.ts" 18 | }, 19 | "devDependencies": { 20 | "@iconify/svelte": "^5.0.0", 21 | "@playwright/test": "^1.52.0", 22 | "@rollup/plugin-yaml": "^4.1.2", 23 | "@stylistic/eslint-plugin": "^4.2.0", 24 | "@sveltejs/adapter-static": "^3.0.8", 25 | "@sveltejs/kit": "^2.21.0", 26 | "@sveltejs/vite-plugin-svelte": "^5.0.3", 27 | "dotenv": "^16.5.0", 28 | "eslint": "^9.27.0", 29 | "eslint-plugin-svelte": "^3.8.1", 30 | "js-yaml": "^4.1.0", 31 | "marked": "^15.0.11", 32 | "prettier": "^3.5.3", 33 | "prettier-plugin-svelte": "^3.4.0", 34 | "puppeteer": "^24.8.2", 35 | "sharp": "^0.34.1", 36 | "svelte": "^5.30.2", 37 | "svelte-check": "^4.2.1", 38 | "svelte-multiselect": "11.1.0", 39 | "svelte-preprocess": "^6.0.3", 40 | "svelte-zoo": "^0.4.18", 41 | "svelte2tsx": "^0.7.39", 42 | "typescript": "5.8.3", 43 | "typescript-eslint": "^8.32.1", 44 | "vite": "^6.3.5" 45 | }, 46 | "keywords": [ 47 | "sveltekit", 48 | "awesome collection", 49 | "example sites", 50 | "learning resource" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /site/playwright.config.ts: -------------------------------------------------------------------------------- 1 | import type { PlaywrightTestConfig } from '@playwright/test' 2 | 3 | export default { 4 | webServer: { 5 | command: `vite dev --port 3005`, 6 | port: 3005, 7 | }, 8 | } satisfies PlaywrightTestConfig 9 | -------------------------------------------------------------------------------- /site/src/app.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --bg: #061e25; 3 | --main-max-width: 1300px; 4 | 5 | --zoo-github-corner-color: var(--bg); 6 | --zoo-github-corner-bg: white; 7 | 8 | --sms-bg: black; 9 | --sms-max-width: 22em; 10 | --sms-selected-bg: rgba(255, 255, 255, 0.15); 11 | --sms-options-bg: #2e2935; 12 | --sms-border: 1px solid #333; 13 | --sms-li-active-bg: rgba(255, 255, 255, 0.15); 14 | --sms-placeholder-color: gray; 15 | } 16 | body { 17 | background: var(--bg); 18 | padding: 5vw; 19 | font-family: -apple-system, BlinkMacSystemFont, Roboto, sans-serif; 20 | margin: auto; 21 | color: #eee; 22 | overflow-x: hidden; 23 | } 24 | main { 25 | max-width: var(--main-max-width); 26 | margin: auto; 27 | margin-bottom: 3em; 28 | width: 100%; 29 | } 30 | input[type='search'] { 31 | border: 1px solid #333; 32 | outline: none; 33 | padding: 3pt 1ex; 34 | border-radius: 3pt; 35 | color: inherit; 36 | background: black; 37 | font-size: 1em; 38 | } 39 | input[type='search']::placeholder { 40 | color: gray; 41 | } 42 | a { 43 | color: cornflowerblue; 44 | text-decoration: none; 45 | } 46 | a:hover { 47 | color: orange; 48 | } 49 | .flex { 50 | display: flex; 51 | align-items: center; 52 | flex-wrap: wrap; 53 | } 54 | :where(h1, h2, h3, h4, h5, h6) { 55 | scroll-margin-top: 100px; 56 | } 57 | 58 | ::highlight(highlight-match) { 59 | color: mediumaquamarine; 60 | text-decoration: underline; 61 | } 62 | -------------------------------------------------------------------------------- /site/src/app.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*sites.yml' { 4 | export const lastParsed: string 5 | const sites: import('./lib').Site[] 6 | export default sites 7 | } 8 | 9 | declare module '*tools.yml' { 10 | const links: Record 11 | export default links 12 | } 13 | -------------------------------------------------------------------------------- /site/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 | 19 | %sveltekit.head% 20 | 21 | 22 | 23 |
%sveltekit.body%
24 | 25 | 26 | -------------------------------------------------------------------------------- /site/src/lib/ContributorList.svelte: -------------------------------------------------------------------------------- 1 | 9 | 10 |
    11 | {#each contributors as { avatar_url, html_url, login } (JSON.stringify(login))} 12 |
  • 13 | 14 | {login} 15 | 16 | {login} 17 |
  • 18 | {/each} 19 |
20 | 21 | 59 | -------------------------------------------------------------------------------- /site/src/lib/Filters.svelte: -------------------------------------------------------------------------------- 1 | 21 | 22 |
23 | 24 |
25 | ({ label, count }))} 27 | placeholder="Filter by tag..." 28 | bind:selected={$filter_tags} 29 | > 30 | {#snippet option({ option })} 31 | 32 | {option.label} 33 | {option.count} 34 | 35 | {/snippet} 36 | 37 | {#if $filter_tags.length > 1} 38 | 39 | {/if} 40 |
41 |
42 | ({ label, count }))} 44 | placeholder="Filter by contributor..." 45 | bind:selected={$filter_contributors} 46 | > 47 | {#snippet option({ option })} 48 | 49 | {option.label} 50 | {option.count} 51 | 52 | {/snippet} 53 | 54 | {#if $filter_contributors.length > 1} 55 | 56 | {/if} 57 |
58 |
59 | 65 | {#if $sort_by?.length > 0} 66 | 67 | {/if} 68 |
69 |
70 | 71 | 89 | -------------------------------------------------------------------------------- /site/src/lib/Person.svelte: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 16 | {#if avatar} 17 | {name} 18 | {/if} 19 | {name ?? github} 20 | {#if twitter} 21 | 22 | 23 | 24 | {/if} 25 | {#if github} 26 | 27 | 28 | 29 | {/if} 30 | {#if url} 31 | 32 | 33 | 34 | {/if} 35 | 36 | 37 | 50 | -------------------------------------------------------------------------------- /site/src/lib/Screenshot.svelte: -------------------------------------------------------------------------------- 1 | 22 | 23 | Screenshot of {title} 24 | 25 | 32 | -------------------------------------------------------------------------------- /site/src/lib/SiteDetails.svelte: -------------------------------------------------------------------------------- 1 | 32 | 33 |
34 |

35 | {title} 36 | 37 | {#if site.repo} 38 | 39 | 40 | 41 | {/if} 42 | {#if site.npm} 43 | 44 | 45 | 46 | {/if} 47 | 48 |

49 | 50 | {#if site.description} 51 |

{@html site.description}

52 | {/if} 53 | {#if site.repo && repo_stars} 54 |
55 |

56 |  Stars 57 | 58 | {repo_stars.toLocaleString()} 59 |

60 | {/if} 61 | {#if contributors?.length > 0} 62 |
63 |
64 | 65 | {#if site.repo} 66 | 67 | {contributors.length > 1 ? `Contributors` : `Creator`} 68 | 69 | {:else} 70 | {contributors.length > 1 ? `Contributors` : `Creator`} 71 | {/if} 72 | {#if contributors.length > 1} 73 |
    74 | {#each contributors as person (person.name)} 75 |
  1. 76 | 77 |
  2. 78 | {/each} 79 |
80 | {:else} 81 | 82 | 83 | {/if} 84 |
85 | {/if} 86 | {#if date_created} 87 |
88 |

89 |  Project started on 90 | 91 | 96 | {#if site.repo} 97 | {date_created.toISOString().split(`T`)[0]} 98 | {:else} 99 | {date_created.toISOString().split(`T`)[0]} 100 | {/if} 101 | 102 |

103 | {/if} 104 | {#if tags?.length > 0} 105 |
106 |

107 |  Tags  108 | {#each tags as tag (tag)} 109 | {tag} 110 | {/each} 111 |

112 | {/if} 113 | {#if tools && tools?.length > 0} 114 |
115 |

116 |  Uses  117 | {#each tools as [tool, href] (tool)} 118 | {tool} 119 | {/each} 120 |

121 | {/if} 122 |
123 | 126 | 127 | 165 | -------------------------------------------------------------------------------- /site/src/lib/SiteList.svelte: -------------------------------------------------------------------------------- 1 | 35 | 36 | 37 | 38 |
    39 | {#each sites as site, idx (site.url)} 40 |
  1. 46 | 47 |
  2. 48 | {/each} 49 |
50 | 51 | 68 | -------------------------------------------------------------------------------- /site/src/lib/SitePreview.svelte: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | {idx > 0 ? `${idx}. ` : ``}{site.title} 22 | 23 | {#if site.repo_stars} 24 | 25 | 26 |  {site.repo_stars.toLocaleString()} 27 | 28 | {/if} 29 |
30 | {#if tags} 31 |

32 | 33 | {#each site.tags as tag (tag)} 34 | t.label === tag)}> 35 | {tag} 36 | 37 | {/each} 38 |

39 | {/if} 40 | 41 | 61 | -------------------------------------------------------------------------------- /site/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ContributorList } from './ContributorList.svelte' 2 | export { default as Filters } from './Filters.svelte' 3 | export { default as Person } from './Person.svelte' 4 | export { default as Screenshot } from './Screenshot.svelte' 5 | export { default as SiteDetails } from './SiteDetails.svelte' 6 | export { default as SiteList } from './SiteList.svelte' 7 | export { default as SitePreview } from './SitePreview.svelte' 8 | 9 | export type RawSite = { 10 | title: string 11 | url: string 12 | description?: string 13 | repo?: string 14 | npm?: string 15 | site_src?: string 16 | tags: string[] 17 | uses: string[] 18 | date_added: Date 19 | date_created: Date 20 | } 21 | 22 | export type Site = RawSite & { 23 | slug: string 24 | repo_stars?: number 25 | contributors: Contributor[] 26 | } 27 | 28 | export type Contributor = { 29 | name: string 30 | url?: string 31 | twitter?: string 32 | github?: string 33 | email?: string 34 | avatar?: string 35 | location?: string 36 | company?: string 37 | } 38 | 39 | // partial schema returned by 40 | // fetch('https://api.github.com/repos/janosh/awesome-sveltekit/contributors') 41 | export type RepoContributor = { 42 | login: string 43 | id: number 44 | avatar_url: string 45 | gravatar_id: string 46 | url: string 47 | html_url: string 48 | repos_url: string 49 | type: `User` | `Bot` 50 | contributions: number 51 | } 52 | -------------------------------------------------------------------------------- /site/src/lib/stores.ts: -------------------------------------------------------------------------------- 1 | import { writable } from 'svelte/store' 2 | import { session_store } from 'svelte-zoo' 3 | import type { Site } from '.' 4 | 5 | export const sort_by = session_store(`sort_by`, [`GitHub repo stars`]) 6 | 7 | export const search = session_store(`search`, ``) 8 | 9 | export const tag_filter_mode = session_store<`all` | `any`>( 10 | `tag-filter-mode`, 11 | `any`, 12 | ) 13 | export const contributor_filter_mode = session_store<`all` | `any`>( 14 | `contributor-filter-mode`, 15 | `any`, 16 | ) 17 | 18 | tag_filter_mode.subscribe((mode) => { 19 | if ([`all`, `any`].includes(mode)) return mode 20 | }) 21 | 22 | contributor_filter_mode.subscribe((mode) => { 23 | if ([`all`, `any`].includes(mode)) return mode 24 | }) 25 | 26 | export const filter_tags = session_store< 27 | { label: string; value: string; count: number }[] 28 | >(`filter-tags`, []) 29 | 30 | export const filter_contributors = session_store< 31 | { label: string; value: string; count: number }[] 32 | >(`filter-contributors`, []) 33 | 34 | export const sorted_sites = writable([]) 35 | -------------------------------------------------------------------------------- /site/src/routes/+error.svelte: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | Error {$page.status} • {name} 11 | 12 | 13 | 14 | 15 |
16 |

Error {String($page.status).replace(`0`, `😵`)}: {$page.error?.message}

17 | {#if $page.status >= 500} 18 |

19 | If page reloading doesn't help, please raise an issue on 20 | GitHub. Thanks! 🙏 21 |

22 | {/if} 23 | {#if online === false} 24 | Looks like you're offline. If you think your connection is fine, check the 25 | GitHub status page 26 | as this site is hosted by    27 | GitHub Pages. 28 | {/if} 29 | 30 |

31 | Back to 32 | {name} 33 | landing page 34 | . 35 |

36 |
37 | 38 | 51 | -------------------------------------------------------------------------------- /site/src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | {@render children?.()} 31 | -------------------------------------------------------------------------------- /site/src/routes/+layout.ts: -------------------------------------------------------------------------------- 1 | export const prerender = true 2 | -------------------------------------------------------------------------------- /site/src/routes/+page.server.ts: -------------------------------------------------------------------------------- 1 | import type { RepoContributor } from '$lib' 2 | 3 | export const load = async ({ fetch }) => { 4 | const contributors: RepoContributor[] = await fetch( 5 | `https://api.github.com/repos/janosh/awesome-sveltekit/contributors`, 6 | { cache: `force-cache` }, 7 | ).then((res) => res.json()) 8 | 9 | const repo_contributors = contributors?.filter((itm) => itm.type !== `Bot`) 10 | return { repo_contributors } 11 | } 12 | -------------------------------------------------------------------------------- /site/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 103 | 104 | 105 | Awesome SvelteKit 106 | 107 | 108 | 109 | 110 | 111 |
112 |

113 | Awesome SvelteKit 118 |
119 | {sites.length} Awesome Examples of SvelteKit in the Wild 120 |

121 | 122 | 123 | 124 | {#if $sorted_sites.length < sites.length} 125 |

126 | {$sorted_sites.length} match{$sorted_sites.length !== 1 ? `es` : ``} 127 | {#if $sorted_sites?.length === 0} 128 | (try different filters) 129 | {/if} 130 |

131 | {/if} 132 | 133 | 134 | 135 |

136 | 🙏 Big thanks to 137 | 138 | all {data.repo_contributors.length} contributors 139 | 140 |

141 | 142 |
143 | 144 |

🎉 Suggestions Welcome

145 |

146 | Want to add an open source project to this list? 151 | 152 | 153 | PRs welcome! This collection is meant as a learning resource for Svelte devs. While a site with 155 | private code can give inspiration, there's little educational value if you can't inspect 156 | how it was made. 157 |

158 | 159 |

160 | A good place to discover Svelte projects (not necessarily SvelteKit) is 161 | 162 | 163 | GitHub Trending 164 | . If anything on that list stands out to you but is missing here, please add it! 165 |

166 | 167 | 186 | -------------------------------------------------------------------------------- /site/src/routes/[slug]/+page.server.ts: -------------------------------------------------------------------------------- 1 | import sites from '$site/src/sites.yml' 2 | import { error } from '@sveltejs/kit' 3 | 4 | export const entries = () => { 5 | // Return an array of all possible slug values 6 | return sites.map((site) => ({ slug: site.slug })) 7 | } 8 | 9 | export const load = ({ params }) => { 10 | const { slug } = params 11 | 12 | // TODO revert back to filtered_sites such that PrevNext doesn't navigate to pages the user excluded 13 | const site = sites.find((site) => site.slug === slug) 14 | 15 | if (!site) throw error(404, `Page '${slug}' not found`) 16 | 17 | return { site, sites, slug } 18 | } 19 | -------------------------------------------------------------------------------- /site/src/routes/[slug]/+page.svelte: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | {head_title} 15 | 16 | {#if plain_description} 17 | 18 | 19 | {/if} 20 | {#if data.site.contributors?.[0]?.twitter} 21 | 22 | {/if} 23 | 24 | 25 | « home 26 | 27 |
28 | 29 |
30 | [site.slug, site])} 32 | current={data.slug} 33 | style="max-width: var(--main-max-width);" 34 | > 35 | {#snippet children({ item, kind })} 36 | 44 | {/snippet} 45 | 46 | 47 |
48 | Have a site you'd like to add to this 49 | 50 | collection? 51 | 52 | 53 | PRs welcome! 54 | 55 | 56 |

57 | 58 | Use arrow keys  ← →  to navigate between sites. 59 | 60 |

61 |
62 | 63 | 99 | -------------------------------------------------------------------------------- /site/src/tasks/fetch-github-metadata.ts: -------------------------------------------------------------------------------- 1 | /* This file parses sites.yml, fetches GH metadata like contributors 2 | and stars for each site, then writes the results to site/src/sites.yml. */ 3 | 4 | import type { Site } from '$lib' 5 | import dotenv from 'dotenv' 6 | import fs from 'fs' 7 | import yaml from 'js-yaml' 8 | import { marked } from 'marked' 9 | import { performance } from 'perf_hooks' 10 | import type { Action } from '.' 11 | 12 | export function title_to_slug(title: string): string { 13 | return title.toLowerCase().replaceAll(` `, `-`) 14 | } 15 | 16 | dotenv.config({ path: `../site/.env` }) 17 | 18 | export async function fetch_github_metadata(options: { action?: Action } = {}) { 19 | const { action = `add-missing` } = options 20 | const in_path = `../sites.yml` 21 | const out_path = `../site/src/sites.yml` 22 | 23 | const sites = yaml.load(fs.readFileSync(in_path)) as Site[] 24 | 25 | const old_sites = fs.existsSync(out_path) 26 | ? yaml.load(fs.readFileSync(out_path)) 27 | : [] 28 | 29 | const this_file = import.meta.url.split(`/`).pop() 30 | 31 | console.log(`Running ${this_file}...`) 32 | 33 | const start = performance.now() 34 | 35 | const old_slugs = old_sites.map((site) => site.slug) 36 | 37 | const [seen_sites, skipped_sites, updated_sites] = [[], [], []] 38 | 39 | if (!process.env.GH_TOKEN) { 40 | console.error(`GH_TOKEN environment variable is not set.`) 41 | process.exit(1) 42 | } 43 | 44 | const headers = { 45 | authorization: `token ${process.env.GH_TOKEN}`, 46 | } 47 | 48 | async function fetch_check(url: string) { 49 | const response = await fetch(url, { headers }).then((res) => res.json()) 50 | if (response.message) throw new Error(response.message) 51 | return response 52 | } 53 | 54 | function https_url(url: string) { 55 | if (!url) return null 56 | if (url.startsWith(`http`)) return url.replace(`http://`, `https://`) 57 | return `https://${url}` 58 | } 59 | 60 | // Only update site/src/sites.js if a new site was added to sites.yml 61 | // or repo stars were last fetched more than a month ago. 62 | for (const site of sites) { 63 | const slug = title_to_slug(site.title) 64 | 65 | if (seen_sites.includes(slug)) throw new Error(`Duplicate slug ${slug}`) 66 | else seen_sites.push(slug) 67 | 68 | site.slug = slug 69 | 70 | // add open-source tag for all sites with repo key 71 | if (site.repo && !site.tags.includes(`open source`)) { 72 | site.tags.push(`open source`) 73 | site.tags.sort((a, b) => a.localeCompare(b)) // sort tags alphabetically in place 74 | } 75 | 76 | // skip site if it doesn't have a repo key or if data was fetched for it before 77 | // and update_existing is false 78 | if ( 79 | !site.repo || 80 | (old_slugs.includes(slug) && action !== `update-existing`) 81 | ) { 82 | skipped_sites.push(slug) 83 | continue 84 | } 85 | 86 | // also skip site if repo key cannot be parsed into a user login and a repo name 87 | const repoHandle = site.repo.split(`github.com/`)[1] 88 | if (!repoHandle || repoHandle.split(`/`).length !== 2) { 89 | console.error(`bad repo handle ${repoHandle}`) 90 | skipped_sites.push(slug) 91 | continue 92 | } 93 | 94 | // fetch stars 95 | try { 96 | const url = `https://api.github.com/repos/${repoHandle}` 97 | const repo = await fetch_check(url) 98 | site.repo_stars = repo.stargazers_count 99 | } catch (error) { 100 | console.error(`Error fetching stars for ${site.title}:`, error) 101 | } 102 | 103 | // fetch most active contributors 104 | let contributors = await fetch_check( 105 | `https://api.github.com/repos/${repoHandle}/contributors`, 106 | ) 107 | 108 | // show at most 5 contributors and only those with more than 10 commits 109 | // and of type 'User' (to filter out bots) sorted by number of contributions 110 | contributors = contributors 111 | .filter((itm) => itm.contributions > 10 && itm.type === `User`) 112 | .sort((c1, c2) => c2.contributions - c1.contributions) 113 | .slice(0, 5) 114 | 115 | contributors = await Promise.all( 116 | contributors.map((person) => 117 | fetch(person.url, { headers }).then((res) => res.json()), 118 | ), 119 | ) 120 | 121 | site.contributors = contributors.map( 122 | ({ name, location, company, ...c }) => ({ 123 | github: c.login, 124 | twitter: c.twitter_username, 125 | url: https_url(c.blog), 126 | avatar: c.avatar_url, 127 | name, 128 | location, 129 | company, 130 | }), 131 | ) 132 | 133 | updated_sites.push(slug) 134 | } 135 | 136 | const new_sites = sites.map((site) => { 137 | const old_site = old_sites.find((old) => old.slug === site.slug) ?? {} 138 | // retain fetched GitHub data from old_sites in case we didn't refetch 139 | // but overwrite with new data if we did 140 | for (const key of [`repo_stars`, `contributors`]) { 141 | if (site[key] === undefined) site[key] = old_site[key] 142 | } 143 | 144 | site.description = marked.parseInline(site.description) 145 | 146 | return site 147 | }) 148 | 149 | const wall_time = ((performance.now() - start) / 1000).toFixed(2) 150 | 151 | const comment = `# auto-generated by ${this_file}\n\n` 152 | fs.writeFileSync(out_path, comment + yaml.dump(new_sites)) 153 | 154 | console.log( 155 | `${this_file} took ${wall_time}s, updated ${updated_sites.length}, ` + 156 | `skipped ${skipped_sites.length}\n`, 157 | ) 158 | } 159 | -------------------------------------------------------------------------------- /site/src/tasks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './fetch-github-metadata' 2 | export * from './screenshots' 3 | export * from './update-readme' 4 | 5 | export const action_types = [`add-missing`, `update-existing`] as const 6 | export type Action = (typeof action_types)[number] 7 | -------------------------------------------------------------------------------- /site/src/tasks/screenshots.ts: -------------------------------------------------------------------------------- 1 | /* This file parses sites.yml, generates low+hi-res screenshots for each site and 2 | saves them as AVIF to site/static/screenshots. */ 3 | 4 | import type { Site } from '$lib' 5 | import fs from 'fs' 6 | import yaml from 'js-yaml' 7 | import { performance } from 'perf_hooks' 8 | import puppeteer from 'puppeteer' 9 | import sharp from 'sharp' 10 | import type { Action } from '.' 11 | 12 | export async function make_screenshots(options: { action?: Action } = {}) { 13 | const { action = `add-missing` } = options 14 | const start = performance.now() 15 | const screenshot_dir = `../site/static/screenshots` 16 | 17 | const sites = yaml 18 | .load(fs.readFileSync(`../site/src/sites.yml`)) 19 | .sort((s1, s2) => s1.title.localeCompare(s2.title)) as Site[] 20 | 21 | const browser = await puppeteer.launch() 22 | const page = await browser.newPage() 23 | 24 | fs.mkdirSync(screenshot_dir, { recursive: true }) 25 | 26 | const arg = process.argv.find((arg) => arg.startsWith(`screenshots:`)) 27 | if (action && ![`add-missing`, `update-existing`].includes(action)) { 28 | throw new Error( 29 | `Correct usage: vite [dev] screenshots:[report|download|re-download], got ${arg}\n`, 30 | ) 31 | } 32 | 33 | const msg = { 34 | 'add-missing': `Adding screenshots for sites without them`, 35 | 'update-existing': `Updating all existing screenshots`, 36 | }[action] 37 | console.log(msg) 38 | 39 | const [created, updated, skipped, existed] = [[], [], [], []] 40 | 41 | for (const [idx, site] of sites.entries()) { 42 | const { slug } = site 43 | 44 | const img_path = `${screenshot_dir}/${slug}.avif` 45 | const img_exists = fs.existsSync(img_path) 46 | 47 | if (action != `update-existing` && img_exists) { 48 | existed.push(site.slug) 49 | continue 50 | } 51 | 52 | console.log(`${idx + 1}/${sites.length}: ${slug}`) 53 | 54 | try { 55 | try { 56 | await page.goto(site.url, { timeout: 5000, waitUntil: `networkidle2` }) 57 | } catch (error) { 58 | if (error instanceof puppeteer.TimeoutError) { 59 | // retry page.goto(), this time waiting only for 'load' event 60 | await page.goto(site.url, { timeout: 5000, waitUntil: `load` }) 61 | } else { 62 | throw error // rethrow if not a TimeoutError 63 | } 64 | } 65 | } catch (error) { 66 | console.log(`skipping ${slug} due to ${error}`) 67 | skipped.push(site.slug) 68 | } 69 | 70 | await new Promise((r) => setTimeout(r, 2000)) // wait for sites with on-load animations to settle 71 | await page.setViewport({ width: 1200, height: 900 }) 72 | const hires = await page.screenshot() 73 | await page.setViewport({ width: 1200, height: 900, deviceScaleFactor: 0.5 }) 74 | const lores = await page.screenshot() 75 | await sharp(hires).toFile(img_path) 76 | await sharp(lores).toFile(`${screenshot_dir}/${slug}.small.avif`) 77 | 78 | if (img_exists) updated.push(site.slug) 79 | else created.push(site.slug) 80 | } 81 | 82 | await browser.close() 83 | 84 | const wall_time = ((performance.now() - start) / 1000).toFixed(2) 85 | 86 | const this_file = import.meta.url.split(`/`).pop() 87 | 88 | if (created.length > 0 || updated.length > 0) { 89 | console.log( 90 | `${this_file} took ${wall_time}s, created ${created.length} new, ${updated.length} updated, ${skipped.length} skipped, ${existed.length} already had screenshots\n`, 91 | ) 92 | } else { 93 | console.log(`No changes from ${this_file} in ${wall_time}s\n`) 94 | } 95 | 96 | // delete screenshots of removed site 97 | const existing_slugs = sites.map((site) => site.slug) 98 | 99 | for (const file of fs.readdirSync(screenshot_dir)) { 100 | const slug = file.replace(`.small.avif`, ``).replace(`.avif`, ``) 101 | if (!existing_slugs.includes(slug)) { 102 | console.log(`deleting ${file}`) 103 | 104 | fs.unlinkSync(`${screenshot_dir}/${file}`) 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /site/src/tasks/update-readme.ts: -------------------------------------------------------------------------------- 1 | /* This file parses sites.yml, then updates the list of sites in the readme. */ 2 | 3 | import fs from 'fs' 4 | import yaml from 'js-yaml' 5 | import type { Site } from '../lib' 6 | 7 | export function update_readme() { 8 | const readme_path = `../readme.md` 9 | const sites_path = `src/sites.yml` 10 | 11 | const readme = fs.readFileSync(readme_path, `utf8`) 12 | const sites = yaml.load(fs.readFileSync(sites_path)) as Site[] 13 | 14 | const new_line = `\n ` 15 | 16 | const new_sites = sites 17 | .sort((site_1, site_2) => { 18 | return (site_2.repo_stars ?? 0) - (site_1.repo_stars ?? 0) 19 | }) 20 | .map((site) => { 21 | const { title, repo, uses, description, url, site_src } = site 22 | 23 | if ([title, uses, description, url].includes(undefined)) { 24 | throw new Error(`missing field(s) in site '${title}'`) 25 | } 26 | 27 | try { 28 | let code_link = `` 29 | if (repo) { 30 | const repo_handle = repo.split(`github.com/`)[1] 31 | if (repo_handle.split(`/`).length !== 2) { 32 | throw `bad repo handle ${repo_handle}` 33 | } 34 | const star_badge = `GitHub stars` 35 | code_link = 36 | ` ${new_line}[[code](${site_src ?? repo})] ${new_line}` + 37 | `${new_line}${star_badge}${new_line}` 38 | } 39 | 40 | let metadata = description 41 | if (uses?.length > 0) { 42 | metadata += `
\n${new_line}uses: [${uses.join(`], [`)}]` 43 | } 44 | 45 | return `1. **[${title}](${url})**${code_link}\n${new_line}${metadata}\n` 46 | } catch (err) { 47 | throw `${err} for site '${title}'` 48 | } 49 | }) 50 | .join(`\n`) 51 | 52 | const uses_links = Object.entries(yaml.load(fs.readFileSync(`../tools.yml`))) 53 | .map(([name, url]) => `[${name}]: ${url}`) 54 | .join(`\n`) 55 | 56 | // replace old sites 57 | const new_readme = readme.replace( 58 | /## Sites\n\n[\s\S]+\n\n## /, // match everything up to next heading 59 | `## Sites\n\n${new_sites}\n${uses_links}\n\n## `, 60 | ) 61 | 62 | fs.writeFileSync(readme_path, new_readme) 63 | 64 | const this_file = import.meta.url.split(`/`).pop() 65 | console.log(`${this_file} updated readme\n`) 66 | } 67 | -------------------------------------------------------------------------------- /site/static/awesome-sveltekit-banner.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /site/static/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /site/static/screenshots/asm-editor.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/asm-editor.avif -------------------------------------------------------------------------------- /site/static/screenshots/asm-editor.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/asm-editor.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/auth-starter-app.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/auth-starter-app.avif -------------------------------------------------------------------------------- /site/static/screenshots/auth-starter-app.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/auth-starter-app.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/barnsworthburning.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/barnsworthburning.avif -------------------------------------------------------------------------------- /site/static/screenshots/barnsworthburning.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/barnsworthburning.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/beatbump.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/beatbump.avif -------------------------------------------------------------------------------- /site/static/screenshots/beatbump.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/beatbump.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/chat-ui.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/chat-ui.avif -------------------------------------------------------------------------------- /site/static/screenshots/chat-ui.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/chat-ui.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/concertmash.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/concertmash.avif -------------------------------------------------------------------------------- /site/static/screenshots/concertmash.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/concertmash.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/connorrothschild.com.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/connorrothschild.com.avif -------------------------------------------------------------------------------- /site/static/screenshots/connorrothschild.com.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/connorrothschild.com.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/coolify.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/coolify.avif -------------------------------------------------------------------------------- /site/static/screenshots/coolify.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/coolify.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/cryptgeon.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/cryptgeon.avif -------------------------------------------------------------------------------- /site/static/screenshots/cryptgeon.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/cryptgeon.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/cybernetic.dev.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/cybernetic.dev.avif -------------------------------------------------------------------------------- /site/static/screenshots/cybernetic.dev.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/cybernetic.dev.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/digital-criticism.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/digital-criticism.avif -------------------------------------------------------------------------------- /site/static/screenshots/digital-criticism.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/digital-criticism.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/dotfyle.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/dotfyle.avif -------------------------------------------------------------------------------- /site/static/screenshots/dotfyle.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/dotfyle.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/editable-website.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/editable-website.avif -------------------------------------------------------------------------------- /site/static/screenshots/editable-website.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/editable-website.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/elementari.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/elementari.avif -------------------------------------------------------------------------------- /site/static/screenshots/elementari.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/elementari.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/evidence.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/evidence.avif -------------------------------------------------------------------------------- /site/static/screenshots/evidence.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/evidence.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/files.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/files.avif -------------------------------------------------------------------------------- /site/static/screenshots/files.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/files.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/fireship.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/fireship.avif -------------------------------------------------------------------------------- /site/static/screenshots/fireship.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/fireship.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/flayks.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/flayks.avif -------------------------------------------------------------------------------- /site/static/screenshots/flayks.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/flayks.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/flowbite.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/flowbite.avif -------------------------------------------------------------------------------- /site/static/screenshots/flowbite.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/flowbite.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/fluent-svelte.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/fluent-svelte.avif -------------------------------------------------------------------------------- /site/static/screenshots/fluent-svelte.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/fluent-svelte.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/gitpod.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/gitpod.avif -------------------------------------------------------------------------------- /site/static/screenshots/gitpod.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/gitpod.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/graphcms-starter-blog.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/graphcms-starter-blog.avif -------------------------------------------------------------------------------- /site/static/screenshots/graphcms-starter-blog.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/graphcms-starter-blog.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/guess-the-year.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/guess-the-year.avif -------------------------------------------------------------------------------- /site/static/screenshots/guess-the-year.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/guess-the-year.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/hexapipes.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/hexapipes.avif -------------------------------------------------------------------------------- /site/static/screenshots/hexapipes.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/hexapipes.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/houdini-graphql.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/houdini-graphql.avif -------------------------------------------------------------------------------- /site/static/screenshots/houdini-graphql.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/houdini-graphql.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/houses-of-world.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/houses-of-world.avif -------------------------------------------------------------------------------- /site/static/screenshots/houses-of-world.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/houses-of-world.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/immich.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/immich.avif -------------------------------------------------------------------------------- /site/static/screenshots/immich.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/immich.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/inlang.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/inlang.avif -------------------------------------------------------------------------------- /site/static/screenshots/inlang.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/inlang.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/intl-explorer.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/intl-explorer.avif -------------------------------------------------------------------------------- /site/static/screenshots/intl-explorer.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/intl-explorer.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/joy-of-code.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/joy-of-code.avif -------------------------------------------------------------------------------- /site/static/screenshots/joy-of-code.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/joy-of-code.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/jschallenger.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/jschallenger.avif -------------------------------------------------------------------------------- /site/static/screenshots/jschallenger.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/jschallenger.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/layer-cake.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/layer-cake.avif -------------------------------------------------------------------------------- /site/static/screenshots/layer-cake.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/layer-cake.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/learn.svelte.dev.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/learn.svelte.dev.avif -------------------------------------------------------------------------------- /site/static/screenshots/learn.svelte.dev.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/learn.svelte.dev.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/level-up-tutorials.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/level-up-tutorials.avif -------------------------------------------------------------------------------- /site/static/screenshots/level-up-tutorials.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/level-up-tutorials.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/macos-themed-portfolio.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/macos-themed-portfolio.avif -------------------------------------------------------------------------------- /site/static/screenshots/macos-themed-portfolio.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/macos-themed-portfolio.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/macos-web.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/macos-web.avif -------------------------------------------------------------------------------- /site/static/screenshots/macos-web.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/macos-web.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/markushatvan.com.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/markushatvan.com.avif -------------------------------------------------------------------------------- /site/static/screenshots/markushatvan.com.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/markushatvan.com.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/matt-fantinel.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/matt-fantinel.avif -------------------------------------------------------------------------------- /site/static/screenshots/matt-fantinel.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/matt-fantinel.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/mermaid-live-editor.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/mermaid-live-editor.avif -------------------------------------------------------------------------------- /site/static/screenshots/mermaid-live-editor.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/mermaid-live-editor.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/modern-fluid-typography-editor.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/modern-fluid-typography-editor.avif -------------------------------------------------------------------------------- /site/static/screenshots/modern-fluid-typography-editor.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/modern-fluid-typography-editor.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/multi-monitor-calculator.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/multi-monitor-calculator.avif -------------------------------------------------------------------------------- /site/static/screenshots/multi-monitor-calculator.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/multi-monitor-calculator.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/neovim-craft.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/neovim-craft.avif -------------------------------------------------------------------------------- /site/static/screenshots/neovim-craft.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/neovim-craft.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/official-sveltekit-docs.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/official-sveltekit-docs.avif -------------------------------------------------------------------------------- /site/static/screenshots/official-sveltekit-docs.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/official-sveltekit-docs.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/ollama-web-ui.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/ollama-web-ui.avif -------------------------------------------------------------------------------- /site/static/screenshots/ollama-web-ui.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/ollama-web-ui.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/pancake.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/pancake.avif -------------------------------------------------------------------------------- /site/static/screenshots/pancake.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/pancake.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/paper-trader-game.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/paper-trader-game.avif -------------------------------------------------------------------------------- /site/static/screenshots/paper-trader-game.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/paper-trader-game.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/pixel-art-together.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/pixel-art-together.avif -------------------------------------------------------------------------------- /site/static/screenshots/pixel-art-together.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/pixel-art-together.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/puruvj.dev.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/puruvj.dev.avif -------------------------------------------------------------------------------- /site/static/screenshots/puruvj.dev.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/puruvj.dev.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/qwer.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/qwer.avif -------------------------------------------------------------------------------- /site/static/screenshots/qwer.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/qwer.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/scientific-diagrams.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/scientific-diagrams.avif -------------------------------------------------------------------------------- /site/static/screenshots/scientific-diagrams.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/scientific-diagrams.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/shadcn-svelte.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/shadcn-svelte.avif -------------------------------------------------------------------------------- /site/static/screenshots/shadcn-svelte.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/shadcn-svelte.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/significa.co.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/significa.co.avif -------------------------------------------------------------------------------- /site/static/screenshots/significa.co.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/significa.co.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sk-incognito.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sk-incognito.avif -------------------------------------------------------------------------------- /site/static/screenshots/sk-incognito.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sk-incognito.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/skeleton.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/skeleton.avif -------------------------------------------------------------------------------- /site/static/screenshots/skeleton.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/skeleton.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/stemroller.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/stemroller.avif -------------------------------------------------------------------------------- /site/static/screenshots/stemroller.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/stemroller.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svead.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svead.avif -------------------------------------------------------------------------------- /site/static/screenshots/svead.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svead.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-command-palette.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-command-palette.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-command-palette.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-command-palette.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-commerce.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-commerce.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-commerce.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-commerce.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-cubed.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-cubed.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-cubed.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-cubed.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-french-toast.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-french-toast.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-french-toast.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-french-toast.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-headless-ui.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-headless-ui.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-headless-ui.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-headless-ui.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-intl-precompile.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-intl-precompile.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-intl-precompile.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-intl-precompile.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-legos.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-legos.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-legos.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-legos.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-material-ui.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-material-ui.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-material-ui.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-material-ui.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-multiselect.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-multiselect.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-multiselect.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-multiselect.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-put.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-put.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-put.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-put.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-realworld.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-realworld.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-realworld.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-realworld.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-society.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-society.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-society.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-society.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-summit-fall-2021.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-summit-fall-2021.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte-summit-fall-2021.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte-summit-fall-2021.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte.dev.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte.dev.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelte.dev.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelte.dev.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-embed.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-embed.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-embed.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-embed.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-experiments.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-experiments.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-experiments.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-experiments.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-mdsvex-blog.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-mdsvex-blog.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-mdsvex-blog.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-mdsvex-blog.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-on-edge.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-on-edge.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-on-edge.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-on-edge.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-static-blog-starter.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-static-blog-starter.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-static-blog-starter.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-static-blog-starter.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-typescript-showcase.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-typescript-showcase.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltekit-typescript-showcase.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltekit-typescript-showcase.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltelab.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltelab.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltelab.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltelab.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltestrap.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltestrap.avif -------------------------------------------------------------------------------- /site/static/screenshots/sveltestrap.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/sveltestrap.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelvet.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelvet.avif -------------------------------------------------------------------------------- /site/static/screenshots/svelvet.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/svelvet.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/swyxkit.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/swyxkit.avif -------------------------------------------------------------------------------- /site/static/screenshots/swyxkit.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/swyxkit.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/team-health-check.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/team-health-check.avif -------------------------------------------------------------------------------- /site/static/screenshots/team-health-check.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/team-health-check.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/the-pudding.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/the-pudding.avif -------------------------------------------------------------------------------- /site/static/screenshots/the-pudding.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/the-pudding.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/threlte.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/threlte.avif -------------------------------------------------------------------------------- /site/static/screenshots/threlte.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/threlte.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/trpc-sveltekit.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/trpc-sveltekit.avif -------------------------------------------------------------------------------- /site/static/screenshots/trpc-sveltekit.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/trpc-sveltekit.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/urara.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/urara.avif -------------------------------------------------------------------------------- /site/static/screenshots/urara.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/urara.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/vert.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/vert.avif -------------------------------------------------------------------------------- /site/static/screenshots/vert.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/vert.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/watch-this.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/watch-this.avif -------------------------------------------------------------------------------- /site/static/screenshots/watch-this.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/watch-this.small.avif -------------------------------------------------------------------------------- /site/static/screenshots/windmill.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/windmill.avif -------------------------------------------------------------------------------- /site/static/screenshots/windmill.small.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/janosh/awesome-sveltekit/2491b34733453ea64bb5747397432ea2cec90eb9/site/static/screenshots/windmill.small.avif -------------------------------------------------------------------------------- /site/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-static' 2 | import preprocess from 'svelte-preprocess' 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | export default { 6 | preprocess: [preprocess()], 7 | 8 | kit: { 9 | adapter: adapter(), 10 | 11 | alias: { 12 | $root: `..`, 13 | $site: `.`, 14 | }, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /site/tests/site.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test' 2 | 3 | // to run tests in this file, use `npm run test:e2e` 4 | test.describe.configure({ mode: `parallel` }) 5 | 6 | test(`test search functionality on the landing page`, async ({ page }) => { 7 | // failing in CI for unknown reason 8 | if (process.env.CI) test.skip() 9 | 10 | await page.goto(`/`, { waitUntil: `networkidle` }) 11 | 12 | const site_locator = page.locator(`ol > li > div.flex + p.tags`) 13 | const initial_site_count = await site_locator.count() 14 | 15 | // Ensure there are sites to filter from. 16 | expect(initial_site_count).toBeGreaterThan(0) 17 | 18 | // 1. Test that a non-matching search term yields zero results 19 | const unlikely_search_term = `THIS_SHOULD_NOT_MATCH_ANY_SITES` 20 | await page.fill(`[placeholder='Search...']`, unlikely_search_term) 21 | 22 | // Wait for the search to filter and expect no sites to be visible 23 | await expect(site_locator).toHaveCount(0, { timeout: 5000 }) 24 | 25 | // 2. Test that clearing the search brings back all sites 26 | await page.fill(`[placeholder='Search...']`, ``) // Clear the search 27 | await expect(site_locator).toHaveCount(initial_site_count, { timeout: 5000 }) 28 | 29 | // TODO also test sort functionality 30 | }) 31 | 32 | test(`can navigate between detail pages with arrow keys`, async ({ page }) => { 33 | await page.goto(`/`, { waitUntil: `networkidle` }) 34 | 35 | await page.keyboard.press(`ArrowRight`) 36 | 37 | // Navigate to first page 38 | await page.goto(`/svelte.dev`, { waitUntil: `networkidle` }) 39 | 40 | // Get the next URL from the "Next" link 41 | const next_url = await page.$eval(`a:has-text("Next")`, (el) => 42 | el.closest(`a`)?.getAttribute(`href`), 43 | ) 44 | 45 | await page.keyboard.press(`ArrowRight`) 46 | await page.waitForURL(`/${next_url}`) 47 | }) 48 | 49 | test(`can navigate landing page with arrow keys`, async ({ page }) => { 50 | await page.goto(`/`, { waitUntil: `networkidle` }) 51 | 52 | // expect no matches for ol > li.active 53 | expect(await page.$(`ol > li.active`)).toBe(null) 54 | 55 | // get active card after 56 | await page.keyboard.press(`ArrowRight`) 57 | 58 | // get slug of active site 59 | const slug = await page.$eval(`ol > li.active > a:has(> img)`, (card) => 60 | card.getAttribute(`href`), 61 | ) 62 | 63 | // press enter and check that we're on the detail page 64 | await page.keyboard.press(`Enter`) 65 | await page.waitForURL(`/${slug}`, { 66 | waitUntil: `networkidle`, 67 | }) 68 | }) 69 | 70 | // Test 404 page 71 | test(`shows 404 page for invalid slugs`, async ({ page }) => { 72 | const response = await page.goto(`/not-a-real-site`, { 73 | waitUntil: `networkidle`, 74 | }) 75 | 76 | expect(response?.status()).toBe(404) 77 | await expect( 78 | page.locator(`text=Page 'not-a-real-site' not found`), 79 | ).toBeVisible() 80 | }) 81 | 82 | // Test metadata 83 | test(`page has correct meta tags`, async ({ page }) => { 84 | await page.goto(`/svelte.dev`, { waitUntil: `networkidle` }) 85 | 86 | // Check title 87 | await expect(page).toHaveTitle(`Svelte.dev | Awesome SvelteKit`) 88 | 89 | // Check meta description 90 | const description = await page.$eval(`meta[name="description"]`, (el) => 91 | el.getAttribute(`content`), 92 | ) 93 | expect(description).toBe(`Cybernetically enhanced web apps.`) 94 | 95 | // Check OG tags 96 | const og_title = await page.$eval(`meta[property="og:title"]`, (el) => 97 | el.getAttribute(`content`), 98 | ) 99 | expect(og_title).toBe(`Svelte.dev | Awesome SvelteKit`) 100 | }) 101 | -------------------------------------------------------------------------------- /site/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "strict": true, 5 | "module": "esnext", 6 | "target": "esnext", 7 | "moduleResolution": "bundler", 8 | 9 | // To have warnings/errors of the Svelte compiler at the correct position, 10 | // enable source maps by default. 11 | "sourceMap": true, 12 | 13 | "forceConsistentCasingInFileNames": true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /site/vite.config.ts: -------------------------------------------------------------------------------- 1 | import yaml from '@rollup/plugin-yaml' 2 | import { sveltekit } from '@sveltejs/kit/vite' 3 | import type { UserConfig } from 'vite' 4 | import { 5 | action_types, 6 | fetch_github_metadata, 7 | make_screenshots, 8 | update_readme, 9 | type Action, 10 | } from './src/tasks' 11 | 12 | const action = (process.env?.ACTION ?? `add-missing`) as Action 13 | if (!action_types.includes(action)) { 14 | const types_str = action_types.join(`|`) 15 | throw new Error( 16 | `Correct usage: ACTION=${types_str} vite dev, got ACTION=${action}\n`, 17 | ) 18 | } 19 | 20 | if (!process.env.CI) { 21 | update_readme() 22 | fetch_github_metadata({ action }) 23 | setTimeout(() => make_screenshots({ action }), 1000) 24 | } 25 | 26 | export default { 27 | plugins: [sveltekit(), yaml()], 28 | 29 | server: { 30 | fs: { allow: [`../..`] }, // needed to import from $root 31 | port: 3000, 32 | }, 33 | 34 | preview: { 35 | port: 3000, 36 | }, 37 | } satisfies UserConfig 38 | -------------------------------------------------------------------------------- /sites.yml: -------------------------------------------------------------------------------- 1 | # The description key supports full markdown syntax. 2 | 3 | # New tags should strike a generality balance so they convey 4 | # useful information but are still applicable to more than just 1 site. 5 | 6 | # date_created is usually the date of first commit on a project which can be found 7 | # by opening the 'Insights > Network' tab on a repo (e.g. 8 | # https://github.com/janosh/awesome-sveltekit/network) and clicking 9 | # cmd/ctrl + left arrow to jump to the very start of the commit history. 10 | # site_src is the link to a subfolder if e.g. the site is part of a monorepo. 11 | 12 | - title: Svelte.dev 13 | url: https://svelte.dev 14 | repo: https://github.com/sveltejs/svelte 15 | # Sapper to SvelteKit migration in https://git.io/JXSh1 16 | site_src: https://github.com/sveltejs/svelte/tree/master/sites/svelte.dev 17 | npm: https://npmjs.com/package/svelte 18 | description: Cybernetically enhanced web apps. 19 | uses: [CodeMirror, Mapbox, Docker] 20 | tags: [docs, monorepo, dev tools, blog, REPL, NPM package] 21 | date_created: 2021-10-19 # https://git.io/JXShN 22 | date_added: 2021-11-11 23 | 24 | - title: Official SvelteKit docs 25 | url: https://kit.svelte.dev 26 | repo: https://github.com/sveltejs/kit 27 | site_src: https://github.com/sveltejs/kit/tree/main/documentation/docs 28 | npm: https://npmjs.com/package/@sveltejs/kit 29 | description: The fastest way to build Svelte apps. 30 | uses: [Netlify, PNPM] 31 | tags: [docs, monorepo, NPM package] 32 | date_created: 2021-03-10 # https://git.io/JcQYo 33 | date_added: 2021-05-25 34 | 35 | - title: SK Incognito 36 | url: https://sk-incognito.vercel.app 37 | repo: https://github.com/GrygrFlzr/kit-docs 38 | description: The unofficial SvelteKit docs. 39 | uses: [MDsveX, Tailwind, PNPM] 40 | tags: [docs, Vercel] 41 | date_created: 2021-02-15 42 | date_added: 2021-05-25 43 | 44 | - title: Scientific Diagrams 45 | url: https://janosh.github.io/diagrams 46 | repo: https://github.com/janosh/diagrams 47 | description: >- 48 | 100+ MIT-licensed scientific diagrams created with CeTZ (Typst) and/or TikZ 49 | (LaTeX). 50 | Mostly about physics, chemistry, and machine learning. 51 | tags: [research, science, diagrams, graphics, latex] 52 | uses: [TypeScript, svelte-multiselect, pre-commit, PNPM, svelte-enhanced-img] 53 | date_created: 2020-08-09 54 | date_added: 2021-05-25 55 | 56 | - title: markushatvan.com 57 | url: https://markushatvan.com 58 | description: Blog posts with code snippets, contact form with Svelte Forms Lib, RSS and sitemap. 59 | uses: [Tailwind, MDsveX, Svelte Forms Lib] 60 | tags: [blog, rss, sitemap] 61 | date_created: 2020-08-21 62 | date_added: 2021-05-25 63 | 64 | - title: Guess The Year 65 | url: https://guess-the-year.davjhan.com 66 | repo: https://github.com/davjhan/guess-the-year-game 67 | description: 68 | Round-based browser game where you guess the year in which famous event happened. 69 | Answers range between 1900-2021. You start with 100 points. The more your guess is off, the more points you loose. 70 | uses: [Tailwind, Netlify] 71 | tags: [game] 72 | date_created: 2021-05-09 73 | date_added: 2021-05-25 74 | 75 | - title: Gitpod 76 | url: https://gitpod.io 77 | repo: https://github.com/gitpod-io/gitpod 78 | description: 79 | Gitpod streamlines developer workflows by providing prebuilt, collaborative 80 | development environments in your browser - powered by VS Code. 81 | uses: [MDsveX, Tailwind, Netlify] 82 | tags: [commercial, dev tools, cloud computing] 83 | date_created: 2021-03-17 84 | date_added: 2021-05-31 85 | 86 | - title: SvelteKit Experiments 87 | url: https://sveltekit-demo-psi.vercel.app 88 | repo: https://github.com/tsukhu/sveltekit-demo 89 | description: 90 | A set of example apps built with SvelteKit and deployed on Vercel. As an ongoing project, 91 | this will continue to be enhanced with more examples to showcase the power of SvelteKit. 92 | uses: [Tailwind, Vercel, GraphQL, Firebase, Typescript] 93 | tags: [sample applications, cloud computing] 94 | date_created: 2021-05-27 95 | date_added: 2021-06-09 96 | 97 | - title: puruvj.dev 98 | url: https://puruvj.dev 99 | repo: https://github.com/puruvj/puruvjdev3 100 | description: Puru Vijay's blog site. 101 | uses: [Vercel, TypeScript, SCSS, Cloudinary] 102 | tags: [blog] 103 | date_created: 2021-05-06 104 | date_added: 2021-06-11 105 | 106 | - title: GraphCMS Starter Blog 107 | url: https://scottspence.com/2021/05/06/graphcms-svelte-starter 108 | repo: https://github.com/spences10/sveltekit-starter-blog 109 | description: This blog starter shows how to use SvelteKit with GraphCMS. 110 | uses: [Vercel, Tailwind, SCSS, GraphCMS] 111 | tags: [blog] 112 | date_created: 2021-05-16 113 | date_added: 2021-06-14 114 | 115 | - title: Beatbump 116 | url: https://beatbump.io 117 | repo: https://github.com/snuffyDev/beatbump 118 | description: Alternative frontend for YouTube Music. 119 | uses: [TypeScript, PostCSS, SCSS] 120 | tags: [blog] 121 | date_created: 2021-06-17 122 | date_added: 2021-07-08 123 | 124 | - title: Paper Trader Game 125 | url: https://paper-trader.davjhan.com 126 | repo: https://github.com/davjhan/paper-trader-game 127 | description: 128 | A simple web game where you are given 45 seconds and $100 to make as much money as you can trading a 129 | fake stock. 130 | tags: [game, mobile] 131 | uses: [Tailwind, Netlify, Chart.js, Plausible] 132 | date_created: 2021-07-25 133 | date_added: 2021-08-01 134 | 135 | - title: neovim craft 136 | url: https://neovimcraft.com 137 | repo: https://github.com/neurosnap/neovimcraft 138 | description: Curated list of neovim plugins. 139 | tags: [programming, resource list] 140 | uses: [TypeScript, Husky] 141 | date_created: 2021-07-18 142 | date_added: 2021-08-13 143 | 144 | - title: swyxkit 145 | url: https://swyxkit.netlify.app 146 | repo: https://github.com/sw-yx/swyxkit 147 | description: An opinionated blog starter for SvelteKit + Tailwind + Netlify. Refreshed for 2022! 148 | tags: [programming, blog, portfolio] 149 | uses: [Tailwind, Netlify] 150 | date_created: 2020-09-11 151 | date_added: 2021-09-01 152 | 153 | - title: Svelte Society 154 | url: https://sveltesociety.dev 155 | repo: https://github.com/svelte-society/sveltesociety.dev 156 | description: Global network of Svelte fans striving to promote Svelte and its ecosystem. 157 | tags: [programming, components, events, cheat sheets] 158 | uses: [TypeScript, Gitpod] 159 | date_created: 2020-05-03 160 | date_added: 2021-10-01 161 | 162 | - title: Flayks 163 | url: https://flayks.com 164 | description: Portfolio of Félix Péault, Digital Designer and Art Director. 165 | Sanity.io [[interview](https://sanity.io/blog/felix-peault-community-interview)], 166 | [[feature](https://sanity.io/projects/flayks-portfolio-2021)]. 167 | tags: [portfolio] 168 | uses: [Sanity, anime.js, Vercel, TypeScript, SCSS, PostCSS] 169 | date_created: 2021-10-01 170 | date_added: 2021-10-01 171 | 172 | - title: Matt Fantinel 173 | url: https://fantinel.dev 174 | repo: https://github.com/matfantinel/matfantinel.github.io 175 | description: Personal website and blog of Matt Fantinel, web developer. 176 | uses: [MDsveX, SCSS, Iconoir, Plausible] 177 | tags: [personal, blog, portfolio, SCSS, MDsveX] 178 | date_created: 2021-09-07 179 | date_added: 2021-10-01 180 | 181 | - title: Level Up Tutorials 182 | url: https://leveluptutorials.com 183 | description: Video tutorials for web developers and designers. 184 | uses: [TypeScript, Google Tag Manager] 185 | tags: [tutorials, education, videos, web development, design] 186 | date_created: 2021-09-01 187 | date_added: 2021-10-5 188 | 189 | - title: JSchallenger 190 | url: https://jschallenger.com 191 | description: Free Javascript challenges. Learn Javascript online by solving coding exercises. 192 | uses: [Tailwind, DynamoDB, AWS] 193 | tags: [education, coding challenges, JavaScript] 194 | date_created: 2021-10-09 195 | date_added: 2021-10-9 196 | 197 | - title: Files 198 | url: https://files.community 199 | repo: https://github.com/files-community/website 200 | description: 3rd Party File Manager for Windows. 201 | uses: [PNPM, TypeScript, SCSS, Vercel] 202 | tags: [education, coding challenges, JavaScript] 203 | date_created: 2021-05-20 204 | date_added: 2021-10-11 205 | 206 | - title: Svelte Summit Fall 2021 207 | url: https://sveltesummit.com 208 | repo: https://github.com/svelte-society/svelte-summit 209 | description: The 4th virtual conference about Svelte 210 | uses: [Elder.js, PostCSS, Cloudflare] 211 | tags: [conference, community event, learning, news] 212 | date_created: 2021-07-25 213 | date_added: 2021-10-12 214 | 215 | - title: cybernetic.dev 216 | url: https://cybernetic.dev 217 | description: Data-centric UI experiments 218 | uses: [Three.js, Cytoscape.js, Vercel] 219 | tags: [data viz, statistics, machine learning] 220 | date_created: 2021-01-01 221 | date_added: 2021-10-19 222 | 223 | - title: digital criticism 224 | url: https://critique-digitale.ch 225 | repo: https://github.com/critique-digitale/critique-digitale.ch 226 | description: Scholarly conference in the digital humanities. 227 | uses: [MDsveX, MVP.css, Cloudflare] 228 | tags: [education, conference, community event, learning] 229 | date_created: 2021-07-06 230 | date_added: 2021-10-28 231 | 232 | - title: The Pudding 233 | url: https://pudding.cool 234 | repo: https://github.com/the-pudding/website 235 | description: Digital publication with emphasis on data viz. 236 | uses: [D3, PostCSS, Lodash, PNPM] 237 | tags: [digital publishing, data viz, education] 238 | date_created: 2021-09-03 239 | date_added: 2021-11-01 240 | 241 | - title: Urara 242 | url: https://urara-demo.netlify.app 243 | repo: https://github.com/importantimport/urara 244 | description: Sweet & Powerful SvelteKit Blog Template. 245 | uses: [MDsveX, PostCSS, Tailwind, DaisyUI, TypeScript, PNPM] 246 | tags: [blog, template] 247 | date_created: 2021-11-01 248 | date_added: 2021-11-05 249 | 250 | - title: connorrothschild.com 251 | url: https://connorrothschild.com 252 | repo: https://github.com/connorrothschild/v4 253 | description: Creative, content-based portfolio site of Connor Rothschild. 254 | uses: [MDsveX, GSAP, Netlify] 255 | tags: [blog, portfolio, animations] 256 | date_created: 2021-12-10 257 | date_added: 2021-12-11 258 | 259 | - title: Svelte Cubed 260 | url: https://svelte-cubed.vercel.app 261 | repo: https://github.com/Rich-Harris/svelte-cubed 262 | description: Three.js component library for Svelte. Abandoned. Check out [threlte](https://threlte.xyz) instead. 263 | uses: [TypeScript, PNPM, Vercel, MDsveX] 264 | tags: [components, library, animations, interactive] 265 | date_created: 2021-05-18 266 | date_added: 2021-12-19 267 | 268 | - title: Multi-Monitor Calculator 269 | url: https://multimonitorcalculator.com 270 | repo: https://github.com/KevinVandy/multi-monitor_calculator 271 | description: A tool for planning your multi-monitor setup. 272 | uses: [TypeScript, SMUI, Sass] 273 | tags: [interactive, 3d, calculator, monitor] 274 | date_created: 2018-06-08 275 | date_added: 2022-01-01 276 | 277 | - title: Modern Fluid Typography Editor 278 | url: https://modern-fluid-typography.vercel.app 279 | repo: https://github.com/codeAdrian/modern-fluid-typography-editor 280 | description: Easily create and fine-tune fluid typography values with Modern CSS `clamp()`. 281 | uses: [TypeScript, PostCSS, Chart.js, cssnano] 282 | tags: [developer tool, design, frontend, typography] 283 | date_created: 2021-11-29 284 | date_added: 2022-01-04 285 | 286 | - title: mermaid-live-editor 287 | url: https://mermaid.live 288 | repo: https://github.com/mermaid-js/mermaid-live-editor 289 | description: Edit, live preview and share mermaid charts and diagrams. 290 | uses: [TypeScript, Docker, Tailwind, PostCSS, Cypress, Husky] 291 | tags: [developer tool, diagrams, charts, graphics] 292 | date_created: 2019-11-13 293 | date_added: 2022-02-05 294 | 295 | - title: svelte-realworld 296 | url: https://github.com/gothinkster/realworld 297 | repo: https://github.com/sveltejs/realworld 298 | description: SvelteKit implementation of the RealWorld app. 299 | uses: [Netlify, MarkedJS] 300 | tags: [demo, performance, benchmark] 301 | date_created: 2017-04-20 302 | date_added: 2022-02-06 303 | 304 | - title: macos-web 305 | url: https://macos-web.app 306 | repo: https://github.com/PuruVJ/macos-web 307 | description: Replicate some of the macOS desktop experience on the web. 308 | uses: [TypeScript, Vercel, SCSS, PNPM, Iconify] 309 | tags: [demo, proof of concept, learning] 310 | date_created: 2021-08-12 311 | date_added: 2022-02-06 312 | 313 | - title: inlang 314 | url: https://inlang.com 315 | repo: https://github.com/inlang/monorepo 316 | description: Translate software products 2x faster. 317 | uses: [TypeScript, Vercel, IBM Carbon, Tailwind, Supabase] 318 | tags: [front-end, developer tool, localization, i18n] 319 | date_created: 2021-08-04 320 | date_added: 2022-02-23 321 | 322 | - title: Houdini GraphQL 323 | url: https://houdinigraphql.com 324 | repo: https://github.com/HoudiniGraphQL/houdini 325 | description: Documentation site for Houdini. 326 | uses: [PNPM, MDsveX, Husky, highlight.js] 327 | tags: [graphql, data fetching, front-end, developer tool, minimal] 328 | date_created: 2021-01-19 329 | date_added: 2022-03-22 330 | 331 | - title: ConcertMash 332 | url: https://concertmash.com 333 | repo: https://github.com/mcmxcdev/ConcertMash 334 | description: Easily generate a playlist for your upcoming concerts based on selected artists! 335 | uses: [TypeScript, Tailwind, Spotify Web API, Filepond, PNPM, Netlify] 336 | tags: [music, playlist-generator] 337 | date_created: 2022-03-15 338 | date_added: 2022-03-24 339 | 340 | - title: Layer Cake 341 | url: https://layercake.graphics 342 | repo: https://github.com/mhkeller/layercake 343 | description: 344 | Graphics framework for Svelte with colorful demo page. Can generate responsive 345 | graphics server-side that work without JavaScript. 346 | uses: [D3, GitHub Pages, JSDoc, Mocha, Underscore] 347 | tags: [charts, dataviz, graphics, layers, canvas, WebGL] 348 | date_created: 2018-10-18 349 | date_added: 2022-03-24 350 | 351 | - title: Pancake 352 | url: https://pancake-charts.surge.sh 353 | repo: https://github.com/Rich-Harris/pancake 354 | description: 355 | Experimental Svelte charting library. Visualize data with a combination of HTML, 356 | SVG and canvas/WebGL. Designed with server-side rendering in mind, so graphs potentially work without JavaScript. 357 | [Blog post](https://dev.to/richharris/a-new-technique-for-making-responsive-javascript-free-charts-gmp). 358 | uses: [D3, surge.sh, TypeScript] 359 | tags: [charts, dataviz, graphics, canvas, WebGL] 360 | date_created: 2019-10-01 361 | date_added: 2022-04-05 362 | 363 | - title: Svelte Headless UI 364 | url: https://svelte-headlessui.goss.io 365 | repo: https://github.com/rgossiaux/svelte-headlessui 366 | description: Unofficial Svelte port of Headless UI components. 367 | uses: [MDsveX, TypeScript, PostCSS, Tailwind, cssnano, Jest, rehype] 368 | tags: [component library, a11y] 369 | date_created: 2021-12-05 370 | date_added: 2022-04-14 371 | 372 | - title: Svelte Material UI 373 | url: https://sveltematerialui.com 374 | repo: https://github.com/hperrin/svelte-material-ui 375 | site_src: https://github.com/hperrin/svelte-material-ui/blob/-/packages/site 376 | npm: https://npmjs.com/package/svelte-material-ui 377 | description: Svelte Material UI Components. 378 | uses: [MDsveX, TypeScript, highlight.js, remark, Sass] 379 | tags: [material design, component library, NPM package] 380 | date_created: 2019-07-17 381 | date_added: 2022-04-16 382 | 383 | - title: Fluent Svelte 384 | url: https://fluent-svelte.vercel.app 385 | repo: https://github.com/Tropix126/fluent-svelte 386 | description: A faithful implementation of Microsoft's Fluent design system in Svelte. 387 | uses: [MDsveX, SCSS, TypeScript, remark, rehype, PNPM, PostCSS, Prism] 388 | tags: [windows ui, component library, design system] 389 | date_created: 2021-06-05 390 | date_added: 2022-04-24 391 | 392 | - title: SvelteKit on Edge 393 | url: https://sveltekit-on-the-edge.vercel.app 394 | repo: https://github.com/Rich-Harris/sveltekit-on-the-edge 395 | description: 396 | SvelteKit, running on the edge. In this case, Vercel's edge network. 397 | See . 398 | uses: [PNPM, Vercel] 399 | tags: [speed, caching, deployment] 400 | date_created: 2022-04-20 401 | date_added: 2022-04-24 402 | 403 | - title: evidence 404 | url: https://evidence.dev 405 | repo: https://github.com/evidence-dev/evidence 406 | site_src: https://github.com/evidence-dev/evidence/blob/-/sites/example-project 407 | description: Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown. 408 | uses: [PNPM, Changesets, echarts, uvu] 409 | tags: [analytics, business-intelligence, sql, markdown, data viz, charts] 410 | date_created: 2021-05-27 411 | date_added: 2022-05-01 412 | 413 | - title: Coolify 414 | url: https://coolify.io 415 | repo: https://github.com/coollabsio/coolify 416 | description: An open-source & self-hostable Heroku / Netlify alternative. 417 | uses: [PNPM, TypeScript, Tailwind, sveltekit-i18n, PostCSS, Husky] 418 | tags: [self-hosting, deployment, sql, docker, redis, mongodb, databases] 419 | date_created: 2021-03-24 420 | date_added: 2022-05-10 421 | 422 | - title: Flowbite 423 | url: https://flowbite-svelte.com 424 | repo: https://github.com/themesberg/flowbite-svelte 425 | description: Official Svelte components built for Flowbite and Tailwind CSS. All interactivity handled by Svelte. 426 | uses: [PNPM, TypeScript, Tailwind, MDsveX, Prism, PostCSS, Playwright] 427 | tags: [component library, forms, modals, spinners, dark-mode, toast] 428 | date_created: 2022-01-24 429 | date_added: 2022-05-19 430 | 431 | - title: Elementari 432 | url: https://janosh.github.io/elementari 433 | repo: https://github.com/janosh/elementari 434 | npm: https://npmjs.com/package/elementari 435 | description: 436 | 'Interactive visualizations for materials science: periodic tables, 3d crystal 437 | structures (Molecules coming soon), Bohr atoms, nuclei, heatmaps, scatter plots.' 438 | uses: 439 | - TypeScript 440 | - pre-commit 441 | - D3 442 | - svelte-multiselect 443 | - Vitest 444 | - Playwright 445 | - PNPM 446 | - jsdom 447 | - GitHub Pages 448 | tags: [chemistry, science, data viz, plotting, NPM package] 449 | date_created: 2022-05-31 450 | date_added: 2022-06-02 451 | 452 | - title: Pixel Art Together 453 | url: https://pixelart.liveblocks.app 454 | repo: https://github.com/liveblocks/pixel-art-together 455 | description: A multiplayer pixel art editor powered by Liveblocks. 456 | uses: [TypeScript, Liveblocks, Tailwind, PostCSS, panzoom] 457 | tags: [art, drawing, multiplayer, collaboration] 458 | date_created: 2022-02-17 459 | date_added: 2022-06-02 460 | 461 | - title: Sveltestrap 462 | url: https://sveltestrap.js.org 463 | repo: https://github.com/bestguy/sveltestrap 464 | description: Bootstrap 4 & 5 components for Svelte. 465 | uses: [Storybook, Babel, Testing Library, Jest, PostCSS, Prism] 466 | tags: [component library] 467 | date_created: 2017-03-19 468 | date_added: 2022-06-02 469 | 470 | - title: Svelvet 471 | url: https://svelvet.io 472 | repo: https://github.com/oslabs-beta/Svelvet 473 | description: A lightweight Svelte component library for building interactive node-based flow diagrams. 474 | uses: [Playwright, D3, Testing Library, Tailwind, PostCSS, Vitest] 475 | tags: [flow diagrams, dev tool, component library, visualization] 476 | date_created: 2022-05-06 477 | date_added: 2022-06-02 478 | 479 | - title: Cryptgeon 480 | url: https://cryptgeon.org 481 | repo: https://github.com/cupcakearmy/cryptgeon 482 | site_src: https://github.com/cupcakearmy/cryptgeon/blob/-/packages/frontend 483 | description: A secure, open source notes and file sharing service inspired by PrivNote written in Rust & Svelte. 484 | uses: [svelte-intl-precompile, sanitize-html] 485 | tags: [file sharing, note sharing, secure notes, privacy, data protection] 486 | date_created: 2021-05-01 487 | date_added: 2022-06-09 488 | 489 | - title: Svelte Intl Precompile 490 | # weird url as temp fix for https://github.com/cibernox/svelte-intl-precompile/issues/58 491 | url: https://svelte-intl-precompile.com/en/docs/configuration 492 | repo: https://github.com/cibernox/svelte-intl-precompile 493 | description: 494 | I18n library for Svelte that analyzes your keys at build time for maximum performance and 495 | minimal footprint. Built as a SvelteKit plugin so good to use as a reference if you want to build one yourself. 496 | uses: [JS-Yaml, JSON5] 497 | tags: [i18n, translation, internationalization, localization] 498 | date_created: 2021-04-15 499 | date_added: 2022-06-09 500 | 501 | - title: Windmill 502 | url: https://windmill.dev 503 | repo: https://github.com/windmill-labs/windmill 504 | site_src: https://github.com/windmill-labs/windmill/blob/-/frontend 505 | description: 506 | An OSS developer platform to build multi-step automations and internal apps from minimal 507 | Python and Typescript scripts. 508 | uses: 509 | - TypeScript 510 | - Tailwind 511 | - cssnano 512 | - Cypress 513 | - PostCSS 514 | - svelte-highlight 515 | - svelte-markdown 516 | tags: [automation, dev tools, python, scripting, self-hostable] 517 | date_created: 2022-05-05 518 | date_added: 2022-06-17 519 | 520 | - title: Threlte 521 | url: https://threlte.xyz 522 | repo: https://github.com/threlte/threlte 523 | site_src: https://github.com/threlte/threlte/blob/-/apps/docs 524 | description: 525 | Threlte is a component library for Svelte to build and render three.js scenes declaratively 526 | and state-driven in Svelte apps. 527 | uses: [TypeScript, Three.js, Tailwind, PostCSS, Algolia, Iconify] 528 | tags: [component library, data viz, docs, monorepo, interactive] 529 | date_created: 2022-01-15 530 | date_added: 2022-07-17 531 | 532 | - title: svelte-french-toast 533 | url: https://svelte-french-toast.com 534 | repo: https://github.com/kbrgl/svelte-french-toast 535 | description: Svelte port of react-hot-toast, a lightweight, customizable toast notification library. 536 | uses: [TypeScript, Prism, Tailwind, PostCSS, PNPM] 537 | tags: [toast, notifications, snackbar] 538 | date_created: 2022-06-04 539 | date_added: 2022-07-24 540 | 541 | - title: Hexapipes 542 | url: https://hexapipes.vercel.app 543 | repo: https://github.com/gereleth/hexapipes 544 | description: Browser game where the goal is to correctly line up pipes placed on hexagonal puzzle pieces. 545 | uses: [Vercel] 546 | tags: [game] 547 | date_created: 2022-06-25 548 | date_added: 2022-07-28 549 | 550 | - title: Svelte Commerce 551 | url: https://demo.litekart.in 552 | repo: https://github.com/itswadesh/svelte-commerce 553 | description: 554 | Headless, Authentication, Cart & Checkout, TailwindCSS, Server Rendered, Proxy + API Integrated, Animations, Stores, 555 | Lazy Loading, Loading Indicators, Carousel, Instant Search, Faceted Filters, Typescript, Open Source, MIT license. 1 556 | command deploy to your own server, 1 click deploy to Netlify/Vercel. 557 | uses: [Vercel, Tailwind, TypeScript, svelte-toasts, PostCSS, cssnano] 558 | tags: [commerce, shopping, login, store] 559 | date_created: 2020-04-27 560 | date_added: 2022-08-23 561 | 562 | - title: Joy of Code 563 | url: https://joyofcode.xyz 564 | repo: https://github.com/mattcroat/joy-of-code 565 | description: 🌸 Joy of Code is a digital garden growing curious minds. 566 | uses: 567 | - GitHub API 568 | - Monaco 569 | - Playwright 570 | - Google Analytics 571 | - Supabase 572 | - Vercel 573 | - PNPM 574 | - Sass 575 | - TypeScript 576 | - remark 577 | - rehype 578 | tags: [blog, community, cms] 579 | date_created: 2020-10-19 580 | date_added: 2022-08-31 581 | 582 | - title: QWER 583 | url: https://svelte-qwer.vercel.app 584 | repo: https://github.com/kwchang0831/svelte-QWER 585 | description: ✒︎ Simply Awesome Blog Starter built with SvelteKit and ❤ 586 | uses: [UnoCSS, TypeScript, MarkedJS, PNPM, Vercel] 587 | tags: [blog, template] 588 | date_created: 2022-06-28 589 | date_added: 2022-09-04 590 | 591 | - title: StemRoller 592 | url: https://stemroller.com 593 | repo: https://github.com/stemrollerapp/stemroller 594 | description: Isolate vocals, drums, bass, and other instrumental stems from any song 595 | uses: [Electron, Tailwind, Lodash, PostCSS, ytdl-core] 596 | tags: [desktop app, music, machine learning, deep learning] 597 | date_created: 2022-07-10 598 | date_added: 2022-09-07 599 | 600 | - title: Houses of World 601 | url: https://housesof.world 602 | description: A travel, photography and design project showcasing charismatic houses around the world. 603 | uses: 604 | - Typescript 605 | - SCSS 606 | - PostCSS 607 | - Motion One 608 | - OGL 609 | - WebGL 610 | - Directus 611 | - Swell Commerce 612 | - Vercel 613 | tags: 614 | - animations 615 | - transitions 616 | - photography 617 | - commerce 618 | - design 619 | - typography 620 | - graphic design 621 | date_created: 2022-09-27 622 | date_added: 2022-09-30 623 | 624 | - title: Skeleton 625 | url: https://skeleton.dev 626 | repo: https://github.com/Brain-Bones/skeleton 627 | description: A fully featured web UI toolkit for Svelte + Tailwind. Supports SvelteKit, Vite, and Astro. 628 | uses: [Vitest, PostCSS, highlight.js, Tailwind, Typescript, jsdom] 629 | tags: [component library] 630 | date_created: 2022-02-23 631 | date_added: 2022-10-30 632 | 633 | - title: Svelte MultiSelect 634 | url: https://janosh.github.io/svelte-multiselect 635 | repo: https://github.com/janosh/svelte-multiselect 636 | description: Keyboard-friendly, accessible and highly customizable multi-select component. 637 | npm: https://npmjs.com/package/svelte-multiselect 638 | uses: 639 | - Vitest 640 | - Playwright 641 | - Typescript 642 | - PNPM 643 | - pre-commit 644 | - rehype 645 | - jsdom 646 | - GitHub Pages 647 | - mdsvexamples 648 | tags: [forms, select component, interactive, NPM package] 649 | date_created: 2021-05-07 650 | date_added: 2022-10-30 651 | 652 | - title: Fireship 653 | url: https://fireship.io 654 | repo: https://github.com/fireship-io/fireship.io 655 | description: 656 | The Fireship PRO course platform frontend built with Svelte, Tailwind CSS, Hugo 657 | (for static content management), Firebase for Auth and DB, Flamethrower for routing. 658 | uses: [Tailwind, Hugo, Firebase, Flamethrower, Sass, PostCSS, Algolia] 659 | tags: [education, tutorials, web dev] 660 | date_created: 2019-01-07 661 | date_added: 2022-11-19 662 | 663 | - title: Intl Explorer 664 | url: https://intl-explorer.com 665 | repo: https://github.com/jesperorb/intl-explorer 666 | description: A tool for experimenting and trying out the ECMAScript Internationalization API. 667 | uses: 668 | [TypeScript, PNPM, Playwright, Vercel, svelte-highlight, Husky, commitlint] 669 | tags: [education, tutorials, web dev, interactive, playground] 670 | date_created: 2021-12-02 671 | date_added: 2022-11-27 672 | 673 | - title: SvelteKit Embed 674 | url: https://sveltekit-embed.vercel.app 675 | repo: https://github.com/spences10/sveltekit-embed 676 | description: 677 | SvelteKit embed components for YouTube, Vimeo, Twitter, Spotify, SoundCloud, StackBlitz, 678 | CodePen, AnchorFM, Simple Cast and more. 679 | uses: 680 | - TypeScript 681 | - PNPM 682 | - Vercel 683 | - MDsveX 684 | - Tailwind 685 | - PostCSS 686 | - Husky 687 | - Playwright 688 | - DaisyUI 689 | tags: [component library] 690 | date_created: 2021-07-17 691 | date_added: 2022-12-09 692 | 693 | - title: SvelteKit static blog starter 694 | url: https://sveltekit-static-starter.netlify.app 695 | repo: https://github.com/josh-collinsworth/sveltekit-blog-starter 696 | description: 697 | A pre-configured SvelteKit static blog starter, with Sass, Markdown, MDSvex, Rehype 698 | and background preloading. 699 | uses: [Netlify, MDsveX, Sass, Husky] 700 | tags: [blog starter, sass, markdown, mdsvex, page transitions, seo, rss] 701 | date_created: 2021-11-02 702 | date_added: 2023-01-11 703 | 704 | - title: svelte-put 705 | url: https://svelte-put.vnphanquang.com 706 | repo: https://github.com/vnphanquang/svelte-put 707 | description: Useful svelte stuff to put in your projects. 708 | uses: [Changesets, MDsveX, PostCSS, PNPM, Turbo] 709 | tags: [preprocessor, actions, component library] 710 | date_created: 2022-05-12 711 | date_added: 2023-01-14 712 | 713 | - title: sveltekit-mdsvex-blog 714 | url: https://sveltekit-mdsvex-blog.netlify.app 715 | repo: https://github.com/mvasigh/sveltekit-mdsvex-blog 716 | description: A minimalist blog template built with SvelteKit and MDsveX. 717 | uses: [TypeScript, MDsveX, Rehype, Remark, PNPM, Vitest, Playwright] 718 | tags: [blog, markdown, template, starter] 719 | date_created: 2021-05-08 720 | date_added: 2023-01-15 721 | 722 | - title: sveltekit-typescript-showcase 723 | url: https://github.com/ivanhofer/sveltekit-typescript-showcase 724 | repo: https://github.com/ivanhofer/sveltekit-typescript-showcase 725 | description: This repository shows how Svelte and SvelteKit work together with TypeScript. 726 | uses: [TypeScript] 727 | tags: [showcase, tutorial, learning] 728 | date_created: 2022-03-07 729 | date_added: 2023-02-24 730 | 731 | - title: svelte-command-palette 732 | url: https://svelte-command-palette.vercel.app 733 | repo: https://github.com/rohitpotato/svelte-command-palette 734 | npm: https://npmjs.com/package/svelte-command-palette 735 | description: Dead simple command palette with fuzzy search. 736 | uses: [TypeScript, Playwright, PostCSS, Tailwind, Release It, Vercel] 737 | tags: [cmd-palette, NPM package] 738 | date_created: 2022-06-17 739 | date_added: 2023-02-27 740 | 741 | - title: svelte-legos 742 | url: https://svelte-legos.surge.sh 743 | repo: https://github.com/ankurrsinghal/svelte-legos 744 | npm: https://npmjs.com/package/svelte-legos 745 | description: A library of Svelte actions. 746 | uses: [TypeScript, vitest, Tailwind, PostCSS, Prism] 747 | tags: [component library, NPM package, actions] 748 | date_created: 2023-02-21 749 | date_added: 2023-03-06 750 | 751 | - title: Watch This 752 | url: https://github.com/StephDietz/watch-this/issues/28 753 | repo: https://github.com/StephDietz/watch-this 754 | description: 755 | Uses OpenAI GPT-3 API and streaming Vercel edge functions to generate cinema 756 | recommendations based on user input. 757 | uses: [TypeScript, Vercel, Tailwind] 758 | tags: [content recommendation, edge functions, machine learning] 759 | date_created: 2023-01-26 760 | date_added: 2023-03-25 761 | 762 | - title: editable-website 763 | url: https://editable.website 764 | repo: https://github.com/michael/editable-website 765 | description: A SvelteKit template for building CMS-free editable websites. 766 | uses: [Tailwind, ProseMirror, AWS] 767 | tags: [postgres, richtext, editable, cms-free, template] 768 | date_created: 2023-04-04 769 | date_added: 2023-05-07 770 | 771 | - title: Chat UI 772 | url: https://huggingface.co/chat 773 | repo: https://github.com/huggingface/chat-ui 774 | description: Powers the HuggingChat app. Making the community's best AI chat models available to everyone. 775 | uses: [Huggingface Inference, Huggingface Hub, Tailwind] 776 | tags: [gpt, ai, nlp, chat, large language models] 777 | date_created: 2023-04-04 778 | date_added: 2023-05-11 779 | 780 | - title: Team Health Check 781 | url: https://team-health-check-coral.vercel.app 782 | repo: https://github.com/codehub-kirans/team-health-check 783 | description: A tool to visualize historical agile scrum team performance based on behavior anchors. 784 | uses: [PicoCSS, Pocketbase, Vercel] 785 | tags: [agile team health, agile spotify, team health check] 786 | date_created: 2023-05-05 787 | date_added: 2023-05-14 788 | 789 | - title: SvelteLab 790 | url: https://sveltelab.dev 791 | repo: https://github.com/sveltelab/sveltelab 792 | description: Supercharged REPL for Svelte (think StackBlitz specialized for Svelte) 793 | uses: 794 | - Playwright 795 | - vitest 796 | - Iconify 797 | - MarkedJS 798 | - TypeScript 799 | - PNPM 800 | - Pocketbase 801 | - Vercel 802 | - Tailwind 803 | tags: [repl, playground] 804 | date_created: 2023-02-23 805 | date_added: 2023-05-21 806 | 807 | - title: Significa.co 808 | url: https://significa.co 809 | repo: https://github.com/significa/significa.co 810 | description: Product Design and Development agency website, built with Sveltekit. 811 | uses: 812 | - TypeScript 813 | - Vercel 814 | - Tailwind 815 | - AWS 816 | - Dynamodb 817 | - Notion 818 | - Storyblock 819 | - Matter.js 820 | - Plausible 821 | tags: [company, agency] 822 | date_created: 2023-05-13 823 | date_added: 2023-05-22 824 | 825 | - title: shadcn-svelte 826 | url: https://shadcn-svelte.com 827 | site_src: https://github.com/huntabyte/shadcn-svelte/tree/main/sites/docs 828 | repo: https://github.com/huntabyte/shadcn-svelte 829 | description: shadcn/ui, but for Svelte. 830 | uses: 831 | [TypeScript, Vercel, Tailwind, PNPM, Changesets, vitest, Prism, MarkedJS] 832 | tags: [component library, community] 833 | date_created: 2023-05-15 834 | date_added: 2023-07-06 835 | 836 | - title: learn.svelte.dev 837 | url: https://learn.svelte.dev 838 | repo: https://github.com/sveltejs/learn.svelte.dev 839 | description: A soup-to-nuts interactive tutorial on how to build apps with Svelte. 840 | uses: [Vercel, PNPM, Prism, MarkedJS, CodeMirror] 841 | tags: [docs, tutorial, education, community] 842 | date_created: 2023-05-15 843 | date_added: 2023-07-27 844 | 845 | - title: Dotfyle 846 | url: https://dotfyle.com 847 | repo: https://github.com/codicocodes/dotfyle 848 | description: Discover and share Neovim configurations and plugins. 849 | uses: [TypeScript, PNPM, tRPC-SvelteKit, Prisma, Tailwind, Octokit] 850 | tags: [neovim, dotfiles, community] 851 | date_created: 2023-03-11 852 | date_added: 2023-08-01 853 | 854 | - title: tRPC-SvelteKit 855 | url: https://icflorescu.github.io/trpc-sveltekit 856 | repo: https://github.com/icflorescu/trpc-sveltekit 857 | description: End-to-end type-safe APIs for your SvelteKit applications. 858 | uses: [TypeScript, tRPC] 859 | tags: [community, open source, NPM package, docs, dev tools] 860 | date_created: 2022-02-10 861 | date_added: 2023-08-03 862 | 863 | - title: ASM Editor 864 | url: https://asm-editor.specy.app 865 | repo: https://github.com/Specy/asm-editor 866 | description: A modern webapp to write, run and learn M68K assembly code. 867 | uses: [TypeScript, Sass, Monaco, WASM] 868 | tags: [Javascript, interpreter, emulator, assembly, M68K] 869 | date_created: 2022-04-22 870 | date_added: 2023-09-30 871 | 872 | - title: Ollama Web UI 873 | url: https://ollamahub.com 874 | repo: https://github.com/ollama-webui/ollama-webui 875 | description: ChatGPT-Style Web UI Client for Ollama 🦙. 876 | uses: [highlight.js, MarkedJS, KaTeX, TypeScript, Tailwind] 877 | tags: [chatbot, AI, NLP, GPT, large language models, UI] 878 | date_created: 2023-10-07 879 | date_added: 2024-01-01 880 | 881 | - title: Immich 882 | url: https://immich.app 883 | repo: https://github.com/immich-app/immich 884 | description: Self-hosted photo and video backup solution directly from your mobile phone. 885 | uses: [NestJS, TypeScript, Tailwind, Flutter, Python] 886 | tags: [photos, photo-gallery, self-hosted, backup-tool, media] 887 | date_created: 2022-02-03 888 | date_added: 2024-01-22 889 | 890 | - title: Auth starter app 891 | url: https://passlock.dev 892 | site_src: https://github.com/passlock-dev/passlock/tree/master/packages/create-sveltekit/docs 893 | repo: https://github.com/passlock-dev/passlock 894 | description: SvelteKit template featuring Passkeys, Social Sign in and more. 895 | uses: [passlock, tailwind, superforms, lucia] 896 | tags: [security, authentication, passkeys, template] 897 | date_created: 2024-04-22 898 | date_added: 2024-05-17 899 | 900 | - title: Svead 901 | url: https://svead.pages.dev 902 | repo: https://github.com/spences10/svead 903 | description: 904 | Svead 🍺, a component that allows you to set head meta information, canonical, title, 905 | Twitter and Facebook Open Graph tags, and schema.org data. 906 | uses: 907 | - TypeScript 908 | - PNPM 909 | - Cloudflare Pages 910 | - MDsveX 911 | - Tailwind 912 | - PostCSS 913 | - DaisyUI 914 | tags: [component library] 915 | date_created: 2022-05-15 916 | date_added: 2024-05-31 917 | 918 | - title: barnsworthburning 919 | url: https://barnsworthburning.net 920 | repo: https://github.com/Aias/barnsworthburning 921 | description: An experimental commonplace book / digital garden with a richly 922 | interconnected set of links, notes, and ideas. 923 | uses: 924 | - TypeScript 925 | - Airtable 926 | - Radix 927 | - MarkedJS 928 | - Cloudflare Pages 929 | tags: [digital garden, commonplace, notes, networks, themes] 930 | date_created: 2019-07-09 931 | date_added: 2024-07-28 932 | 933 | - title: macOS-Themed Portfolio 934 | url: https://macosportfolio.netlify.app 935 | repo: https://github.com/ansxuman/macOS-Themed-Portfolio 936 | description: An interactive portfolio website inspired by the macOS interface. 937 | uses: [TypeScript, Tailwind, PM2, Cloudflare, Netlify, Nginx] 938 | tags: [portfolio, macos, theme, interactive, blogs, projects] 939 | date_created: 2024-10-13 940 | date_added: 2024-11-19 941 | 942 | - title: VERT 943 | url: https://vert.sh 944 | repo: https://github.com/VERT-sh/VERT 945 | description: A file converter that converts files client-side while being completely ad-free. 946 | uses: [TypeScript, Tailwind, Coolify, WASM, FFmpeg, libvips, Plausible] 947 | tags: 948 | [ffmpeg, conversion, wasm, vips, open source, graphics, video, audio, files] 949 | date_created: 2024-11-12 950 | date_added: 2025-02-20 951 | repo_stars: 3328 952 | -------------------------------------------------------------------------------- /tools.yml: -------------------------------------------------------------------------------- 1 | airtable: https://airtable.com 2 | algolia: https://algolia.com 3 | anime.js: https://animejs.com 4 | aws: https://aws.amazon.com 5 | babel: https://babeljs.io 6 | changesets: https://github.com/changesets/changesets 7 | chart.js: https://chartjs.org 8 | cloudflare pages: https://pages.cloudflare.com 9 | cloudflare: https://cloudflare.com 10 | cloudinary: https://cloudinary.com 11 | codemirror: https://codemirror.net 12 | commitlint: https://github.com/conventional-changelog/commitlint 13 | coolify: https://coolify.io 14 | cssnano: https://cssnano.github.io/cssnano 15 | cypress: https://cypress.io 16 | cytoscape.js: https://js.cytoscape.org 17 | d3: https://d3js.org 18 | daisyui: https://daisyui.com 19 | directus: https://directus.io 20 | docker: https://docker.com 21 | dynamodb: https://aws.amazon.com/dynamodb 22 | echarts: https://github.com/apache/echarts 23 | elder.js: https://github.com/Elderjs/elderjs 24 | electron: https://electronjs.org 25 | ffmpeg: https://ffmpeg.org 26 | filepond: https://pqina.nl/filepond 27 | firebase: https://firebase.google.com 28 | flamethrower: https://github.com/fireship-io/flamethrower 29 | flutter: https://flutter.dev 30 | github api: https://docs.github.com/rest 31 | github pages: https://pages.github.com 32 | gitpod: https://gitpod.io 33 | google analytics: https://analytics.google.com 34 | google tag manager: https://tagmanager.google.com 35 | graphcms: https://graphcms.com 36 | graphql: https://graphql.org 37 | gsap: https://greensock.com/gsap 38 | highlight.js: https://highlightjs.org 39 | huggingface hub: https://github.com/huggingface/huggingface_hub 40 | huggingface inference: https://github.com/huggingface/text-generation-inference 41 | hugo: https://gohugo.io 42 | husky: https://github.com/typicode/husky 43 | ibm carbon: https://carbondesignsystem.com 44 | iconify: https://iconify.design 45 | iconoir: https://iconoir.com 46 | jest: https://jestjs.io 47 | js-yaml: https://github.com/nodeca/js-yaml 48 | jsdoc: https://jsdoc.app 49 | jsdom: https://github.com/jsdom/jsdom 50 | json5: https://github.com/json5/json5 51 | katex: https://github.com/KaTeX/KaTeX 52 | libvips: https://libvips.org 53 | liveblocks: https://liveblocks.io 54 | lodash: https://lodash.com 55 | lucia: https://github.com/lucia-auth/lucia 56 | mapbox: https://mapbox.com 57 | markedjs: https://marked.js.org 58 | matter.js: https://brm.io/matter-js 59 | mdsvex: https://github.com/pngwn/MDsveX 60 | mdsvexamples: https://github.com/mattjennings/mdsvexamples 61 | mocha: https://mochajs.org 62 | monaco: https://microsoft.github.io/monaco-editor 63 | motion one: https://motion.dev 64 | mvp.css: https://github.com/andybrewer/mvp 65 | nestjs: https://nestjs.com 66 | netlify: https://netlify.com 67 | nginx: https://nginx.org 68 | notion: https://notion.so 69 | octokit: https://github.com/octokit/octokit.js 70 | ogl: https://github.com/oframe/ogl 71 | panzoom: https://github.com/timmywil/panzoom 72 | passlock: https://github.com/passlock-dev/passkeys 73 | picocss: https://picocss.com 74 | plausible: https://plausible.io 75 | playwright: https://playwright.dev 76 | pm2: https://pm2.io 77 | pnpm: https://pnpm.io 78 | pocketbase: https://pocketbase.io 79 | postcss: https://postcss.org 80 | pre-commit: https://pre-commit.com 81 | prism: https://prismjs.com 82 | prisma: https://prisma.io 83 | prosemirror: https://prosemirror.net 84 | python: https://python.org 85 | radix: https://radix-ui.com 86 | rehype: https://github.com/rehypejs/rehype 87 | release it: https://github.com/release-it/release-it 88 | remark: https://github.com/remarkjs/remark 89 | sanitize-html: https://github.com/apostrophecms/sanitize-html 90 | sanity: https://sanity.io 91 | sass: https://sass-lang.com 92 | scss: https://sass-lang.com/documentation/syntax 93 | smui: https://sveltematerialui.com 94 | spotify web api: https://github.com/JMPerez/spotify-web-api-js 95 | storyblock: https://storyblok.com 96 | storybook: https://storybook.js.org 97 | supabase: https://supabase.com 98 | superforms: https://github.com/ciscoheat/sveltekit-superforms 99 | surge.sh: https://surge.sh 100 | svelte forms lib: https://github.com/tjinauyeung/svelte-forms-lib 101 | svelte-enhanced-img: https://svelte.dev/docs/kit/images#sveltejs-enhanced-img 102 | svelte-highlight: https://github.com/metonym/svelte-highlight 103 | svelte-intl-precompile: https://github.com/cibernox/svelte-intl-precompile 104 | svelte-markdown: https://github.com/pablo-abc/svelte-markdown 105 | svelte-multiselect: https://github.com/janosh/svelte-multiselect 106 | svelte-toasts: https://github.com/mzohaibqc/svelte-toasts 107 | sveltekit-i18n: https://github.com/sveltekit-i18n/lib 108 | swell commerce: https://swell.is 109 | tailwind: https://tailwindcss.com 110 | testing library: https://testing-library.com 111 | three.js: https://threejs.org 112 | trpc-sveltekit: https://github.com/icflorescu/trpc-sveltekit 113 | trpc: https://trpc.io 114 | turbo: https://github.com/vercel/turbo 115 | typescript: https://typescriptlang.org 116 | underscore: https://underscorejs.org 117 | unocss: https://github.com/unocss/unocss 118 | uvu: https://github.com/lukeed/uvu 119 | vercel: https://vercel.com 120 | vitest: https://vitest.dev 121 | wasm: https://webassembly.org 122 | webgl: https://developer.mozilla.org/docs/Web/API/WebGL_API 123 | ytdl-core: https://github.com/fent/node-ytdl-core 124 | --------------------------------------------------------------------------------