|
| 1 | +--- |
| 2 | +title: "What's new in Svelte: October 2025" |
| 3 | +description: 'Improved Remote Functions, sv create from playgrounds and experimental async SSR' |
| 4 | +author: Dani Sandoval |
| 5 | +authorURL: https://dreamindani.com |
| 6 | +--- |
| 7 | + |
| 8 | +There were lots of improvements to remote functions this month - including new batching tools and improved performance via lazy discovery. For more info, check out the Docs and PR links in each bullet. Async SSR is also available for those who would like to try it out while it's still experimental. It's included when the config option in `svelte.config.js` has the `compilerOptions.experimental.async` setting enabled. |
| 9 | + |
| 10 | +We've got a hefty showcase this month too, so let's dive in! |
| 11 | + |
| 12 | +## What's new in Svelte, SvelteKit and Svelte CLI (sv) |
| 13 | + |
| 14 | +- The `event` property is now included on popstate, link and form navigation ( **[email protected]**, [#14307](https://github.com/sveltejs/kit/pull/14307)) |
| 15 | +- The `%sveltekit.version%` placeholder can now be used in `app.html` to easily include the current SvelteKit version in the output ( **[email protected]**, [Docs ](https://svelte.dev/docs/kit/project-structure#Project-files-src), [#12132](https://github.com/sveltejs/kit/pull/12132)) |
| 16 | +- You can now create projects from the Svelte playground with `npx sv create --from-playground <url>` ( **[email protected]**, [#662](https://github.com/sveltejs/cli/pull/662)) |
| 17 | +- Experimental async SSR is available in Svelte v5.39.3 and SvelteKit v2.43.0 or higher. You can opt-in via the `experimental.async` option. When this is enabled, it's possible to use `await` anywhere in your app, without wrapping it in a boundary with a pending snippet. You can find more information in the SvelteKit PR ([#14447](https://github.com/sveltejs/kit/pull/14447), Svelte PR is [#16748](https://github.com/sveltejs/svelte/pull/16748)) |
| 18 | + |
| 19 | +### Remote Functions |
| 20 | + |
| 21 | +- The remote `set()` function can now be called on server queries and `query.refresh()` promises will now be automatically resolved on the server ( **[email protected]**, [Docs ](https://svelte.dev/docs/kit/remote-functions), [#14304](https://github.com/sveltejs/kit/pull/14304), [#14332](https://github.com/sveltejs/kit/pull/14332)) |
| 22 | +- The new `query.batch` remote function lets you batch requests that happen within the same macrotask ( **[email protected]**, [Docs ](https://svelte.dev/docs/kit/remote-functions#query.batch), [#14272](https://github.com/sveltejs/kit/pull/14272)) |
| 23 | +- Lazy discovery of remote functions improves detection and tree shaking for functions defined in `node_modules` ( **[email protected]**, [#14293](https://github.com/sveltejs/kit/pull/14293)) |
| 24 | +- The `form` remote function has been enhanced with schema support, `input` and `issues` properties ( **[email protected]**, [Docs ](https://svelte.dev/docs/kit/remote-functions#form), [#14383](https://github.com/sveltejs/kit/pull/14383)) |
| 25 | + |
| 26 | +For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs [here](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md) and [here](https://github.com/sveltejs/kit/tree/main/packages). |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## Community Showcase |
| 31 | + |
| 32 | +### Apps & Sites built with Svelte |
| 33 | + |
| 34 | +- [Windframe](https://windframe.dev/) generates designs with AI or prebuilt templates to export as Tailwind CSS code for React, Vue, Svelte or HTML. |
| 35 | +- [pgpad](https://github.com/vrmiguel/pgpad) is a straightforward cross-platform database client |
| 36 | +- [Zippywords](https://www.zippywords.com/words/en) is a burst-typing game that's configurable with different languages (including the [Svelte 5 syntax](https://www.zippywords.com/code/Svelte%205)!) |
| 37 | +- [CBFC Watch](https://cbfc.watch/) is a data visualisation project with a searchable database of over 100K film censorship records in India ([GitHub](https://github.com/diagram-chasing/cbfc-watch)) |
| 38 | + |
| 39 | +_Spotted in the Wild_ |
| 40 | + |
| 41 | +- [The Apple TV website](https://tv.apple.com/) - ([Reddit post](https://www.reddit.com/r/sveltejs/comments/1n6i96i/the_appletv_website_uses_svelte/)) |
| 42 | +- [Gimli Tailwind](https://gimli.app/tailwind) - ([Reddit post](https://www.reddit.com/r/sveltejs/comments/1nbmoeq/the_most_popular_devtools_extension_for/)) |
| 43 | +- [The Mullvad VPN site](https://mullvad.net/en) - [Reddit post](https://www.reddit.com/r/sveltejs/comments/1nhe6t6/mullvad_vpn_uses_sveltekit_for_their_site/) |
| 44 | + |
| 45 | +### Learning Resources |
| 46 | + |
| 47 | +_Featuring Svelte Contributors and Ambassadors_ |
| 48 | + |
| 49 | +- [Introducing SvelteKit Remote Functions](https://www.youtube.com/watch?v=0hy7PCbXyqs) and [SvelteKit Remote Functions tips: Auth guards, managing async, query.batch](https://www.youtube.com/watch?v=z0f7NLPdLYE) by Simon Holthausen |
| 50 | +- [The Complete Svelte 5 Course For The Most Loved JavaScript Framework](https://www.youtube.com/watch?v=B2MhkPtBWs4) by Joy of Code (3+ hours of excellent content). Text version available [here](https://joyofcode.xyz/learn-svelte) |
| 51 | +- [Translate your Svelte and SvelteKit applications the easy way - full tutorial](https://www.youtube.com/watch?v=d0RPeuC4JL8) by Code with Stanislav |
| 52 | +- [How and why I built an MCP server for Svelte](https://khromov.se/how-and-why-i-built-an-mcp-server-for-svelte/) by Stanislav Khromov |
| 53 | +- [Svelte Radio](https://share.transistor.fm/s/a5f8c4c6) is back! Feat. Kevin, Brittney and Antony |
| 54 | + |
| 55 | +_This Week in Svelte_ |
| 56 | + |
| 57 | +- [Ep. 115](https://www.youtube.com/watch?v=PHk7YFAFvfg) — Changelog review |
| 58 | +- [Ep. 116](https://www.youtube.com/watch?v=sTepLQwJIVo) — e18e.dev and NPM's supply chain attack |
| 59 | +- [Ep. 117](https://www.youtube.com/watch?v=E0xQXa4qQGY) — Formisch |
| 60 | +- [Ep. 118](https://www.youtube.com/watch?v=eBXjXfUiuiA) — Changelog review |
| 61 | + |
| 62 | +_Svelte London - September 2025_ |
| 63 | + |
| 64 | +You can [watch the full video on YouTube](https://www.youtube.com/watch?v=odCWAAaTNSQ) or skip to the specific talks below: |
| 65 | + |
| 66 | +- [Svelte on Cloudflare: Tips and guide](https://www.youtube.com/live/odCWAAaTNSQ?si=2Eej24zu2ZXUEljs&t=412) by Mark Ridge and Connor Adams |
| 67 | +- [Ultra-low Latency in SvelteKit](https://www.youtube.com/live/odCWAAaTNSQ?si=4Eyh2SUwA26waECz&t=2563) by Scott Phillips |
| 68 | + |
| 69 | +_To Read_ |
| 70 | + |
| 71 | +- [Sharing some custom components that handle async state with less boilerplate in Svelte 5](https://www.reddit.com/r/sveltejs/comments/1niyflq/sharing_some_custom_components_that_handle_async/) by u/geokidev |
| 72 | +- [Rendering emails with Svelte](https://github.com/GauBen/svelte-emails) by Gautier Ben Aïm |
| 73 | +- [Integrate Keystatic CMS with SvelteKit to render Markdoc Content with Interactive Svelte Components](https://samuelplumppu.se/blog/keystatic-sveltekit-markdoc) by Samuel Plumppu |
| 74 | + |
| 75 | +_To Watch_ |
| 76 | + |
| 77 | +- [Svelte Under The Hood](https://www.youtube.com/watch?v=GsjfEmTS4x8) by ~/in-depth |
| 78 | + |
| 79 | +### Libraries, Tools & Components |
| 80 | + |
| 81 | +_UI / UX_ |
| 82 | + |
| 83 | +- [SVAR Svelte v2.3](https://github.com/svar-widgets) now has TypeScript definitions to all its open-source Svelte UI components |
| 84 | +- [@dnd-kit](https://www.npmjs.com/package/@dnd-kit-svelte/svelte) is a lightweight React-like library for building performant and accessible drag and drop experiences |
| 85 | +- svelte-overflow-fade is a Svelte action and attachment for adding beautiful fade effects to overflowing content |
| 86 | +- [scratch-to-reveal-svelte](https://github.com/dellamora/scratch-to-reveal-svelte) is a simple and customizable scratch-to-reveal component for Svelte |
| 87 | +- [Svelte Streamdown](https://svelte-streamdown.beynar.workers.dev/) is a Svelte port of Streamdown by Vercel - an all in one markdown renderer, designed specifically for AI-powered streaming applications |
| 88 | +- [USAL JS](https://usal.dev/) is the "Ultimate Scroll Animation Library" |
| 89 | + |
| 90 | +_Frameworks and Data Tools_ |
| 91 | + |
| 92 | +- [PrevelteKit](https://github.com/tbocek/preveltekit) is a lightweight, high-performance web application framework built on Svelte 5, featuring Server-Side Pre Rendering (SSPR) using Rsbuild and jsdom |
| 93 | +- [Apollo Runes](https://apollo-runes-docs.vercel.app/) is an Apollo Client for Svelte 5 |
| 94 | +- [Formisch](https://github.com/fabian-hiller/formisch) is a schema-based, headless form library for JS frameworks |
| 95 | +- [Conformal](https://github.com/marcomuser/conformal) helps you work with native FormData by providing type-safe form submissions for the modern web |
| 96 | +- [Astro](https://astro.build), already supporting async Svelte out of the box, added support for server-rendered async Svelte in the [5.14 release](https://astro.build/blog/astro-5140/#async-rendering-support-for-svelte) |
| 97 | +- [LayerChart](https://github.com/techniq/layerchart/releases/tag/layerchart%402.0.0-next.39) had a packed update and introduced (among other things) a "vanilla CSS" (Tailwind opt-in) mode and support for other UI frameworks, and now also works in the [Svelte REPL / playground](https://svelte.dev/playground/c5e73cb55a0045cca83e74b5cdfa3b65?version=5.39.6) |
| 98 | +- [keystatic-sveltekit](https://github.com/Greenheart/keystatic-sveltekit) is a convenient way to integrate the open source Git-based Keystatic CMS with SvelteKit, featuring Markdoc content with interactive Svelte components and a modern editing UX |
| 99 | + |
| 100 | +_Dev Tools and Vite Plugins_ |
| 101 | + |
| 102 | +- [wuchale](https://github.com/wuchalejs/wuchale) is a compile-time internationalization (i18n) toolkit that requires zero code changes |
| 103 | +- [SV Floating Console](https://www.npmjs.com/package/sv-console) is a floating console for Svelte applications that only appears in development mode |
| 104 | +- [magicons](https://github.com/propolies/magicons) is a fast, typesafe Icon wrapper that fixes bundling issues with large barrel exports in icon libraries |
| 105 | +- [Svelte-pops](https://svelte-pops.vercel.app/docs/overview) is a performant and easy to use popover manager for creating dialog and tooltips |
| 106 | +- [vite-plugin-svelte-inline-component](https://github.com/hanielu/vite-plugin-svelte-inline-component) lets you write tiny Svelte components straight inside your JavaScript / TypeScript tests using tagged‑template literals |
| 107 | +- [vite-plugin-sveltekit-decorators](https://github.com/KiraPC/vite-plugin-sveltekit-decorators) is a powerful Vite plugin that automatically decorates SvelteKit functions with customizable wrappers for logging, analytics, error handling, and more |
| 108 | + |
| 109 | +That's it for this month! Let us know if we missed anything on [Reddit](https://www.reddit.com/r/sveltejs/) or [Discord](https://discord.gg/svelte). |
| 110 | + |
| 111 | +Until next time 👋🏼! |
0 commit comments