What’s new in Svelte: December 2023

Svelte Summit Fall 2023 was epic! Featuring talks from across the ecosystem and the launches from the core team of new Svelte Dev Tools, image optimization, and a preview version of Svelte 5.0! The

Svelte Summit Fall 2023 was epic! Featuring talks from across the ecosystem and the launches from the core team of new Svelte Dev Tools, image optimization, and a preview version of Svelte 5.0! The whole talk can be found here (https://www.youtube.com/watch?v=pTgIx-ucMsY) (timestamps below):

• 0:00 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=0s) Hype music!

• 18:20 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=1100s) Exploring Svelte DevTools - Ignatius B (4 minutes)

• 25:27 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=1527s) How does SvelteKit fare as a SPA Framework - Henry Lie (25 minutes)

• 53:00 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=3180s) enhanced:img - Ben McCann (6 minutes)

• 1:03:44 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=3824s) inlang-paraglide JS for SvelteKit i18n - Samuel Stroschein (10 minutes)

• 1:17:32 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=4652s) How Svelte & GraphQL plays well together - Jean-Yves Couet (31 minutes)

• 1:53:10 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=6790s) svelte-ecosystem-ci - Dominik G (10 minutes)

• 2:23:06 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=8586s) Svelte for Creative Development - Steven Stavrakis (10 minutes)

• 2:35:33 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=9333s) Translating the docs - Romain I’Ourson (11 minutes)

• 2:49:48 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=10188s) ENHANCE! - Paolo Ricciuti (25 minutes)

• 3:18:25 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=11905s) Accessibility tips with Svelte solutions - Enrico Sacchetti (25 minutes)

• 3:49:11 (https://www.youtube.com/watch?v=pTgIx-ucMsY&t=13751s) svelte@next - Rich Harris (18 minutes)

Today is also the first day of Advent of Svelte (https://advent.sveltesociety.dev/): A Svelte challenge for each day of December. Join the festivities and participate in a daily frontend challenge using Svelte!

Now let’s dive into the updates…

What’s new in Svelte (5.0 Preview!) (#What’s-new-in-Svelte-(5.0-Preview-))Svelte 5 preview (https://svelte-5-preview.vercel.app/docs/introduction) is now available at svelte@next (https://www.npmjs.com/package/svelte?activeTab=versions) while Svelte 4’s current version (@latest) is 4.2.7. All the changes below are from the preview’s branch:

• TypeScript is now supported natively via acorn-typescript (5.0.0-next.9, #9482 (https://github.com/sveltejs/svelte/pull/9482))

• The new $effect.active rune returns a boolean to indicate if an effect is active. This lets you set up subscriptions when a value is read (in an effect, or in the template) but also read values without creating subscriptions (5.0.0-next.10, Docs (https://svelte-5-preview.vercel.app/docs/runes#effect-active), #9591 (https://github.com/sveltejs/svelte/pull/9591))

• The new $effect.root rune creates a non-tracked scope that doesn’t auto-cleanup. This is useful for nested effects that you want to manually control (5.0.0-next.14, Docs (https://svelte-5-preview.vercel.app/docs/runes#effect-root), #9638 (https://github.com/sveltejs/svelte/pull/9638))

For all the release notes going forward, check out the CHANGELOG on main (https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md). For the highlights, take a look below!

What’s new in SvelteKit (#What’s-new-in-SvelteKit)

• Creating a new SvelteKit project will now ask if you want to try the Svelte 5 beta (#11026 (https://github.com/sveltejs/kit/pull/11026))

• Prettier 3 and prettier-plugin-svelte 3 are now the default versions when creating new SvelteKit projects (#10410 (https://github.com/sveltejs/kit/pull/10410))

• nodejs20.x is now supported via the Vercel adapter (#11067 (https://github.com/sveltejs/kit/pull/11067))

• @sveltejs/enhanced-img makes serving different sizes of images easy, thanks to pre-processing (Docs (/docs/kit/images#sveltejs-enhanced-img), #10788 (https://github.com/sveltejs/kit/pull/10788))

For a complete list of bug fixes and performance updates, check out the SvelteKit CHANGELOG (https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md). You can also find adapter-specific CHANGELOGs in each of the adapter directories.

What’s new in Language Tools (#What’s-new-in-Language-Tools)

• The latest version of language tools adds best-effort fallback typings to $props() rune (extensions-108.1.0)

• Language tools better supports the @render tag by using the Snippet type (extensions-108.0.0)

• The Svelte ESLint plugin has been updated to support the Svelte 5 preview (v2.36.0-next.2 (https://github.com/sveltejs/eslint-plugin-svelte/releases/tag/v2.36.0-next.2))

Community Showcase (#Community-Showcase)Apps & Sites built with Svelte (#Community-Showcase-Apps-Sites-built-with-Svelte)

• MobileView (https://mobileview.io/) is a Chrome Extension for real-time, cross-device website simulation

• ClassroomIO (https://www.classroomio.com/) is an Open Source Platform for Tech Bootcamps

• sshx (https://github.com/ekzhang/sshx) is a secure web-based, collaborative terminal

• ToneShift (https://www.toneshift.cc/) lets you clone any voice, create music, and join a community of voices

• CanvasGPT (https://www.canvasgpt.com/) is Autonomous Mind Maps. Powered by AI

• Wordplay (https://wordplay.dev/) is a new educational, accessible, and language-inclusive programming language for creating playful, interactive typography (Blog Post (https://medium.com/bits-and-behavior/wordplay-accessible-language-inclusive-interactive-typography-e4b9027eaf10))

• CodeFlow (https://github.com/SikandarJODD/CodeFlow) is a roadmap for programmers to learn, think and code better

• Teller (https://github.com/Valink-Solutions/teller) is a comprehensive Minecraft backup solution designed to facilitate both local backups and interfacing with the ChunkVault Backend

• Sudoku (https://github.com/betofigueiredo/sudoku) is a board created with SvelteKit, Typescript and Tailwind

Learning Resources (#Community-Showcase-Learning-Resources)Featuring Svelte Contributors and Ambassadors

• View Transitions in SvelteKit and beyond with Geoff Rich (https://www.svelteradio.com/episodes/view-transitions-in-sveltekit-and-beyond-with-geoff-rich) and Melting UIs with Thomas G. Lopes (https://www.svelteradio.com/episodes/melting-uis-with-thomas-g-lopes) by Svelte Radio

• Making The Best Svelte SVG Animation Library (https://www.youtube.com/watch?v=_jWnyJRKOvU), How To Publish Your JavaScript Code To Npm With SvelteKit (https://www.youtube.com/watch?v=Xvq8rCl1lIM), and What’s New In Svelte 5? (Runes, Events, Snippets) (https://www.youtube.com/watch?v=gGwnF-lxS_Q) by Joy of Code

• Svelte Society Talks

• Svelte Society - San Diego November 2023 (https://www.youtube.com/watch?v=Gh4ESdKP3yQ)

• Building a SvelteKit Adapter for WinterJS (https://www.youtube.com/watch?v=8HaAagG6V-Q) with Willow and Kev

• This Week in Svelte:

• 2023 October 27 (https://www.youtube.com/watch?v=jCNl6dtFDn4) - SvelteKit 1.27.1, the pillars of a component library

• 2023 November 3 (https://www.youtube.com/watch?v=-cyO9xzBXtk) - SvelteKit 1.27.2, choosing a database, preprocessors

• 2023 November 10 (https://www.youtube.com/watch?v=1ZWqySQNrtQ) - SvelteKit 1.27.4, Svelte 4.2.3, closing modals

• 2023 Nov 17 (https://www.youtube.com/watch?v=9lK6VvBEtL0) - SvelteKit 1.27.6, Svelte 4.2.5, new Svelte 5 features!

• 2023 Nov 24 (https://www.youtube.com/watch?v=vofaP86-HKU) - Svelte 4.2.7, TypeScript in markup, websockets in SvelteKit

To Watch/Hear

• Why Stack Overflow is embracing Svelte (https://stackoverflow.blog/2023/10/31/why-stack-overflow-is-embracing-svelte/) by The Stack Overflow Podcast

• Building a Twitter Clone with Svelte, SvelteKit, ,Firebase, Tailwind Css, Shad-cn Svelte etc (https://www.youtube.com/watch?v=MoHtXyRI7CQ) by Lawal Adebola

• SvelteKit Crash Course: Build a Full Website in 90 min! - 2023 Tutorial (https://www.youtube.com/watch?v=QKxJW6VVp6w) by Prismic

To Read

• Hands-On Experience: How to Build an eCommerce Store with SvelteKit? (https://crystallize.com/blog/building-ecommerce-with-sveltekit) by Bård Farstad

• Productive Dark Mode with SvelteKit, PostCSS, and TailwindCSS (Behind the Screen) (https://www.sveltevietnam.dev/en/blog/20231110-behind-the-screen-dark-mode-with-sveltekit-tailwindcss-and-postcss) by Quang Phan

• Setting up OAuth with Auth.js in a SvelteKit Project (https://mainmatter.com/blog/2023/11/23/setting-up-oauth-with-auth-js-and-sveltekit/) by Andrey Mikhaylov

• SvelteKit 🤝 Storybook (https://mainmatter.com/blog/2023/11/28/sveltekit-storybook/) by Paolo Ricciuti

• Integrate Storybook in Svelte: Doing it the Svelte-way (https://mainmatter.com/blog/2023/09/18/integrate-storybook-in-svelte-doing-it-the-svelte-way/) by Óscar Domínguez Celada

• Drizzle ORM with Sveltekit (https://medium.com/@anasmohammed361/drizzle-orm-with-sveltekit-8aecbc8cc39d) and Sveltekit — Streaming SSR (https://medium.com/@anasmohammed361/sveltekit-streaming-ssr-40ce666daffa) by Mohammed Anas

• Svelte & WordPress Full Stack Course (https://www.udemy.com/course/svelte-wordpress-full-stack/) by Artneo Web Design on udemy

• Add a loading indicator to a Form Action in SvelteKit (https://snippets.khromov.se/add-a-loading-indicator-to-a-form-action-in-sveltekit/) by Useful Snippets (Stanislav Khromov)

Libraries, Tools & Components (#Community-Showcase-Libraries-Tools-Components)

• sveltekit-view-transition (https://github.com/paoloricciuti/sveltekit-view-transition) provides a simplified view-transition-api for Sveltekit

• T18S (https://t18s.sigrist.dev/) aims to provide the best internationalization experience for SvelteKit, delivering typesafety, performance, and ease of use

• Svelte Flow (https://svelteflow.dev/) is a customizable Svelte component for building node-based editors and interactive diagrams

• Super Sitemap (https://github.com/jasongitmail/super-sitemap) is a SvelteKit sitemap focused on ease of use and making it impossible to forget to add your paths

• Svelte UX (https://svelte-ux.techniq.dev/) is a Tailwind-based component library to simplify creating highly interactive and visual applications

• CanIKit (https://github.com/tombroomfield/CanIKit) provides a simple way to add authorization to your SvelteKit application

• Svelte Toggles (https://github.com/Team-GOATS/svelte-toggles-npm-package) manages light & dark mode interactions and preference storage

• Baselime (https://baselime.io/docs/sending-data/cloudflare/pages/sveltekit/) now supports SvelteKit for the edge-logger package

That’s it for this month! Feel free to let us know if we missed anything on Reddit (https://www.reddit.com/r/sveltejs/) or Discord (https://discord.gg/svelte).

Until next time 👋

Write a comment
No comments yet.