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 SvelteJuly 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 thetarget
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 Updatesprerender.force
is nowprerender.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
- Parsnip is a mobile-first, progressive-web-app that helps you to learn to cook at home. Check out the conversation on Reddit for all the geeky details.
- Central Bank Digital Currency (CBDC) tracker is a site that keeps track of how countries around the world are adopting digital currencies.
- Svelte Commerce is an advanced frontend platform for eCommerce based on Sveltekit.
- neovimcraft is a SvelteKit site dedicated to neovim plugins
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
- How I Built a Cross-Platform Desktop Application with Svelte, Redis, and Rust is a blog post by Luke Edwards, Svelte maintainer and Developer Advocate from Cloudflare.
- How to Create a Blog with SvelteKit and Strapi is a step-by-step tutorial by Aarnav Pai from Strapi
- Sveltekit Markdown Blog is a YouTube tutorial series by WebJeda.
- Using Custom Elements in Svelte is a deep dive into custom elements by Geoff Rich.
- learn / graphql / svelte is a free 2-hour GraphQL course from Hasura.
- How to add Magic Link to a SvelteKit application is a guide to the popular password-less login pattern.
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 quickly 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!