What's new in Svelte: August 2021

Shadow DOM, export and await - oh my!

From The Changelog (JS Party Ep. 182) to Svelte Radio (Episodes 29 and 30), it seems that folks couldn't help but talk about Svelte, this month! Also, shadow DOM support and new export and await functionality are new in Svelte.

New in Svelte

July was the most active month for the Svelte core repo since late 2019 as we really worked to reduce the number of outstanding PRs and saw the release of Svelte 3.39.0, 3.40.0, and 3.41.0. Tons of bug fixes were added as well as the following new features:

  • The |trusted event modifier allows you to check if an event is trusted before it's called (#6137)
  • The new svelte/ssr package to support work on improving SvelteKit SSR (#6416)
  • A new errorMode compiler option to support improved preprocessing of TypeScript files (#6194)
  • You can now specify a ShadowRoot as the target when creating a component - making it possible to render Svelte components inside the shadow DOM (#5869)
  • The export { ... } from (#2214), export let { ... } = (#5612) and {#await ... then/catch} (#6270) syntaxes are all now supported in Svelte components

For a full list of features and bug fixes, check out the Svelte changelog.

SvelteKit Updates

  • prerender.force is now prerender.onError which lets you fine-tune which errors fail the build and which do not (#2007)
  • esbuild's configuration is now exposed for use with SvelteKit adapters (#1914)
  • Error messages are friendlier now for common config errors (#1910) and compiler errors (#1827)
  • Cookies will only be passed through if the target host is the same as the SvelteKit application or a more specific subdomain of it (#1847)
  • index.js exports will now be changed to directory exports when packaging - making for nicer imports (#1905)
  • Vite.js's mode is now exposed from $app/env (#1789)
  • Better types across the board (#1778, #1791, #1646)

To see all updates to SvelteKit, check out the SvelteKit changelog.

Features & bug fixes from around svelte/*

  • Language Tools now better support the "Workplace Trust" functionality (used in VS Code)
  • In svelte2tsx, ambient type declarations are now renamed to avoid conflicting declarations in the future. Users are now expected to provide the ambient type definitions themselves - fixing JS output
  • Sapper released v0.29.2 which fixes regex routes, status codes when requesting a directory, and exports when a user has not provided a base tag (changelog)

Community Showcase

Apps & Sites

Looking for a Svelte project to work on? Interested in helping make Svelte's presence on the web better? Check out the list of open issues if you'd like to contribute to the Svelte Society rewrite in SvelteKit.

Educational Content

Libraries, Tools & Components

  • Svelte-Capacitor just released v2.0.0 - making it even easier to build hybrid mobile apps for iOS and Android using Svelte and Capacitor with near native performance.
  • svelte-remixicon is an icon library for Svelte based on Remix Icon, consisting of more than 2000 icons.
  • SveltePress is a documentation tool built on top of SvelteKit.
  • Svelte Starter Kit is a boilerplate to quckly get up and running with Svelte, with Auth and User Profiles powered by Supabase.
  • Kahi UI is a Svelte-first UI kit with Dark Mode built-in.
  • typesafe-i18n is an opinionated, fully type-safe, lightweight localization library for TypeScript and JavaScript projects with no external dependencies.

Check out the community site sveltesociety.dev for more templates, adders and adapters from across the Svelte ecosystem.

See you next month!

Want more updates? Join us on Reddit or Discord!