<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The (Unofficial) Svelte JS Newsletter]]></title><description><![CDATA[Monthly coverage of the latest changes, projects and uses for Svelte JS]]></description><link>https://svelte.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png</url><title>The (Unofficial) Svelte JS Newsletter</title><link>https://svelte.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 04 Sep 2026 00:03:48 GMT</lastBuildDate><atom:link href="/__u/svelte.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Daniel E Sandoval]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[svelte@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[svelte@substack.com]]></itunes:email><itunes:name><![CDATA[Dani Sandoval]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dani Sandoval]]></itunes:author><googleplay:owner><![CDATA[svelte@substack.com]]></googleplay:owner><googleplay:email><![CDATA[svelte@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dani Sandoval]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What's new in Svelte: September 2026]]></title><description><![CDATA[New SvelteMap methods in Svelte 5.57, more SvelteKit 3 iteration and sv 1.0 previews SvelteKit 3 migrations]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-september-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-september-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Tue, 01 Sep 2026 13:03:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month, Svelte 5.57 shipped with new <code>SvelteMap</code> methods and a few quality-of-life additions while SvelteKit 3 got closer to the finish line with its Release Candidate.</p><p>The <code>sv</code> CLI also got a new <code>ai-tools</code> add-on that replaces the old <code>mcp</code> one, and <code>sv@next</code> now ships a task-based <code>sveltekit-3</code> migration for existing apps.</p><p>Let&#8217;s dive a bit deeper!</p><h2><strong>What&#8217;s new in Svelte</strong></h2><ul><li><p><code>SvelteMap</code> now has <code>getOrInsert</code> and <code>getOrInsertComputed</code> methods for the common &#8220;read or initialize&#8221; pattern (<strong>5.57.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-reactivity#SvelteMap">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/18728">#18728</a>)</p></li><li><p><code>createContext</code> now returns a third <code>has</code> function so you can check whether a context has been set without triggering the <code>get</code> error (<strong>5.57.0</strong>, <a href="https://svelte.dev/docs/svelte/context">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/18472">#18472</a>)</p></li><li><p><code>&lt;select&gt;</code> now supports the <code>defaultValue</code> attribute, so the select reverts to that value on form reset (<strong>5.57.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/18591">#18591</a>)</p></li><li><p><code>svelte/server</code> now exports the <code>RenderOutput</code>, <code>SyncRenderOutput</code>, <code>Csp</code> and <code>Sha256Source</code> types for typing server render output and CSP sources (<strong>5.57.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/18648">#18648</a>)</p></li></ul><p>For the full list of patches and bug fixes, see the Svelte <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a>.</p><h2><strong>What&#8217;s new in SvelteKit 3&#8217;s RC</strong></h2><p>Prereleases have kept rolling on the <code>@next</code> line this month, adding a few more features and refining the surface:</p><ul><li><p>Enhanced cross-page form actions now navigate to the action page on success and failure, matching native form behavior (<strong>3.0.0-next.17</strong>, breaking, <a href="https://github.com/sveltejs/kit/pull/16684">#16684</a>)</p></li><li><p>Adapter Vite plugins can now be split into <code>pre</code> and <code>post</code> groups so adapters can run transforms at the right point in the pipeline (<strong>3.0.0-next.18</strong>, breaking, <a href="https://github.com/sveltejs/kit/pull/16711">#16711</a>)</p></li><li><p>Files with <code>+</code> prefixes are now ignored during routing if their names contain <code>test</code>, <code>spec</code> or <code>stories</code>, so colocated tests don&#8217;t accidentally become routes (<strong>3.0.0-next.19</strong>, <a href="https://github.com/sveltejs/kit/pull/16715">#16715</a>)</p></li><li><p>Development-server response logging is now nicer to read and routes through Vite&#8217;s logger so it respects <code>logLevel</code> and <code>customLogger</code> (<strong>3.0.0-next.20/25</strong>, <a href="https://github.com/sveltejs/kit/pull/16744">#16744</a>, <a href="https://github.com/sveltejs/kit/pull/16858">#16858</a>)</p></li><li><p><code>defineParams</code> and the associated types have moved to <code>@sveltejs/kit/params</code> (<strong>3.0.0-next.19</strong>, breaking, <a href="https://github.com/sveltejs/kit/pull/16716">#16716</a>)</p></li><li><p><code>+server.js</code> files can now export a <code>QUERY</code> HTTP method handler (<strong>3.0.0-next.24</strong>, <a href="https://github.com/sveltejs/kit/pull/16782">#16782</a>)</p></li><li><p>The <code>preload</code> filter for fonts now receives the project-relative source <code>filename</code> so you can filter by directory or component (<strong>3.0.0-next.24</strong>, <a href="https://github.com/sveltejs/kit/pull/16443">#16443</a>)</p></li><li><p>Adapters can call the new <code>applyReroute</code> helper for split serverless function deployments (<strong>3.0.0-next.25</strong>, <a href="https://github.com/sveltejs/kit/pull/16665">#16665</a>)</p></li></ul><p>For the meantime, all of the SvelteKit 3 docs live on <a href="https://next.svelte.dev/docs/kit/migrating-to-sveltekit-3">next.svelte.dev</a>, and the full changelog is on the <a href="https://github.com/sveltejs/kit/blob/version-3/packages/kit/CHANGELOG.md">version-3 branch</a>. The stable 2.x line kept moving too with three patch releases (<strong>2.70.1</strong>, <strong>2.70.2</strong>, <strong>2.70.3</strong>) - see the <a href="https://github.com/sveltejs/kit/tree/main/packages">SvelteKit CHANGELOGs</a> for the details.</p><h2><strong>What&#8217;s new in the Svelte CLI and Language Tools</strong></h2><ul><li><p>The <code>mcp</code> add-on has been replaced with a broader <code>ai-tools</code> add-on that can set up the Svelte plugin (Claude Code, opencode) or pick individual tools (MCP server, skills, sub-agents) per client (<strong>sv@0.17.0</strong>, <a href="https://svelte.dev/docs/cli/ai-tools">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/1050">#1050</a>)</p></li><li><p><code>@sveltejs/sv-utils</code> picks up <code>isKit3</code>, <code>resolveLibPrefix</code> and <code>libSubpathImports</code> helpers so add-ons can transparently handle SvelteKit 2 and 3 (<strong>sv-utils@0.3.3</strong>, <a href="https://github.com/sveltejs/cli/pull/1199">#1199</a>)</p></li><li><p><code>sv migrate</code> has been reworked to prepare for the SvelteKit 3 migration - it now lists tasks, ships a <code>sveltekit-3</code> task that bumps dependencies and rewrites <code>$lib</code> to <code>#lib</code>, adds an <code>$app/state</code> task, delegates the older migrations to <code>svelte-migrate@1</code>, and creates a list of changes a developer or agent should resolve if they cannot be migrated automatically (<strong>sv@1.0.0-next.0</strong>, <a href="https://svelte.dev/docs/cli/sv-migrate">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/1138">#1138</a>, <a href="https://github.com/sveltejs/cli/pull/1241">#1241</a>, <a href="https://github.com/sveltejs/cli/pull/1249">#1249</a>)</p></li><li><p>Newly created projects use <code>#lib</code> (Node subpath imports) instead of <code>$lib</code>, matching SvelteKit 3 (<strong>sv@1.0.0-next.0</strong>, <a href="https://github.com/sveltejs/cli/pull/1185">#1185</a>)</p></li><li><p>Community add-ons no longer require a scoped package name (<strong>sv@1.0.0-next.4</strong>, <a href="https://github.com/sveltejs/cli/pull/1216">#1216</a>)</p></li><li><p>The <code>experimental</code> add-on is now scoped to enabling experimental features, and the <code>versions</code> option value was renamed to <code>kit-3</code> (<strong>sv@1.0.0-next.0</strong>, breaking, <a href="https://github.com/sveltejs/cli/pull/1241">#1241</a>, <a href="https://github.com/sveltejs/cli/pull/1185">#1185</a>)</p></li><li><p>Vite plugin gets a <code>dynamicCompileOptions</code> argument for the current Vite environment, useful when you want to compile differently for the client, server or SSR environment (<strong>vite-plugin-svelte@7.3.0</strong>, <a href="https://github.com/sveltejs/vite-plugin-svelte/pull/1386">#1386</a>)</p></li><li><p><code>svelte2tsx</code> and <code>svelte-check</code> learn about SvelteKit 3&#8217;s flattened config structure so the type generation and diagnostics keep working through the migration (<strong>svelte-check@4.7.6/svelte2tsx@0.7.61/svelte-language-server@0.18.4</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3104">#3104</a>, <a href="https://github.com/sveltejs/language-tools/pull/3106">#3106</a>)</p></li></ul><p>Want to dive deeper? Check out the <a href="https://github.com/sveltejs/cli/releases">Svelte CLI</a>, <a href="https://github.com/sveltejs/language-tools/releases">language-tools</a> and <a href="https://github.com/sveltejs/ai-tools/releases">ai-tools</a> releases.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://edentext.app/">EdenText</a> is a fully local open-source word processor for <code>.odt</code> and <code>.docx</code> documents that runs entirely in the browser or as a PWA</p></li><li><p><a href="https://kraa.io/">Kraa.io</a> is a minimal-interface text editor and publishing platform where you can instantly make your writing public</p></li><li><p><a href="https://chromewebstore.google.com/detail/note-by-note-%E2%99%AA-pitch-shif/bifddjdeacijlelkenjkfcmlbicgoglc">Note by Note</a> is a browser extension for musicians that transposes, slows down and removes vocals from YouTube videos in real time (<a href="https://github.com/patrickiel/note-by-note">GitHub</a>)</p></li><li><p><a href="https://a.weird.one/">Roomy</a> is an AT Protocol-based Discord alternative for group chats in the Atmosphere</p></li><li><p><a href="https://taxing-wages.gokberk.se/">Taxing Wages</a> is a salary tax calculator for 32 OECD countries built on the OECD&#8217;s taxing wages data</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=1EIIRwU2HUg">Ep. 148</a> - Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=K8J7pwR8cIo">Ep. 149</a> - Changelog, ogygia &#8211; SSR islands and lakes in SvelteKit</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1vr2hxe/tested_sveltekit_on_cloudflare_oooooh_boy/">Tested SvelteKit on Cloudflare. Oooooh boy...</a> is a write-up on porting a full app to SvelteKit + Cloudflare Workers + KV + D1 + Hyperdrive + Better Auth and coming away impressed</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>UI Components and Design Systems</em></p><ul><li><p><a href="https://sv-table.vercel.app/">Svelte DataTables Components</a> is a free collection of 16 data-table components and 11 pre-built table blocks on top of TanStack Table v9, installable via the shadcn-svelte CLI</p></li><li><p><a href="https://sv-animations.vercel.app/fancy">Svelte Fancy Components</a> is a port of Fancy Components with 14 unique text and media effects like Scramble In, Letter Swap and Pixel Trail</p></li><li><p><a href="https://svar.dev/svelte/calendar/">SVAR Svelte Calendar and Kanban</a> add event calendar and Kanban board components to the SVAR Svelte library, both with drag and drop, filtering and iCal import/export</p></li><li><p><a href="https://mukade-ui.com/">MUKADE UI</a> is a terminal-style UI component library</p></li><li><p><a href="https://material-svelte.flenze.com/">Material Svelte</a> is a Material Design 3-inspired UI library</p></li><li><p><a href="https://beautiful-ui-svelte.vercel.app/">Beautiful UI Svelte</a> is a port of a set of React AI-app components</p></li></ul><p><em>Animations and Icons</em></p><ul><li><p><a href="https://morphicons-svelte.vercel.app/">morphicons</a> is an icon library where any stroke icon morphs into any other with a single prop change</p></li><li><p><a href="https://amicro.enisdev.com/">Amicro SV</a> is a port of Amicro, a curated library of micro-interaction and transition components</p></li><li><p><a href="https://loadersz.vercel.app/">loadersz</a> is a framework-agnostic loader library with 70 canvas-based motion states, exposed as a custom element with typed entry points for React, Vue and Svelte</p></li></ul><p><em>Frameworks and Dev Tools</em></p><ul><li><p><a href="https://ogygia.puruvj.dev/">ogygia</a> brings SSR islands to SvelteKit, from Svelte contributor <a href="https://bsky.app/profile/puruvj.dev">Puru VJ</a></p></li><li><p><a href="https://tanstack.com/table/v9">TanStack Table v9</a> shipped stable with its first Svelte-native adapter that connects directly to runes, plus Svelte-specific docs and a shadcn-svelte example</p></li><li><p><a href="https://github.com/devforth/wait0">Wait0</a> is a dynamic cache with SWR warmup and sitemap discovery for SvelteKit that serves pages instantly and revalidates in the background</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: August 2026]]></title><description><![CDATA[The SvelteKit 3 preview lands with new $app modules, zero-config error props and refreshAll]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-august-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-august-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sat, 01 Aug 2026 13:04:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The biggest news this month is the first <code>@next</code> releases of SvelteKit 3. Thirteen preview versions shipped in July: previewing new <code>$app/manifest</code> and <code>$app/service-worker</code> modules, improved API availability and type checking in service workers, tracing out of the experimental namespace, shallow routing baked into <code>goto</code> and a lot more. It&#8217;s a prerelease, but it&#8217;s worth trying out to see what&#8217;s coming to SvelteKit!</p><p>Alongside the preview releases, the stable line kept moving with <code>submitted</code> on remote forms and a new home for <code>defineEnvVars</code>. The language tools also picked up zero-config <code>+error.svelte</code> props so error pages get their <code>page</code> and <code>error</code> types with no extra setup.</p><p>And, in case you missed it, <a href="https://sveltesummit.com/">Svelte Summit Ljubljana 2026</a> is happening November 19-20, with a workshop day on November 18, the day before the summit. Save the date!</p><h2><strong>What&#8217;s new in SvelteKit</strong></h2><ul><li><p>Remote forms now expose a <code>submitted</code> property so you can react to the moment a form is submitted without waiting for the response (<strong>2.69.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14811">#14811</a>)</p></li><li><p><code>defineEnvVars</code> has moved from <code>@sveltejs/kit</code> to <code>@sveltejs/kit/env</code> so environment helpers live in a dedicated subpath (<strong>2.70.0</strong>, <a href="https://svelte.dev/docs/kit/@sveltejs-kit-env#defineEnvVars">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/16378">#16378</a>)</p></li></ul><h2><strong>SvelteKit 3 preview</strong></h2><p>The next major version has landed in <code>@next</code>. Here are the highlights from <code>3.0.0-next.5</code> through <code>3.0.0-next.13</code> that you&#8217;ll actually want to try out:</p><ul><li><p>Shallow routing is now built into <code>goto</code> via a new <code>state</code> option (with <code>persistState: true</code> to keep state across reloads), replacing <code>pushState</code> and <code>replaceState</code> (<strong>3.0.0-next.13</strong>, <a href="https://github.com/sveltejs/kit/pull/16449">#16449</a>)</p></li><li><p><code>goto</code>&#8216;s <code>noScroll</code> and <code>keepFocus</code> options (and their matching <code>data-sveltekit-*</code> attributes) collapse into a single <code>reset</code> option (<strong>3.0.0-next.13</strong>, <a href="https://github.com/sveltejs/kit/pull/16558">#16558</a>)</p></li><li><p><code>error(status, {...})</code> is deprecated in favor of <code>error(status, message, {...})</code> so error messages are always required (<strong>3.0.0-next.13</strong>, <a href="https://github.com/sveltejs/kit/pull/16540">#16540</a>)</p></li><li><p><code>refreshAll</code> replaces <code>invalidateAll</code>, which is now deprecated (<strong>3.0.0-next.8</strong>, <a href="https://github.com/sveltejs/kit/pull/16289">#16289</a>)</p></li><li><p>A new <code>$app/manifest</code> module exposes <code>immutable</code>, <code>assets</code>, <code>prerendered</code> and <code>routes</code> so you can introspect the build output at runtime (<strong>3.0.0-next.12</strong>, <a href="https://github.com/sveltejs/kit/pull/16372">#16372</a>)</p></li><li><p>A new <code>$app/service-worker</code> module replaces the old <code>$service-worker</code>, and <code>$app/paths</code> is now importable inside service workers (<strong>3.0.0-next.12</strong>, <a href="https://github.com/sveltejs/kit/pull/16458">#16458</a>, <a href="https://github.com/sveltejs/kit/pull/16441">#16441</a>)</p></li><li><p>SvelteKit now detects new deployments on data, remote and form action responses, on tab focus and on visibility change, with a default <code>version.pollInterval</code> of one hour (<strong>3.0.0-next.12</strong>, <a href="https://github.com/sveltejs/kit/pull/16496">#16496</a>)</p></li><li><p>Sourcemaps are now supported in production builds (<strong>3.0.0-next.11</strong>, <a href="https://github.com/sveltejs/kit/pull/16412">#16412</a>)</p></li><li><p>Tracing has moved out of the experimental namespace and the <code>instrumentation</code> flag has been removed (<strong>3.0.0-next.7</strong>, <a href="https://github.com/sveltejs/kit/pull/16260">#16260</a>)</p></li><li><p>Form fields pick up a <code>dirty()</code> helper and remote forms get a new <code>field.touched()</code> for better validation UX (<strong>3.0.0-next.6</strong>, <a href="https://github.com/sveltejs/kit/pull/16208">#16208</a>, <a href="https://github.com/sveltejs/kit/pull/14692">#14692</a>)</p></li></ul><p>Full preview details (including expected breaking changes) are in the <a href="https://github.com/sveltejs/kit/blob/version-3/packages/kit/CHANGELOG.md">SvelteKit 3 CHANGELOG</a>.</p><p>For all the features and bugfixes across the stable line and adapters, check out the SvelteKit <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><h2><strong>What&#8217;s new in the Svelte CLI and Language Tools</strong></h2><ul><li><p><code>sv</code> now picks the right package manager more reliably, with detection that respects the lockfile in nested workspaces (<strong>sv@0.16.6</strong>, <a href="https://github.com/sveltejs/cli/pull/1190">#1190</a>)</p></li><li><p>Add-on authors can now call <code>addOption</code> during the setup phase to add options dynamically based on user choices (<strong>sv@0.16.6</strong>, <a href="https://github.com/sveltejs/cli/pull/1042">#1042</a>)</p></li><li><p>The prettier add-on now formats every file it generates, not just the ones it touches (<strong>sv@0.16.6</strong>, <a href="https://github.com/sveltejs/cli/pull/1192">#1192</a>)</p></li><li><p>The <code>better-auth</code> add-on has been bumped to Better Auth 1.6 and now uses the dedicated <code>auth</code> package (<strong>sv@0.16.5</strong>, <a href="https://github.com/sveltejs/cli/pull/1058">#1058</a>)</p></li><li><p><code>sv-utils</code> gains <code>defineEnv().importEnv</code> for importing from the environment module without branching on mode, plus recognition of the <code>nub</code> package manager (<strong>sv-utils@0.3.1/0.3.2</strong>, <a href="https://github.com/sveltejs/cli/pull/1150">#1150</a>, <a href="https://github.com/sveltejs/cli/pull/1187">#1187</a>)</p></li><li><p><code>+error.svelte</code> now gets its <code>page</code> and <code>error</code> props typed automatically, with no extra setup (<strong>svelte-check@4.7.3/svelte2tsx@0.7.58</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3076">#3076</a>)</p></li><li><p><code>svelte-language-server</code> drops its <code>lodash</code> dependency for a smaller install and faster startup (<strong>svelte-language-server@0.18.3</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3038">#3038</a>)</p></li><li><p>The Svelte Inspector adds a context menu with the current component stack, making it easier to jump between parent and child components (<strong>vite-plugin-svelte@7.2.0</strong>, <a href="https://github.com/sveltejs/vite-plugin-svelte/pull/1370">#1370</a>)</p></li><li><p>The <code>@sveltejs/opencode</code> plugin now ships a TUI variant for terminal workflows (<strong>opencode@0.1.10</strong>, <a href="https://github.com/sveltejs/ai-tools/pull/231">#231</a>)</p></li><li><p><code>@sveltejs/opencode</code> also gains an <code>autoupdate</code> option so the plugin can keep itself current (<strong>opencode@0.1.12</strong>, <a href="https://github.com/sveltejs/ai-tools/pull/238">#238</a>)</p></li></ul><p>Want to dive deeper? Check out the <a href="https://github.com/sveltejs/cli/releases">Svelte CLI</a> and <a href="https://github.com/sveltejs/language-tools/releases">language-tools</a> releases. For all the minor changes and bugfixes that came out in the Svelte compiler this month, you can read the full <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">Svelte CHANGELOG</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://recipejar.app/">Recipe Jar</a> is a local-first recipe keeper built as a PWA with runes, IndexedDB and no backend (<a href="https://github.com/sbmagar13/recipe-jar">GitHub</a>)</p></li><li><p><a href="https://doota.dev/">Doota</a> reimagines email as a chat interface, built entirely on Svelte and Cloudflare&#8217;s edge stack (<a href="https://github.com/etherCorps/doota">GitHub</a>)</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1uv3mhx/i_built_an_inventory_extraction_game_with_svelte_5/">Loot Raiders</a> is a browser-based inventory extraction game built with SvelteKit, GSAP and Howler</p></li><li><p><a href="https://motioner.app/">Motioner</a> is a browser-based Figma-style design tool where every frame doubles as an animation timeline</p></li><li><p><a href="https://theprototype.app/">The Prototype</a> is a collaborative 3D scene editor built on Threlte, with peer-to-peer sync over WebRTC and a full runes-based state system</p></li><li><p><a href="https://clocks.dev/">clocks.dev</a> is a community-built gallery where every clock is a Svelte component and anyone can contribute a new design</p></li><li><p><a href="https://flatxel.com/">Flatxel</a> is an r/place-style collaborative pixel canvas</p></li><li><p><a href="https://gabble.gg/">Gabble</a> is a daily word game PWA that mixes Wordle and Boggle mechanics</p></li><li><p><a href="https://github.com/vivalence/Vivalence">Vivalence</a> is an AI-harnessed, self-hostable app platform built in Svelte</p></li><li><p><a href="https://www.nature.com/immersive/d41586-026-01978-8/index.html">Can you terraform Mars?</a> is an interactive Nature featured article</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/live/z3U3yUWrml4?si=BeV9eTgVyl0HghJv">atproto x npmx x svelte meetup</a> happened in Berlin after Local-First Conf - a crossover satellite event with the AT Protocol, npmx, and Svelte communities!</p></li><li><p><a href="https://mainmatter.com/blog/2026/07/28/agentic-engineering-with-svelte/">Agentic Engineering with Svelte</a> by Paolo Ricciuti walks through how Mainmatter is building agent-driven workflows on top of Svelte and SvelteKit</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=1QJ5dFvbgrI">Ep. 145</a> - Changelog, Wuchale</p></li><li><p><a href="https://www.youtube.com/watch?v=EjpIXG9dGtA">Ep. 146</a> - Changelog, Chatto</p></li><li><p><a href="https://www.youtube.com/watch?v=SfZx_D0bI7E">Ep. 147</a> - Changelog</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1uqy6ub/migrated_a_dashboard_application_from_react_to/">Migrated a dashboard application from React to Svelte</a> - an account from an engineer who cut their bundle size roughly in half after moving from TanStack Start + React Query to SvelteKit and remote functions</p></li><li><p><a href="https://blog.baseballyama.com/posts/20260721-rsvelte">I built a Rust toolchain for Svelte</a> by Yamagishi Kazutoshi (one of the main Svelte <code>language-tools</code> maintainers) walks through <code>rsvelte</code>, a Rust reimplementation of the Svelte compiler, formatter, linter, type checker and LSP tested against 12,000+ real components</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1uu9sg6/three_years_ago_i_told_you_svelte_gave_me/">Three years ago I told you Svelte gave me everything</a> by Bishwas Bhandari is a personal retrospective on six years of building with Svelte</p></li><li><p><a href="https://formisch.dev/blog/dynamic-invoice-form-svelte/">Building a Dynamic Invoice Form in Svelte 5 with Formisch</a> uses Formisch, Valibot and <code>FieldArray</code> to build a typed dynamic invoice form</p></li><li><p><a href="https://github.com/erayack/svelte-building-blocks">Svelte Building Blocks</a> is a free, runnable, level-based course that starts with components and runes and works up through APIs, testing and production</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>Frameworks and Tooling</em></p><ul><li><p><a href="https://layerchart.com/">LayerChart 2.0</a> shipped a rewrite with a CSS-framework-agnostic API, new components and chart types from Sean Lynch</p></li><li><p><a href="https://mochi.fast/">Mochi</a>, the experimental SSR framework for Svelte 5 and Bun, has added an <code>&lt;Image&gt;</code> component with resizing, email sending with Svelte components as templates, queues, rate limiting and a built-in captcha (0.8.x). It can also now route compilation through a rust compiler (<code>rsvelte</code>) instead of <code>svelte/compiler</code> (0.9.x)</p></li><li><p><a href="https://baseballyama.github.io/rsvelte/">rsvelte</a> is a Rust implementation of the Svelte toolchain from Yamagishi Kazutoshi</p></li><li><p><a href="https://razshare.github.io/frizzante-docs/">Frizzante v2</a> is a Go + Svelte full-stack framework whose latest release adds SSG snapshots</p></li><li><p><a href="https://www.hoikka.dev/">Hoikka</a> is a full-stack SvelteKit ecommerce project that runs on SQLite and deploys to Node or Cloudflare (<code>pnpx create-hoikka-app</code> to try it)</p></li><li><p><a href="https://svocs.dev/">SVOCS</a> is a markdown-first docs and blog generator built on SvelteKit</p></li><li><p><a href="https://docsmith.geodask.com/">Svelte DocSmith</a> is another docs framework for SvelteKit where markdown files become routes and the sidebar builds itself from frontmatter</p></li><li><p><a href="https://www.sdux-vault.com/docs">SDuX</a> is a deterministic pipeline-based state management library that works with Svelte through <code>@sdux-vault/core</code></p></li><li><p><a href="https://barekey.dev/docs/ser/introduction">svelte-effect-runtime</a> lets you <code>yield*</code> effectful code directly inside <code>&lt;script&gt;</code> and markup</p></li><li><p><a href="https://therealpaulplay.github.io/PlaySocketJS/">PlaySocket</a> is a multiplayer library that handles optimistic updates and CRDT-based synchronization</p></li></ul><p><em>UI Components and Visual Effects</em></p><ul><li><p><a href="https://lily-svelte.pages.dev/">Lily</a> is a Tailwind v4 component library with a single &#8220;quiet by design&#8221; visual language and shadcn-style CLI installs</p></li><li><p><a href="https://cossui-svelte.com/">CossUI-Svelte</a> is an unofficial port of the Coss UI components backfilling components missing from shadcn, Bits UI and Origin UI</p></li><li><p><a href="https://mindmapcn-svelte.mind-elixir.com/">mindmapcn-svelte</a> is a zero-config interactive mind map component styled to fit shadcn-svelte design systems</p></li><li><p><a href="https://svelte-swipe-ashy.vercel.app/">Svelte Swipe To Action</a> is a highly customizable swipe-to-action component</p></li><li><p><a href="https://edra.tsuzat.com/">Edra v3</a> is a rich text editor for SvelteKit that now ships headless and shadcn variants through a CLI and component registry</p></li><li><p><a href="https://cmsbrew.com/demo">CMS Brew</a> lets clients edit their SvelteKit site through a chat interface that produces plain commits on GitHub</p></li><li><p><a href="https://doc.file-viewer.app/guide/ecosystem#svelte">File Viewer for Svelte</a> is a native Svelte component and action for previewing PDF, Office, CAD and archive files in the browser (<a href="https://demo.file-viewer.app/">Demo</a>)</p></li></ul><p><em>Developer Tools and Plugins</em></p><ul><li><p><a href="https://oekazuma.github.io/svelte-vitals/">svelte-vitals</a> is a static code-health checker for SvelteKit that scores SEO, performance, correctness, security and architecture from source, with inline PR annotations and SARIF upload</p></li><li><p><a href="https://github.com/Be1zebub/PerfGraph">PerfGraph</a> turns Lighthouse traces into a focused &#8220;root cause to impact to fix&#8221; report designed to be read by AI agents</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: July 2026]]></title><description><![CDATA[SvelteKit config in vite.config, explicit env vars and new declaration tag support across the toolchain]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-july-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-july-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Wed, 01 Jul 2026 13:01:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month brought a real shift in how SvelteKit projects are configured. You can now define your SvelteKit config directly inside <code>vite.config.js</code> and skip <code>svelte.config.js</code> entirely. We also got the first preview of explicit environment variables, which will eventually replace <code>$env/*</code> modules in SvelteKit 3.</p><p>On top of that, the language tools and the <code>sv</code> CLI both caught up with Svelte&#8217;s new <code>{const ...}</code> declaration tags, so the whole toolchain is now in sync.</p><p>Let&#8217;s dive in!</p><h2><strong>What&#8217;s new in SvelteKit</strong></h2><ul><li><p>You can now pass your SvelteKit config directly to the Vite plugin, so a separate <code>svelte.config.js</code> is no longer required, as a preview of how Kit 3 will require config to live in <code>vite.config.js</code> (<strong>2.62.0</strong>, <a href="https://svelte.dev/docs/kit/configuration">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15944">#15944</a>)</p></li><li><p>Experimental explicit environment variables let you declare and type your env vars in one place, as a preview of how <code>$env/*</code> will work in SvelteKit 3 (<strong>2.63.0</strong>, <a href="https://svelte.dev/docs/kit/environment-variables#Explicit-environment-variables">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15934">#15934</a>)</p></li><li><p>Remote function commands can now receive <code>File</code> objects directly, so you can upload files without manually wrapping them in <code>FormData</code> (<strong>2.64.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#command">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15978">#15978</a>)</p></li><li><p>Remote queries can now refresh other queries, making it easier to invalidate related data after a mutation (<strong>2.65.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query-Refreshing-queries">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/16012">#16012</a>)</p></li><li><p>Prerendered <code>.md</code> and <code>.mdx</code> files are now precompressed alongside HTML, JS and CSS for faster delivery (<strong>2.66.0</strong>, <a href="https://svelte.dev/docs/kit/adapter-static#Options-precompress">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15893">#15893</a>)</p></li><li><p>SvelteKit now warns when boolean fields in remote form schemas are not marked optional, which is a common cause of silent submit failures (<strong>2.66.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Fields">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15804">#15804</a>)</p></li><li><p>The new <code>prerender.handleInvalidUrl</code> option lets you customize how invalid URLs found during crawling are reported (<strong>2.67.0</strong>, <a href="https://svelte.dev/docs/kit/configuration#prerender">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/16088">#16088</a>)</p></li><li><p><code>RemoteFormEnhanceInstance</code> and <code>RemoteFormEnhanceCallback</code> are now exported types, so you can type your custom <code>enhance</code> callbacks directly (<strong>2.68.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-enhance">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15816">#15816</a>)</p></li><li><p>Submitted <code>submit</code> fields now keep their value in the form action payload, which makes multi-button forms easier to handle on the server (<strong>2.68.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Multiple-submit-buttons">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15979">#15979</a>)</p></li></ul><p>For all the features and bugfixes that landed this month, check out the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><h2><strong>What&#8217;s new in the Svelte CLI and Language Tools</strong></h2><ul><li><p>The Svelte CLI demo template now uses the new <code>{const ...}</code> declaration tag, so newly created projects show off the latest Svelte syntax (<strong>sv@0.16.0</strong>, <a href="https://github.com/sveltejs/cli/pull/1110">#1110</a>)</p></li><li><p><code>sv create</code> now scaffolds projects against <code>@sveltejs/kit</code> <code>^2.62.0</code> and moves the Svelte config into the Vite plugin by default (<strong>sv@0.16.0</strong>, <a href="https://github.com/sveltejs/cli/pull/1119">#1119</a>)</p></li><li><p>A new experimental add-on lets you toggle experimental flags and opt into <code>@next</code> versions directly from the CLI (<strong>sv@0.16.0</strong>, <a href="https://github.com/sveltejs/cli/pull/1121">#1121</a>)</p></li><li><p>The <code>drizzle</code> and <code>better-auth</code> add-ons now support SvelteKit&#8217;s new explicit environment variables (<strong>sv@0.16.0</strong>, <a href="https://github.com/sveltejs/cli/pull/1122">#1122</a>)</p></li><li><p>New <code>defineEnv</code> and <code>svelteConfig</code> helpers in <code>@sveltejs/sv-utils</code> make it easier to read and edit a project&#8217;s Svelte config from add-ons (<strong>sv-utils@0.3.0</strong>)</p></li><li><p>The Svelte language server, <code>svelte-check</code> and <code>svelte2tsx</code> now understand Svelte 5&#8217;s <code>{const ...}</code> declaration tags (<strong>svelte-language-server@0.18.1/svelte-check@4.5.0/svelte2tsx@0.7.56</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3033">#3033</a>)</p></li><li><p>CSS completions now work inside nested <code>&lt;style&gt;</code> tags (<strong>svelte-language-server@0.18.1</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3022">#3022</a>)</p></li><li><p>The language tools can now read Svelte config straight from <code>vite.config.js/ts</code>, matching SvelteKit&#8217;s new Vite plugin configuration (<strong>svelte-language-server@0.18.2/svelte-check@4.6.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3031">#3031</a>)</p></li><li><p><code>svelte-check</code> now accepts a <code>--config</code> option to point at a custom config file location (<strong>svelte-check@4.7.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3066">#3066</a>)</p></li><li><p>Experimental <code>tsgo</code> (TypeScript Go) support is now available in <code>svelte-check</code> for faster type checking on large codebases (<strong>svelte-check@4.7.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/3036">#3036</a>)</p></li></ul><p>Want to dive deeper? Check out the <a href="https://github.com/sveltejs/cli/releases">Svelte CLI</a> and <a href="https://github.com/sveltejs/language-tools/releases">language-tools</a> releases. For all the minor changes and bugfixes that came out in the Svelte compiler this month, you can read the full <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">Svelte CHANGELOG</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://colorlab.ferreyrapons.com/">COLOR LAB</a> is a browser-based color science instrument that explores RGB gamuts as 3D solids and builds perceptual theme ramps with WCAG checks</p></li><li><p><a href="https://cometline.github.io/">Cometline</a> is a local desktop AI companion built with SvelteKit, Electron and a Go agent core</p></li><li><p><a href="https://disc.sh/">Disc</a> is a database for users, with a built-in Svelte dashboard</p></li><li><p><a href="https://ezresumes.app/">EZResumes</a> is a fully client-side, local-first resume builder that lets you customize layouts with Typst</p></li><li><p><a href="https://graphgen.dagthom.as/">Graphgen</a> is a node-based generative art tool for 2D line art</p></li><li><p><a href="https://github.com/lunarr-app/lunarr-go">Lunarr</a> is an open source self-hosted media server and Plex alternative</p></li><li><p><a href="https://www.spritefusion.com/pixel-snapper">Pixel Snapper</a> is a desktop tool that snaps near-pixel-art images onto perfect grids, built with SvelteKit, Tauri and Rust by the makers of the previously featured <a href="https://www.spritefusion.com/">Sprite Fusion</a> (<a href="https://github.com/Hugo-Dz/spritefusion-pixel-snapper">GitHub</a>)</p></li><li><p><a href="https://webmatrices.com/supermcp">SuperMCP</a> is a native macOS app that gives Claude, Cursor, Windsurf and other AI tools access to Reddit, X, LinkedIn and more via the local Chrome cookies</p></li><li><p><a href="https://github.com/darkly-art/darkly">darkly</a> is an open source art program built with Rust and Svelte</p></li></ul><p><em>Spotted in the Wild</em></p><ul><li><p><a href="https://www.guildwars3.com/">Guild Wars 3</a> - the official ArenaNet site for the upcoming MMORPG</p></li><li><p><a href="https://obama.org/">Obama Foundation</a> - the new site for the recently opened Obama Presidential Center</p></li><li><p>On a more meta note, <a href="https://sveltekit.fyi/">sveltekit.fyi</a> scans Bluesky for sites built with SvelteKit and showcases them, in the spirit of nuxt.fyi</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/playlist?list=PLdAi-nB9AYut1ixrraX3E96rNNVj3iq4F">Agentic Engineering with Svelte</a> by Paolo Ricciuti is a new YouTube series from Mainmatter that documents building a real production Svelte app with AI agents (8 episodes so far, with an AMA on <a href="https://luma.com/2nqh8mvb">July 15th</a>)</p></li><li><p><a href="https://www.youtube.com/watch?v=j9fh4WC0zHo">My Favorite Framework Just Got Better</a> by Joy of Code walks through realtime data in SvelteKit using remote functions, live queries and generators</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=HCpuzfRdVvI">Ep. 143</a> - Changelog, Mochi</p></li><li><p><a href="https://www.youtube.com/watch?v=uwA1d6neWQE">Ep. 144</a> - Changelog</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://dimonb19a.hashnode.dev/picking-svelte-in-2026">Picking Svelte in 2026: the honest tradeoff nobody tells you</a> by Dmitrii Bormotov</p></li><li><p><a href="https://dev.to/k1dv5/wuchale-one-year-of-compile-time-i18n-178a">Wuchale: One Year of Compile-Time i18n</a> by Kidus Adugna</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>Frameworks and Tooling</em></p><ul><li><p><a href="https://mochi.fast/">Mochi</a> is a performance-focused alternative to SvelteKit from Stanislav Khromov that uses islands architecture and programmatic routing on Bun</p></li><li><p><a href="https://github.com/lucaletizia/pottz">pottz</a> bundles your SvelteKit app, the Bun runtime and a webview into a single executable so you can ship it as a native desktop app</p></li><li><p><a href="https://rasterzero-dev.github.io/svelte-tv-docs/">Svelte TV</a> renders Svelte components to WebGL instead of the DOM for use on smart TVs and low-memory webviews</p></li><li><p><a href="https://github.com/JLAcostaEC/tabspot">TabSpot</a> is a declarative keyboard navigation engine for hierarchical and grid interfaces</p></li></ul><p><em>UI Components and Visual Effects</em></p><ul><li><p><a href="https://neobrutalism-svelte.flenze.com/">neobrutalism-svelte</a> is a UI library inspired by neobrutalism, balsamiq and lo-fi aesthetics</p></li><li><p><a href="https://bootstrap-svelte.vercel.app/">@winkintel/bootstrap-svelte</a> brings Bootstrap 5&#8217;s grid, utilities and components to Svelte 5 with full TypeScript support</p></li><li><p><a href="https://ra9.github.io/tan-compose">Tan Compose</a> is a lightweight library for building declarative reusable web components</p></li><li><p><a href="https://harshmandan.github.io/svaul/">Svaul</a> is a zero-dependency drawer component for Svelte 5, modernizing vaul-svelte</p></li><li><p><a href="https://svelte-animated-icon.vercel.app/">Svelte Animated Icon</a> ships close to 10,000 animated icon variants across five icon libraries using the Web Animations API (<a href="https://github.com/fractalmandala/svelte-animated-icon">GitHub</a>)</p></li><li><p><a href="https://faintshadow.gitlab.io/flarecharts">FlareCharts</a> is a runes-native charting library for Svelte 5 with built-in CSS theming and accessibility</p></li><li><p><a href="https://svelte-video-editor.ariefsn.dev/">Svelte Video Editor</a> is a host-agnostic timeline-based video editor component for Svelte 5 with multi-track clips, scrubbing and ripple edits</p></li></ul><p><em>Developer Tools and Plugins</em></p><ul><li><p><a href="https://tsv.fuz.dev/">tsv</a> is a Rust-based formatter and parser for TypeScript, Svelte and CSS, with a linter on the roadmap</p></li><li><p><a href="https://svelte-docinfo.fuz.dev/">svelte-docinfo</a> extracts JSON documentation from TypeScript and Svelte modules using the TypeScript compiler</p></li><li><p><a href="https://github.com/fractalmandala/IDE-Theme-Editor">VS Code Live Theme Editor</a> is a VSIX extension for editing every token and color in any VS Code, Cursor or TRAE theme</p></li><li><p><a href="https://github.com/The-LukeZ/sveltekit-cloudflare-do">sveltekit-cloudflare-do</a> automatically exports Durable Objects to the Cloudflare Worker bundle generated by <code>@sveltejs/adapter-cloudflare</code></p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: June 2026]]></title><description><![CDATA[Better forms, new long-lived remote query APIs and TypeScript 6 support in language-tools]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-june-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-june-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Mon, 01 Jun 2026 13:03:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month we got a bunch of improvements in SvelteKit&#8217;s forms and remote functions. Plus, a new query function (<code>.live(...)</code>) that makes accessing real-time data from the server easier.</p><p>Keep an eye out for a few breaking changes in remote functions, if you&#8217;re using those. Otherwise, enjoy all the new SvelteKit features and bug fixes in the latest versions of Svelte.</p><p>Let&#8217;s dive in!</p><h2><strong>What&#8217;s new in SvelteKit</strong></h2><ul><li><p>Form <code>submit</code> now returns a boolean to indicate submission validity for enhanced remote forms (<strong>2.57.0</strong>, <a href="https://svelte.dev/docs/kit/$app-forms#enhance">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15530">#15530</a>)</p></li><li><p>Breaking: <code>requested(...)</code> now requires <code>limit</code> and yields <code>{ arg, query }</code> entries instead of returning the validated argument directly (<strong>2.58.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#Single-flight-mutations-Client-requested-refreshes">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15739">#15739</a>)</p></li><li><p><code>requested(...)</code> now supports <code>query.batch(...)</code>, which makes batch remote query workflows easier to inspect in request-time logic (<strong>2.59.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query.batch">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15751">#15751</a>)</p></li><li><p><code>submit</code> and <code>hidden</code> remote form fields can now accept booleans and numbers directly (<strong>2.60.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Fields">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15802">#15802</a>)</p></li><li><p>SvelteKit now warns when remote form validation issues are never read, helping catch missed UX paths earlier (<strong>2.60.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15653">#15653</a>)</p></li><li><p>Breaking: <code>.run()</code> was removed from remote queries - use <code>await query()</code> directly in all contexts instead (<strong>2.61.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15779">#15779</a>)</p></li><li><p>Remote queries can now be awaited in event handlers, async callbacks and module scope, with cache deduping shared across reactive and non-reactive consumers (<strong>2.61.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query-Query-arguments">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15779">#15779</a>)</p></li><li><p><code>query.live(...)</code> makes working with long-lived remote query subscriptions easier and are now async-iterable (experimental <strong>2.59.0</strong>, async in <strong>2.61.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query.live">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15878">#15878</a>)</p></li><li><p>Breaking: Enhance callbacks now receive a copy of the form remote function instance, rather than a <code>{ form, data, submit }</code> object. Plus, remote form instances now expose a programmatic <code>submit()</code> API and can be passed into <code>enhance</code> callbacks (<strong>2.61.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-enhance">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15657">#15657</a>)</p></li></ul><p>For all the features and bugfixes that landed this month, check out the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><h2><strong>What&#8217;s new in Svelte and the Svelte ecosystem</strong></h2><ul><li><p>Templates now allow declarations directly in markup, making it easier to define values close to where they&#8217;re used (<strong>svelte@5.56.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/18282">#18282</a>)</p></li><li><p>Svelte language-tools now support TypeScript 6.0 across the language server, svelte2tsx and svelte-check packages (<strong>svelte-language-server@0.18.0/svelte2tsx@0.7.55/svelte-check@4.4.8/svelte-preprocess@6.0.4</strong>, <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/">Docs</a>, <a href="https://github.com/sveltejs/language-tools/pull/2985">#2985</a> / <a href="https://github.com/sveltejs/svelte-preprocess/pull/675">#675</a>)</p></li><li><p>Svelte MCP&#8217;s <code>stdio</code> mode can now read file content directly, reducing round trips in local tool workflows (<strong>mcp@0.1.23</strong>, <a href="https://svelte.dev/docs/ai/svelte-mcp">Docs</a>, <a href="https://github.com/sveltejs/ai-tools/pull/198">#198</a>)</p></li><li><p>vite-plugin-svelte now enables the optimizer for server environments during development (<strong>vite-plugin-svelte@7.1.0</strong>, <a href="https://github.com/sveltejs/vite-plugin-svelte/pull/1328">#1328</a>)</p></li></ul><p>Want to dive deep into everything new this month? Check out the <a href="https://github.com/sveltejs/language-tools/releases">language-tools</a>, <a href="https://github.com/sveltejs/ai-tools/releases">ai-tools</a> and <a href="https://github.com/sveltejs/vite-plugin-svelte/releases">vite-plugin-svelte</a> releases.</p><p>For all the minor changes and bugfixes that came out in the Svelte compiler this month, you can read the full <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">Svelte CHANGELOG</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://asciidia.com/">asciidia.com</a> is an ASCII-style browser game experiment built with Svelte</p></li><li><p><a href="https://bingewatcher.org/">Bingewatcher.org</a> is a daily movie guessing game based on data from Wikipedia and word vectors for 157 languages</p></li><li><p><a href="https://delcard.fun/">Delcard</a> is an open source peer-to-peer card game platform built with SvelteKit (<a href="https://github.com/LucaDeltort/delcard_games">GitHub</a>)</p></li><li><p><a href="https://dialyma.com/tutorials">Dialyma</a> is an open source canvas builder that can export production-ready code (<a href="https://github.com/dialymaai/dialyma">GitHub</a>)</p></li><li><p><a href="https://www.exort.dev/">Exort</a> is a local workspace for writing microcontroller code, compiling and uploading projects, and monitoring live serial output on supported boards (<a href="https://github.com/Razz19/Exort/">GitHub</a>)</p></li><li><p><a href="https://store.steampowered.com/app/4154670/Heavy_Duty_Inc/">Heavy Duty Inc</a> is a turn-based tactics game built with Svelte (<a href="https://www.reddit.com/r/sveltejs/comments/1tq7cnr/built_a_turnbased_tactics_game_with_svelte_demo/">Reddit</a>)</p></li><li><p><a href="https://www.hope-art.app/en">hope-art.app</a> applies protection filters to artwork images before sharing them online to prevent unauthorized AI training and style mimicry (<a href="https://github.com/HopeArtOrg/hope-re">GitHub</a>)</p></li><li><p><a href="https://image-palette-studio.vercel.app/">Image Palette Studio</a> turns images into UI themes with generated CSS variables (<a href="https://github.com/aozoragh/image-palette-studio">GitHub</a>)</p></li><li><p><a href="https://getpad.dev/">Pad</a> is a local-first collaboration tool that combines a Go CLI with an embedded Svelte web app for human-agent workflows (<a href="https://github.com/PerpetualSoftware/pad">GitHub</a>)</p></li><li><p><a href="https://serverwat.ch/">Serverwat.ch</a> is a SvelteKit dashboard for monitoring Hetzner-hosted projects</p></li><li><p><a href="https://trezur.quirkdom.com/">Trezur</a> is a privacy-preserving browser-side 2FA authenticator with PWA support and cloud sync (<a href="https://github.com/quirkdom/trezur">GitHub</a>)</p></li><li><p><a href="https://splitwave.app/">Splitwave</a> is a free node-based audio router for macOS built with Tauri + Svelte (<a href="https://github.com/Horuse/Splitwave">GitHub</a>)</p></li><li><p><a href="https://tanks.tiyal.com/">Tank Supremo</a> is a multiplayer 3D tank game built with Svelte</p></li><li><p><a href="https://vivix.dev/">Vivix</a> is a JavaScript execution visualizer that uses a worker-based interpreter for smooth timeline scrubbing (<a href="https://github.com/HenryOnilude/vivix">GitHub</a>)</p></li><li><p><a href="https://zenos.com/">Zenos</a> is a stealth startup from SvelteKit maintainer <a href="https://www.benmccann.com/">Ben McCann</a> that is bringing software productivity to the physical world.</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=AVX9lqFHOnM">Ep. 140</a> - Changelog, Imperative interfaces</p></li><li><p><a href="https://www.youtube.com/watch?v=mq-52XBwUbM">Ep. 141</a> - Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=P87sNdxZa6Q">Ep. 142</a> - Changelog</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://zackwebster.com/blog/why-svelte-is-better-than-react-in-the-ai-era">Why Svelte Is Better Than React in the Agentic Era</a> by Zack Webster</p></li><li><p><a href="https://orshot.com/blog/automate-linkedin-carousels-sveltekit">Automate LinkedIn Carousels with SvelteKit Remote Functions</a> by Rishi Raj Jain</p></li><li><p><a href="https://www.linkedin.com/pulse/tank-supremo-from-teenage-dream-multiplayer-game-eyal-azulay-jylde/">Tank Supremo: From a Teenage Dream to a Multiplayer Game</a> by Eyal Azulay</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>UI Components and Visual Effects</em></p><ul><li><p><a href="https://hueycolor.pages.dev/">Huey</a> provides a composable color picker for Svelte 5 (<a href="https://github.com/hueycolor/huey">GitHub</a>)</p></li><li><p><a href="https://sv-matrix.vercel.app/">Svelte Dot Matrix Loaders</a> provides 50+ animated dot-matrix loaders for Svelte projects (<a href="https://github.com/SikandarJODD/sv-matrix">GitHub</a>)</p></li><li><p><a href="https://shaders.devmischief.com/">Paper Shaders for Svelte</a> provides paper-style shader effects in an open source Svelte package (<a href="https://github.com/manuelogomigo/paper-shaders-svelte">GitHub</a>)</p></li><li><p><a href="https://www.embedpdf.com/svelte-pdf-viewer">EmbedPDF for Svelte</a> provides a headless PDF viewer for Svelte apps built on PDFium instead of PDF.js (<a href="https://github.com/embedpdf/embed-pdf-viewer">GitHub</a>)</p></li><li><p><a href="https://svar.dev/demos/calendar/">Svelte Event Calendar</a> is a Google-like event calendar component for Svelte with drag-and-drop editing and multiple calendar support (<a href="https://github.com/svar-widgets/calendar">GitHub</a>)</p></li></ul><p><em>App Building and Product Tooling</em></p><ul><li><p><a href="https://etesie.dev/docs/auth/overview/introduction">Convex Better Auth UI for SvelteKit</a> provides self-hosted auth and organization UI components powered by Convex + Better Auth (<a href="https://github.com/mmailaender/Convex-Better-Auth-UI">GitHub</a>)</p></li><li><p><a href="https://getaphex.com/">Aphex CMS</a> is an open source Sanity-inspired CMS that runs inside a single SvelteKit app (<a href="https://github.com/IcelandicIcecream/aphex">GitHub</a>)</p></li><li><p><a href="https://github.com/BluePointDigital/svelte-visual-builder">svelte-visual-builder</a> is an Elementor-style visual builder for SvelteKit projects</p></li><li><p><a href="https://github.com/BCsabaEngine/svelteesp32">SvelteESP32 v3.0</a> lets you wire Svelte frontends to ESP32 workflows with an updated Vite plugin flow</p></li></ul><p><em>Developer Tools and Utilities</em></p><ul><li><p><a href="https://plugins.jetbrains.com/plugin/31546-svelte-hero">Svelte Hero</a> is a new JetBrains plugin focused on better Svelte support</p></li><li><p><a href="https://jscpd.dev/">jscpd v4.2.0</a> now supports Svelte projects for duplicate code detection (<a href="https://github.com/kucherenko/jscpd/blob/master/CHANGELOG.md#420--2026-05-14">Changelog</a>)</p></li><li><p><a href="https://svelte-use.ariefsn.dev/">Svelte Use</a> provides a collection of composable utilities for Svelte apps (<a href="https://github.com/ariefsn/svelte-use">GitHub</a>)</p></li></ul><p><em>Plugins and Runtime Integrations</em></p><ul><li><p><a href="https://github.com/awaiden/vite-plugin-svelte-tailwind-auto-reference">vite-plugin-svelte-tailwind-auto-reference</a> automatically injects Tailwind CSS <code>@reference</code> in Svelte style blocks when <code>@apply</code> is used</p></li><li><p><a href="https://github.com/ariefsn/sveltekit-proxy">SvelteKit Proxy</a> provides a simple way to proxy requests in production using SvelteKit&#8217;s <code>hooks.server.ts</code></p></li><li><p><a href="https://github.com/sowahq/svelte-ws">svelte-ws</a> adds WebSocket support across SvelteKit runtimes with an adapter and Vite plugin</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: May 2026]]></title><description><![CDATA[Svelte CLI Community Add-ons, TypeScript 6.0 support in SvelteKit]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-may-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-may-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Fri, 01 May 2026 13:03:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month we got a ton of improvements to SvelteKit&#8217;s remote functions, TypeScript 6.0 support and the experimental release of community plugins in the Svelte CLI.</p><p>Svelte was also <a href="https://www.thoughtworks.com/radar/languages-and-frameworks/summary/svelte">featured in ThoughtWorks Technology Radar</a>!</p><p>Big month, bigger showcase... so let&#8217;s dive in!</p><h2><strong>What&#8217;s new in SvelteKit</strong></h2><ul><li><p>SvelteKit now supports TypeScript 6.0 (<strong>2.56.0</strong>, <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15595">#15595</a>)</p></li><li><p><code>form</code> fields can now specify a default value using <code>field.as(type, value)</code>, reducing boilerplate for pre-populated forms (<strong>2.56.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Fields">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15577">#15577</a>)</p></li><li><p>Remote function transport now uses <code>hydratable</code>, enabling richer data types in query results (<strong>2.56.0</strong>, <a href="https://github.com/sveltejs/kit/pull/15533">#15533</a>)</p></li><li><p>Form <code>submit</code> now returns a <code>boolean</code> to indicate submission validity for enhanced form remote functions (<strong>2.57.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-enhance">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15530">#15530</a>)</p></li><li><p><strong>Remote Function Breaking Changes (2.56.0)</strong></p><ul><li><p>Client-requested query refreshes must obtain permission from the server (<a href="https://github.com/sveltejs/kit/pull/15562">#15562</a>)</p></li><li><p>Stabilize remote function caching by sorting object keys (<a href="https://github.com/sveltejs/kit/pull/15570">#15570</a>)</p></li><li><p>Add <code>run()</code> method to queries, disallow awaiting queries outside render (<a href="https://github.com/sveltejs/kit/pull/15533">#15533</a>)</p></li><li><p>Isolate command-triggered query refresh failures per-query (<a href="https://github.com/sveltejs/kit/pull/15562">#15562</a>)</p></li><li><p><code>requested</code> now requires <code>limit</code> and yields <code>{ arg, query }</code> entries rather than validated args (<a href="https://github.com/sveltejs/kit/pull/15739">#15739</a>)</p></li></ul></li></ul><p>Looking for more details on the many bug fixes and performance optimizations from this month? Check out the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><h2><strong>What&#8217;s new in Svelte and Svelte Dev Tools</strong></h2><ul><li><p>Community add-ons are now available in <code>sv</code> as an experimental feature (<strong>sv@0.1.0</strong>, <a href="https://svelte.dev/docs/cli/community">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/1020">#1020</a>)</p></li><li><p>The <code>sv</code> and <code>sv-utils</code> packages are now separate in the CLI package - leading to a more explicit public API and a deprecation pass for old features (<strong>sv@0.2.0</strong>, <a href="https://svelte.dev/docs/cli/sv">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/1046">#1046</a>)</p></li><li><p><code>sv</code> will now more reliably detect if Vitest v3 is installed when configuring projects (<strong>sv@0.15.2</strong>, <a href="https://github.com/sveltejs/cli/pull/1073">#1073</a>)</p></li><li><p>Types for <code>TweenOptions</code>, <code>SpringOptions</code>, <code>SpringUpdateOptions</code> and <code>Updater</code> are now available as exports from <code>svelte/motion</code> (<strong>svelte@5.55.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-motion">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17967">#17967</a>)</p></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://www.4track.cc/">4Track</a> is a faithful recreation of a 4-track tape recorder in the browser</p></li><li><p><a href="https://kumamap.com/">Kumamap</a> is a bear incident map that collates official reports, news and community reports in Japan</p></li><li><p><a href="https://overshoot.dev/">Overshoot</a> is an interactive exploration of Disney&#8217;s 12 Principles of Animation</p></li><li><p><a href="https://github.com/ManuelR-T/dockscope">DockScope</a> is a visual Docker dashboard with a 3D dependency graph, live metrics, logs, terminal and container actions</p></li><li><p><a href="https://dnsoptic.com/">dnsoptic</a> is a DNS health audit tool that checks nameservers, mail authentication, DNSSEC, security posture and migration diffs</p></li><li><p><a href="https://swapjs.dev/">swap.</a> is a collection of little games built around sorting algorithms</p></li><li><p><a href="https://github.com/asbedb/Scapedle">Scapedle</a> is a Wordle game with Old School RuneScape (OSRS) words</p></li><li><p><a href="https://ra9.github.io/ephemeral-forms/">Ephemeral Forms</a> is a modern, zero-login, offline-first form builder with AI-powered generation, real-time collaboration and cross-device sync</p></li><li><p><a href="https://www.youtube.com/watch?v=ZVy0vXBHaCM">CORDIAL</a> is an AI Native IDE optimized for a big screen experience. &#8220;Good for people who want to feel like Tom Cruise in Minority Report&#8221;</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=2r25fPn95M8">Paolo Ricciuti - Svelte, TMCP</a> by devtools-fm</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=KepF0I5iLb0">Ep. 137</a> - Changelog, Community <code>sv</code> add-ons</p></li><li><p><a href="https://www.youtube.com/watch?v=YwKsLJ5p-uQ">Ep. 138</a> - Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=6muvGbGOG7E">Ep. 139</a> - Changelog, Imperative interfaces</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://www.jaydip.me/blog/hello-svelte">hello svelte: migrating and redesigning my oss project</a> by Jaydip Sanghani</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>UI Components and Animations</em></p><ul><li><p><a href="https://blossom.dayflow.studio/">Blossom Color Picker</a> is a flower-style color picker</p></li><li><p><a href="https://sveltednd.thisux.com/">thisux/sveltednd</a> (last featured in December 2024) has been updated to support Svelte 5</p></li><li><p><a href="https://aejkatappaja.github.io/phantom-ui/demo/">phantom-ui</a> is a structure-aware skeleton loader built with web components</p></li><li><p><a href="https://sv-animations.vercel.app/spell">Svelte Spell UI</a> is a port of the original Spell UI that you can copy-paste into any project</p></li><li><p><a href="https://svileo.elyasasmad.com/">Svileo</a> is a physics-based toast component inspired by Sileo</p></li><li><p><a href="https://motion-core.dev/">Motion Core</a> (last featured in February) has been rewritten from Three.js to OGL with a much-reduced file size</p></li></ul><p><em>State Management</em></p><ul><li><p><a href="https://stately.self.agency/">Stately</a> is a Pinia-inspired state management library that provides a structured way to define shared state, mutate it directly and observe changes</p></li></ul><p><em>Utilities and Integrations</em></p><ul><li><p><a href="https://github.com/sveltia/sveltia-i18n">Sveltia I18n</a> is an internationalization library powered by runes and the messageformat library for formatting messages using Unicode MessageFormat 2 (MF2)</p></li><li><p><a href="https://github.com/aionbuilders/nabu">Nabu</a> is a modular, local-first Svelte block editor engine built on a Single ContentEditable architecture</p></li><li><p><a href="https://sv-agentation.com/">Svelte Agentation</a> turns UI annotations into structured context that AI coding agents can understand and act on</p></li></ul><p><em>Developer Tools</em></p><ul><li><p><a href="https://atom-forge.eu/">Atom Forge</a> is a full-stack TypeScript toolkit with Svelte 5 UI components, type-safe RPC and a battle-tested architecture pattern that scales</p></li><li><p><a href="https://github.com/harshmandan/svelte-check-native">svelte-check-native</a> is a Rust/tsgo drop-in replacement for <code>svelte-check</code> with the same flags, output formats and exit codes</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: April 2026]]></title><description><![CDATA[MCP in OpenCode, functions in config and error boundaries on the server]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-april-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-april-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Wed, 01 Apr 2026 13:03:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month, a new <a href="https://svelte.dev/docs/svelte/best-practices">best practices guide</a> was added to the Svelte docs. Check it out, if you haven&#8217;t already!</p><p>On the code side, the Svelte MCP got even easier to use with improvements to the official OpenCode package. Combined with the improvements to <code>svelte.config.js</code>, server-side error boundaries in SvelteKit and better types all around, this month is full of great improvements!</p><p>As always, there&#8217;s plenty in the showcase too!</p><h2><strong>What&#8217;s new in Svelte and SvelteKit</strong></h2><ul><li><p>MCP: Svelte&#8217;s OpenCode config can now be found in sv&#8217;s <code>.opencode/</code> folder - including the generated <code>svelte.json</code> plugin config (<strong>sv@0.12.6</strong>, <a href="https://svelte.dev/docs/ai/opencode-plugin">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/977">#977</a>)</p></li><li><p><code>svelte.config.js</code> now contains functions for setting certain options (<code>css</code>, <code>runes</code>, <code>customElement</code>) so that there&#8217;s a single source of truth for everything that needs to interact with Svelte config (<strong>svelte@5.54.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-compiler#CompileOptions">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17951">#17951</a>)</p></li><li><p><code>svelte/motion</code> now exports <code>TweenOptions</code>, <code>SpringOptions</code>, <code>SpringUpdateOptions</code> and <code>Updater</code> - these types cover the public method signatures of <code>spring</code> and <code>tweened</code> (<strong>svelte@5.55.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-motion">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17967">#17967</a>)</p></li><li><p>Error boundaries are now allowed to catch errors on the server (<strong>kit@2.54.0</strong>, <a href="https://svelte.dev/docs/kit/errors#Rendering-errors">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15308">#15308</a>)</p></li><li><p>Page and layout params with matchers are now type narrowed in <code>$app/types</code> - leading to better type safety when working with params in <code>$app/types</code>, <code>$app/state</code>, and hooks (<strong>kit@2.55.0</strong>, <a href="https://svelte.dev/docs/kit/$app-types">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15502">#15502</a>)</p></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a>. Looking for more details on the many bug fixes and performance optimizations from this month? Check out the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://ghostty.zerebos.com/">Ghostty Config</a> is a beautiful intuitive configuration generator for Ghostty terminal</p></li><li><p><a href="https://orbit.nexonauts.com/">Orbit PDF</a> is a professional, high-performance PDF toolkit that runs entirely in your browser</p></li><li><p><a href="https://estimate.quest/">Estimate Quest</a> is a game-inspired planning poker experience that helps Scrum Masters and Product Managers run structured, actually engaging estimation sessions</p></li><li><p><a href="https://deltaray.vercel.app/">Deltaray</a> is a free and <a href="https://github.com/stormyzio/deltaray">open source</a> web app to simulate how light refracts and reflects on surfaces, using real physics and optical calculations</p></li><li><p><a href="https://nabu.aion.builders/">Nabu</a> is a modular, local-first and <a href="https://github.com/aionbuilders/nabu">open source</a> block editor engine</p></li><li><p><a href="https://getbizi.dev/">bizi</a> is a better way to manage dependent concurrent tasks</p></li><li><p><a href="https://vyay.theonlyanil.workers.dev/">Vyay</a> is a minimalist google sheet powered expense racker</p></li><li><p><a href="https://elyos.hu/en">ElyOS</a> is a full-featured desktop experience powered by web technologies</p></li><li><p><a href="https://plought.app/">Plought</a> is a collection of decision making applications that use different methods to evaluate alternatives against each other</p></li><li><p><a href="https://github.com/metafab/otel-gui">otel-gui</a> is a lightweight, zero-config OpenTelemetry trace viewer for local development</p></li><li><p><a href="https://scelar.com/blog/introducing-nodepod">Nodepod</a> is a free, <a href="https://github.com/ScelarOrg/Nodepod">open source</a> alternative to WebContainers</p></li><li><p><a href="https://github.com/patrickiel/VariantCAD">VariantCAD</a> is a hybrid CAD system for variant generation</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.svelteradio.com/episodes/npmx-shows-what-npmjs-wont">npmx shows what npmjs won&#8217;t</a> by Svelte Radio</p></li><li><p><a href="https://community.vercel.com/live/34169-community-session-svelte-on-vercel">Svelte on Vercel</a> - Community Session with Rich Harris, Elliot Johnson, Simon Holthausen and Maya Avenda&#241;o</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=ew78adBjnQw">Ep. 132</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=8OKXegmRtxk">Ep. 133</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=hHV7MHpt2Co">Ep. 134</a> &#8212; Changelog, convex-sveltekit</p></li><li><p><a href="https://www.youtube.com/watch?v=C9yxUniluVU">Ep. 135</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=2yJA_3fJ7Wk">Ep. 136</a> &#8212; Changelog</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://svelte-realtime.dev/">svelte-realtime</a> is a realtime RPC and reactive subscriptions for SvelteKit, built on svelte-adapter-uws</p></li><li><p><a href="https://ittysockets.com/">itty-sockets</a> is an ultra-tiny WebSocket client that pairs (optionally) with a public relay server</p></li><li><p><a href="https://www.motion-gpu.dev/">Motion GPU</a> is an easy way for writing WGSL shaders in Svelte</p></li><li><p><a href="https://ptero.yaoke.pro/">ptero</a> is a Docusaurus for Svelte</p></li><li><p><a href="https://svelte-audio-ui.vercel.app/">Svelte Audio UI</a> is a set of accessible, composable audio UI components</p></li><li><p><a href="https://sv-agentation.com/">Svelte Agentation</a> is a dev-mode Svelte inspector for source-aware element inspection and browser annotations</p></li><li><p><a href="https://codeberg.org/Bricklou/cross-router">cross-router</a> is a framework-agnostic router that wires the core&#8217;s navigation state into that framework&#8217;s reactivity model</p></li><li><p><a href="https://github.com/JLAcostaEC/svgtosvelte">SVG to Svelte</a> quickly converts SVG strings directly in Svelte components</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: March 2026]]></title><description><![CDATA[createContext in programmatic Svelte, comments in HTML tags and the State of JS]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-march-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-march-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sun, 01 Mar 2026 14:03:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month, we got a ton of new features across Svelte, SvelteKit and even the Svelte CLI. Plus, the <a href="https://2025.stateofjs.com/en-US">State of JS 2025</a> is out and Svelte continues to hold the top spot among reactive frameworks in terms of positive sentiment.</p><p>So, without further ado, let&#8217;s dive in!</p><h2>What&#8217;s new in Svelte</h2><ul><li><p><code>createContext</code> can now be used when instantiating components programmatically (<strong>svelte@5.50.0</strong>, <a href="https://svelte.dev/docs/svelte/context#Type-safe-context">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17575">#17575</a>)</p></li><li><p><code>{@html}</code> expressions now support <code>TrustedHTML</code> (<strong>svelte@5.52.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/17701">#17701</a>)</p></li><li><p>Comments are now allowed in HTML tags (<strong>svelte@5.53.0/svelte-language-server@0.17.28</strong>, <a href="https://github.com/sveltejs/svelte/pull/17671">#17671</a>)</p></li><li><p>Error boundaries now work on the server (<strong>svelte@5.53.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-boundary#Using-transformError">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17672">#17672</a>)</p></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a></p><h2>What&#8217;s new in SvelteKit</h2><ul><li><p><code>hydratable</code>&#8216;s injected script now works with CSP (<strong>kit@2.51.0</strong>, <a href="https://github.com/sveltejs/kit/pull/15048">#15048</a>)</p></li><li><p>Navigation callbacks (beforeNavigate, onNavigate, and afterNavigate) now include scroll position information via the scroll property on from and to targets. This enables use cases like animating transitions based on the target scroll position when using browser back/forward navigation (<strong>kit@2.51.0</strong>, <a href="https://svelte.dev/docs/kit/@sveltejs-kit#NavigationTarget">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15248">#15248</a>)</p></li><li><p>Vite 8 is now supported (<strong>kit@2.53.0</strong>, <a href="https://github.com/sveltejs/kit/pull/15024">#15024</a>)</p></li><li><p>The <code>match</code> function can map a path back to a route id and params (<strong>kit@2.52.0</strong>, <a href="https://svelte.dev/docs/kit/$app-paths#match">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14997">#14997</a>)</p></li><li><p>Breaking (Netlify Adapter): <code>platform.context</code> now uses modern Netlify Functions - previously this was the AWS Lambda-style context. If you were using this in your app (unlikely), you will need to update your code to read from new fields. (<strong>adapter-netlify@6.0.0</strong>, <a href="https://docs.netlify.com/build/functions/api/#netlify-specific-context-object">More details</a>, <a href="https://developers.netlify.com/guides/migrating-to-the-modern-netlify-functions/">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15203">#15203</a>)</p></li><li><p>redirects can now be configured in <code>netlify.toml</code> - removing the limitation of only being able to configure redirects via the <code>_redirects</code> file (<strong>adapter-netlify@6.0.0</strong>, <a href="https://github.com/sveltejs/kit/pull/15203">#15203</a>)</p></li><li><p><code>better-auth</code> is now an official addon in the Svelte CLI (<strong>sv@0.12.0</strong>, <a href="https://github.com/sveltejs/cli/pull/898">#898</a>)</p></li></ul><p>Looking for more details on the many bug fixes and performance optimizations from this month? Check out the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><div><hr></div><h2>Community Showcase</h2><h3>Apps &amp; Sites built with Svelte</h3><ul><li><p><a href="https://keshav.is-a.dev/Cherit/">Cherit</a> is a lightning-fast, open-source markdown knowledge base built with Tauri</p></li><li><p><a href="https://arenarium.dev/">arenarium/maps</a> is a clearer way to display complex map markers in MapLibre, Mapbox or Google Maps</p></li><li><p><a href="https://synth.town/">Synth Town</a> is a generative music city builder using Threlte + Tone.js</p></li><li><p><a href="https://dindles.net/beatjie/">Beatjie</a> is a little audio groovebox that lets you make beats and share them with a URL (<a href="https://github.com/dindles/beatjie/">GitHub</a>)</p></li><li><p><a href="https://worldwide-hackathon.mistral.ai/">Mistral AI&#8217;s Worldwide Hackathon</a> site was built with Svelte (<a href="https://www.reddit.com/r/sveltejs/comments/1r25ezg/just_launched_our_first_svelte_project_at_mistral/">Reddit</a>)</p></li><li><p><a href="https://fretwise.ai/">Fretwise</a> is an AI-Powered guitar practice platform that generates tabs and isolated stems</p></li><li><p><a href="https://apps.apple.com/us/app/tailsync/id6758315448">Tailsync</a> is a reverb calculator for music production for iOS</p></li><li><p><a href="https://github.com/ajkdrag/otterly">Otterly</a> is a local-first, privacy-focused WYSIWYG Markdown vault with full-text search, wiki-links, and a rich editor</p></li><li><p><a href="https://github.com/CICCADA-CORP/SoundTime">SoundTime</a> is a self-hosted music streaming platform with peer-to-peer sharing using Rust &amp; Svelte</p></li><li><p><a href="https://ats-screener.vercel.app/">ATS Screener</a> lets you see how popular applicant tracking systems parse, filter, and score your resume</p></li><li><p><a href="https://heavydutyinc.itch.io/heavy-duty-inc">Heavy Duty Inc.</a> is a turn-based tactics game built with Threlte where you solve jobs for the different space station factions, navigate their strained political environment, die, and do it all over again</p></li><li><p><a href="https://quest-mate.com/">Quest Mate</a> is a universal GM space for all your campaigns, lore, sheets, notes and summaries</p></li><li><p><a href="https://github.com/danesto/cold0">cold0</a> is a self-hosted cold email sender that lets you manage contact lists, create email templates with dynamic variables, and send personalized bulk emails</p></li><li><p><a href="https://helixnotes.com/">HelixNotes</a> is a local markdown note-taking app where notes are stored as standard Markdown files on your local filesystem</p></li><li><p><a href="https://codeinput.com/">Codeinput</a> lets you handle merge conflicts without leaving your browser, merge faster with an intelligent queue, automate repository tasks, view live engineering metrics, and manage advanced CODEOWNERS</p></li></ul><h3>Learning Resources</h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://mainmatter.com/blog/2026/02/24/why-choose-svelte/">Why I choose Svelte</a> and <a href="https://mainmatter.com/blog/2025/05/22/native-apps-with-svelte/">Truly Native Apps with Svelte?</a> by Paolo Ricciuti</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=LmCd6nbID_Y">Ep. 129</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=Q0-AglM1J7A">Ep. 130</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=8DkAiCbY9mE">Ep. 131</a> &#8212; Changelog</p></li></ul><h3>Libraries, Tools &amp; Components</h3><ul><li><p><a href="https://github.com/laravel/svelte-starter-kit">Laravel + Svelte Starter Kit</a> is an official kit from Laravel that provides a robust, modern starting point for building Laravel applications with a Svelte frontend using Inertia.</p></li><li><p><a href="https://shimmer-from-structure-docs.vercel.app/">Shimmer From Structure</a> is a structure-aware skeleton loader that mirrors your rendered UI at runtime</p></li><li><p><a href="https://www.hoikka.dev/">Hoikka</a> is an opinionated, full-stack e-commerce platform built with SvelteKit</p></li><li><p><a href="https://github.com/upstat-io/warpkit">warpkit</a> is a standalone Svelte 5 SPA framework providing state-based routing, data fetching, forms, and real-time capabilities.</p></li><li><p><a href="https://svelte.heroicons-animated.com/">heroicons-animated</a> is an open-source collection of smooth animated 316 icons for your projects</p></li><li><p><a href="https://svelte-crumbs.vercel.app/">svelte-crumbs</a> provides automatic, SSR-ready breadcrumbs for SvelteKit via route-level metadata exports</p></li><li><p><a href="https://jacksonkasi.gitbook.io/tablecraft">TableCraft Engine</a> simplifies database interactions by allowing you to define table configurations and automatically generate powerful APIs with filtering, sorting, pagination, and more</p></li><li><p><a href="https://github.com/RussBaz/svelte-synk">svelte-synk</a> provides tab data synchronisation with leader election</p></li><li><p><a href="https://x0k.dev/svelte-tiler/">svelte-tiler</a> is a small, unstyled library for building tiling user interfaces</p></li><li><p><a href="https://svelte-dnd.vercel.app/">@horuse/svelte-dnd</a> is a drag-and-drop library for Svelte 5 with animated drop previews, auto-scroll, pointer &amp; touch support , and multi-container support.</p></li><li><p><a href="https://github.com/HeiCg/svelte-grab">svelte-grab</a> is a dev tool suite that captures component context for LLM coding agents. Alt+Click any element to get exact file locations, inspect state, analyze styles, audit accessibility, trace errors, and profile renders</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: February 2026]]></title><description><![CDATA[Custom select elements, new button props for remote functions and improvements across the Node and Vercel adapters]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-february-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-february-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sun, 01 Feb 2026 14:02:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This month brings a few new features to Svelte and SvelteKit and quite a few new libraries from around the community.</p><p>Also, in case you missed it last month, the Svelte maintainers released patches for 5 vulnerabilities across the Svelte ecosystem. So be sure you&#8217;re up to date by reading the blog post, <a href="https://svelte.dev/blog/cves-affecting-the-svelte-ecosystem">CVEs affecting the Svelte ecosystem</a>.</p><p>Now, without further ado, let&#8217;s dive in...</p><h2>What&#8217;s new in Svelte &amp; SvelteKit</h2><ul><li><p>To support newer browsers that allow it, you can now customize <code>&lt;select&gt;</code> elements using CSS and rich HTML content (<strong>svelte@5.47.0</strong>, <a href="https://developer.chrome.com/blog/a-customizable-select">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17429">#17429</a>)</p></li><li><p>Svelte&#8217;s CSS parser is now exported from <code>svelte/compiler</code> as <code>parseCss</code>. It&#8217;s a partial but lightweight CSS AST parser that is currently being used in SvelteKit (<strong>svelte@5.48.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/17496">#17496</a>)</p></li><li><p>A <code>ShadowRootInit</code> object can now be passed to <code>attachShadow()</code> when shadow root is created with a <code>customElement</code> (<strong>svelte@5.49.0</strong>, <a href="https://svelte.dev/docs/svelte/custom-elements#Component-options">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17088">#17088</a>)</p></li><li><p>A breaking change in SvelteKit&#8217;s remote functions removes <code>buttonProps</code> from experimental remote form functions. Use <code>&lt;button {...myForm.fields.action.as('submit', 'register')}&gt;Register&lt;/button&gt;</code> when creating mutliple submit buttons instead (<strong>kit@2.50.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Multiple-submit-buttons">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15144">#15144</a>)</p></li><li><p>Node: The server&#8217;s <code>keepAliveTimeout</code> and <code>headersTimeout</code> options can now be configured by setting the corresponding environment variable (<strong>sveltejs/adapter-node@5.5.0</strong>, <a href="https://svelte.dev/docs/kit/adapter-node#Environment-variables-KEEP_ALIVE_TIMEOUT-and-HEADERS_TIMEOUT">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/15125">#15125</a>)</p></li><li><p>Vercel: Remote function calls can now be found under the /_app/remote route in observability (<strong>sveltejs/adapter-vercel@6.3.1</strong>, <a href="https://github.com/sveltejs/kit/pull/15098">#15098</a>)</p></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a> and the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><div><hr></div><h2>Community Showcase</h2><h3>Apps &amp; Sites built with Svelte</h3><ul><li><p><a href="https://getframe.vercel.app/">Frame</a> is a high-performance media conversion utility built on the Tauri v2 framework. It provides a native interface for FFmpeg operations, allowing for granular control over video and audio transcoding parameters</p></li><li><p><a href="https://logtide.dev/">LogTide</a> is an open-source alternative to Datadog, Splunk, and ELK. Designed for developers and European SMBs who need GDPR compliance, data ownership, and simplicity without the complexity of managing an ElasticSearch cluster</p></li><li><p><a href="https://www.funcalling.com/">funcalling</a> is a P2P calling app with built in board games, word games, and motion capture games (<a href="https://www.reddit.com/r/sveltejs/comments/1qgrq2c/i_built_a_p2p_calling_app_with_built_in_board/">Reddit post</a> includes a video demo)</p></li><li><p><a href="https://bookbybook.app/">book by book</a> lets you sync book data, covers, and pricing to a Square POS in seconds. You can import distributor orders from Ingram, Edelweiss &amp; PubEasy&#8212;no spreadsheets or manual entry</p></li><li><p><a href="https://zsweep.com/">zsweep</a> is a minimalist, keyboard-driven Minesweeper game played with Vim motions</p></li><li><p><a href="https://trypulsekit.com/">PulseKit</a> provides professional feedback management to collect and prioritize customer feedback</p></li><li><p><a href="https://bitphase.app/">Bitphase</a> is a modern web-based chiptune tracker designed for creating music on retro sound chips</p></li><li><p><a href="https://capcheck.ai/">CapCheck</a> is a fact checker AI for images, videos, audio, text and URLs</p></li><li><p><a href="https://www.distillintelligence.com/competitor-finder">Distill</a> (last mentioned in July) has been updated with a new competitor finder to make it easier to track direct and indirect competitors in a market</p></li><li><p><a href="https://pelican.alexey.work/">Pelican</a> lets you generate SVG vector graphics and ASCII art from text prompts. With multi-step refinement, AI sees its output and improves it iteratively</p></li></ul><h3>Learning Resources</h3><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=eTchw_QU3aQ">Ep. 127</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=58Ol4FbMjz4">Ep. 128</a> &#8212; Changelog</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://gautier.dev/articles/sveltekit-sea">Bundling a SvelteKit app into a single binary</a> by Gautier Ben A&#239;m</p></li></ul><h3>Libraries, Tools &amp; Components</h3><p><em>UI Components and Animations</em></p><ul><li><p><a href="https://github.com/MariusLang/mapcn-svelte">mapcn-svelte</a> is a Svelte port of mapcn built on MapLibre GL, styled with Tailwind, works seamlessly with shadcn-svelte</p></li><li><p><a href="https://github.com/AgnosticUI/agnosticui">AgnosticUI Local (v2)</a> is a CLI-based UI component library that copies Lit web components directly into your project</p></li><li><p><a href="https://github.com/motion-core/motion-core">Motion Core</a> is a collection of animated Svelte components powered by GSAP and Three.js</p></li><li><p><a href="https://github.com/Savy011/tilt-svelte">Tilt Svelte</a> is a smooth 3D tilt Svelte attachment based on vanilla-tilt.js</p></li></ul><p><em>State Management</em></p><ul><li><p><a href="https://github.com/eihabkhan/reddojs">Reddo.js</a> is a tiny undo/redo utility package for JavaScript, React, Vue, and Svelte</p></li><li><p><a href="https://github.com/BCsabaEngine/svstate">svstate</a> provides deep reactive proxy with validation, snapshot/undo, and side effects &#8212; built for complex, real-world applications</p></li><li><p><a href="https://github.com/antepodeum/rune-sync">rune-sync</a> synchronizes reactive state across various storage backends</p></li></ul><p><em>Plugins, Compilers and Runtimes</em></p><ul><li><p><a href="https://github.com/matths/fastify-svelte-view">fastify-svelte-view</a> is a Fastify plugin for rendering Svelte components with support for SSR (Server-Side Rendering), CSR (Client-Side Rendering), and SSR with hydration</p></li><li><p><a href="https://github.com/beesolve/kit-on-lambda">kit-on-lambda</a> is an adapter for running SvelteKit on AWS Lambda. It supports deployment to Node.js and Bun runtimes bundled with esbuild/Bun</p></li><li><p><a href="https://github.com/treyorr/voca">voca</a> is a self-hostable, stateless, and fast WebRTC signaling server written in Rust with frontend SDKs</p></li><li><p><a href="https://github.com/patel-vansh/svelte-safe-html-core">@svelte-safe-html/core</a> statically analyzes <code>.svelte</code> files and detects unsafe <code>{@html}</code> insertions</p></li><li><p><a href="https://www.npmjs.com/package/sveltekit-discriminated-fields">sveltekit-discriminated-fields</a> provides type-safe discriminated union support for SvelteKit remote function form fields</p></li><li><p><a href="https://github.com/astralhpi/svelte-fast-check">svelte-fast-check</a> is a type and Svelte compiler warning checker for Svelte/SvelteKit projects that claims to be up to 24x faster than the built-in svelte-check</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: January 2026]]></title><description><![CDATA[Hydration with CSPs, automatic Cloudflare adapter setup, and AI works better now with Svelte!]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-january-2026</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-january-2026</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Thu, 01 Jan 2026 14:03:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EL6n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bf609e7-2d4c-4ffa-ad9e-607020e05902_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>During the December holiday season, the Svelte team shared 24 days of Svelte knowledge, tips, and insights to unwrap in 2025&#8217;s <a href="https://advent.sveltesociety.dev/2025">Advent of Svelte</a>. Learn more about under-utilized Svelte features through a series of fun and interactive videos!</p><p>There were also a bunch of improvements and showcase items across the Svelte ecosystem this last month. So let&#8217;s have a look...</p><h2><strong>What&#8217;s new in Svelte &amp; SvelteKit</strong></h2><ul><li><p>The <code>hydratable</code> option (which adds an inline <code>&lt;script&gt;</code> block to the <code>head</code>) now has a <code>csp</code> option in <code>render</code> to support Content Security Policies (<strong>svelte@5.46.0</strong>, <a href="https://svelte.dev/docs/svelte/hydratable#CSP">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17338">#17338</a>)</p></li><li><p>The Vercel adapter now supports Node 24 (<strong>adapter-vercel@6.2.0/adapter-auto@7.0.0</strong>, <a href="https://github.com/sveltejs/kit/pull/14982">#14982</a> and <a href="https://github.com/sveltejs/kit/pull/14737">#14737</a>)</p></li><li><p>The Svelte CLI is now able to fully setup a SvelteKit project for Cloudflare Workers/Pages development (<strong>sv@0.11.0</strong>, <a href="https://svelte.dev/docs/cli/sveltekit-adapter#Options-cloudflare-target">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/851">#851</a>)</p></li><li><p>The Svelte MCP now exposes tools as both a JS API and CLI (<strong>mcp@0.1.16</strong>, <a href="https://github.com/sveltejs/mcp/pull/128">#128</a>)</p></li><li><p>A huge amount of <a href="https://github.com/sveltejs/language-tools/releases">performance improvements</a> were completed this month in the language-tools so make sure your extensions are up to date!</p></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a> and the SvelteKit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://gcalwrapped.com/">GCal Wrapped</a> lets students see how they spent their time this semester, wrapped up beautifully</p></li><li><p><a href="https://text-studio.metasapiens.com/">Text Processing Studio</a> is a comprehensive text processing web application that lets you process, compare, transform, and analyze text</p></li><li><p><a href="https://flumio.io/">Flumio</a> is a drag-and-drop workflow automation tool</p></li><li><p><a href="https://statue.dev/">Statue</a> is a markdown-based static site generator designed for performance, flexibility, and developer experience</p></li><li><p><a href="https://sm.fana.my.id/">sveltemark</a> is a privacy-first, open-source, local-only markdown editor</p></li><li><p><a href="https://lovely-docs.github.io/">Lovely Docs</a> provides hierarchically optimized documentation for AI coding agents</p></li><li><p><a href="https://kahit-saan.labais.life/">Ikaw bahala</a> is a Manila-based food platform made for couples and friends who want to search for specific foods locally</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=vkXxFfGwPao">2025 Complete Svelte Kit Course</a> by Syntax (Scott Tolinski)</p></li><li><p><a href="https://www.youtube.com/watch?v=nXIMQr12nqw">This AI model writes Svelte 5 code PERFECTLY</a> by Code with Stanislav</p></li><li><p><a href="https://www.youtube.com/watch?v=bLqFT2kTK6w">Building Hydratable with Elliott Johnson</a> by Svelte Society (Kev)</p></li><li><p><a href="https://www.youtube.com/watch?v=8ByXE6dPkD4">SvelteKit and Effect with Dillon Mulroy</a> by Svelte Society (Kev)</p></li></ul><p><em>Svienna</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=Q6FbSxRexNg">Async Svelte</a> by Domenik Reitzner</p></li><li><p><a href="https://www.youtube.com/watch?v=V6urwDivl64">Svelte LLMs</a> by Jacob Palecek</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=xc8BFOhZ11w">Ep. 123</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=aP9orAaqu8w">Ep. 124</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=TkfcChYAWwI">Ep. 125</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=rZIhgN7jgKg">Ep. 126</a> &#8212; Changelog</p></li></ul><p><em>Svelte Radio</em></p><ul><li><p><a href="https://www.svelteradio.com/episodes/one-man-svelte-for-ngos-with-ilja">One Man Svelte for NGOs with Ilja</a> (December 6)</p></li><li><p><a href="https://www.svelteradio.com/episodes/custom-renderers-for-svelte-with-paolo-ricciuti">Custom Renderers for Svelte with Paolo Ricciuti</a> (December 11)</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://dev.to/sillvva/sveltekit-custom-remote-form-factory-nmo">Sveltekit Custom Remote Form Factory</a> by Matt DeKok</p></li><li><p><a href="https://jovianmoon.io/posts/svelte-inspector-with-neovim">Getting Svelte Inspector Working with Neovim</a> by Stephen Gunn</p></li><li><p><a href="https://dev.to/jdgamble555/sveltekit-remote-functions-workaround-helpers-4k8c">SvelteKit Remote Functions Workaround Helpers</a> by Jonathan Gamble</p></li><li><p><a href="https://github.com/saabi/llm-agent-project-setup">LLM Agent-Friendly Project Setup</a> by Sebastian Ferreyra</p></li><li><p><a href="https://dev.to/theether0/announcing-sveltekit-og-v4-an-alternative-to-vercelog-for-sveltekit-3cg1">Announcing SvelteKit OG v4: An alternative to @vercel/og for sveltekit</a> by Shivam Meena</p></li><li><p><a href="https://dev.to/maxcore/svelte-best-practice-to-combine-derived-and-state-3f18">Svelte: Best practice to combine $derived and $state</a> by Max Core</p></li><li><p><a href="https://brandonma.dev/blog/pocketbase-svelte-embed/">Embedding a SvelteKit site in PocketBase</a> by Brandon Ma</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://marketplace.visualstudio.com/items?itemName=burke-development.sveltedoc">SvelteDoc</a> is a VS Code extension that shows Svelte component props on hover</p></li><li><p><a href="https://github.com/tianchangNorth/pocket-mocker">pocket-mocker</a> is an in-page HTTP controller for frontend development to intercept, modify, and simulate API responses directly in the browser</p></li><li><p><a href="https://github.com/avatune/avatune">Avatune</a> is a production-ready avatar system with AI-powered generation and framework-native components</p></li><li><p><a href="https://github.com/saabi/svelte-image-input">svelte-image-input</a> is a component for loading, scaling and adjusting profile pictures</p></li><li><p><a href="https://github.com/mosaiq-software/mint">Mint</a> is a digital compositing tool that can be used to crop and resize images, create collages, build mockups, or otherwise complete basic compositing tasks</p></li><li><p><a href="https://github.com/SaaSTEMLY/sveltekit-auto-openapi">SvelteKit Auto OpenAPI</a> is a type-safe OpenAPI generation and runtime validation for SvelteKit</p></li><li><p><a href="https://github.com/AbhiVarde/svelte-drawer">Svelte Drawer</a> is a drawer component for Svelte 5, inspired by Vaul</p></li><li><p><a href="https://github.com/ObelusFi/trioxide">trioxide</a> is a set of customizable components, focused on non-trivial UI pieces that are tedious to reimplement</p></li><li><p><a href="https://github.com/xl0/svelte-asciiart">svelte-asciiart</a> is a Svelte 5 component for rendering ASCII art as scalable SVG with optional grid overlay and frame</p></li><li><p><a href="https://github.com/YusufCeng1z/svelte-bash">svelte-bash</a> is a fully typed, lightweight, and customizable terminal emulator component with a virtual file system, custom commands, themes, and autoplay mode for demos</p></li><li><p><a href="https://github.com/miunau/sveltty">SvelTTY</a> provides a runtime that allows you to render and interact with Svelte apps in the terminal</p></li><li><p><a href="https://github.com/itisyb/svelte-tablecn">svelte-tablecn</a> is a powerful data grid and port of tablecn.com</p></li><li><p><a href="https://github.com/MrGentle/svelte-runtime-components">Svelte runtime components</a> enables compiling Svelte components from text at runtime, allowing dynamic, user-provided svelte component code to be compiled and mounted in the browser</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: December 2025]]></title><description><![CDATA[A new Svelte Society website and file upload streaming in forms]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-december-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-december-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Mon, 01 Dec 2025 14:03:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Just in time for the end of the year, there&#8217;s a new <a href="https://sveltesociety.dev/">Svelte Society Website</a>! It brings a whole new experience. Instead of just being a site with static resources, it now serves a dynamic feed of all the latest Svelte content out there. Videos, libraries, events, etc.</p><p>Instead of opening PRs to add libraries and packages you can now just submit them <a href="https://sveltesociety.dev/submit">on the website</a>. If you find an interesting package, head on over and submit it. Logged in users also have the ability to like and save content. So be sure to try it out and <a href="https://www.reddit.com/r/sveltejs/comments/1ox9znh/announcing_the_new_svelte_society_website/">share your feedback</a>!</p><p>There&#8217;s a bunch of updates to SvelteKit and a showcase to cover, so lets dive in...</p><h2><strong>What&#8217;s new in Svelte &amp; SvelteKit</strong></h2><ul><li><p><code>hydratable</code> API is a low-level API to coordinate hydration between the server and client (<strong>svelte@5.44.0</strong>, <a href="https://svelte.dev/docs/svelte/hydratable">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17154">#17154</a>)</p></li><li><p><code>print</code> converts a Svelte AST node back into Svelte source code. It is primarily intended for tools that parse and transform components using the compiler&#8217;s modern AST representation (<strong>svelte@5.45.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-compiler#print">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/16188">#16188</a>)</p></li><li><p>File uploads can now be streamed inside <code>form</code> remote functions allowing form data to be accessed before large files finish uploading (<strong>kit@2.49.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14775">#14775</a>)</p></li><li><p>(Minor) Breaking Changes in <strong>kit@2.48.8</strong>:</p><ul><li><p><code>invalid</code> now must be imported from @sveltejs/kit (<a href="https://github.com/sveltejs/kit/pull/14768">#14768</a>)</p></li><li><p>The <code>submitter</code> option was removed from the experimental form <code>validate()</code> method. It will now always use the default submitter (<a href="https://github.com/sveltejs/kit/pull/14762">#14762</a>)</p></li></ul></li><li><p><strong>Svelte CLI:</strong></p><ul><li><p>Links are now wrapped with <code>resolve()</code> to follow best practices (<strong>sv@0.9.14</strong>, <a href="https://svelte.dev/docs/kit/$app-paths#resolve">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/754">#754</a>)</p></li><li><p><code>npx sv create</code> now supports a new argument <code>--add</code> to add add-ons to the project in the same command (<strong>sv@0.10.0</strong>, <a href="https://github.com/sveltejs/cli/pull/695">#695</a>)</p></li><li><p>The new <code>--no-dir-check</code> option in sv create will, even if the folder is not empty, suppress all directory check prompts (<strong>sv@0.9.15</strong>, <a href="https://github.com/sveltejs/cli/pull/785">#785</a>)</p></li></ul></li></ul><p>For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a> and the Svelte Kit / Adapter <a href="https://github.com/sveltejs/kit/tree/main/packages">CHANGELOGs</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://apps.apple.com/">Apple&#8217;s new web-based App Store</a> is built with Svelte! This adds onto the other Apple products spotted using Svelte in the wild - including Apple Music and Apple Podcasts</p></li><li><p><a href="https://getaphex.com/">Aphex</a> is a modern, open source headless CMS built with SvelteKit</p></li><li><p><a href="https://www.sharenhac.com/">ShareNhac</a> lets you and your friends watch videos and listen to music together in sync, without any ad interruptions</p></li><li><p><a href="https://starterindex.com/">starterindex</a> is a curated list of top boilerplates to help you start your next project (which is great because we stopped putting &#8220;starter&#8221; repos in the Svelte newsletter over a year ago)</p></li><li><p><a href="https://pg.firoz.co/playground">PGPlayground</a> helps any backend engineer quickly prototype and validate fixes or changes to their schema without leaving the browser</p></li><li><p><a href="https://tools-for-web.netlify.app/">Design Tokens App</a> is a web-based editor and converter to manage design tokens, visualize them in a tree structure, and export them as CSS variables or JSON format</p></li><li><p><a href="https://multi.dev/">Multi</a> is a coding agent for VS Code</p></li><li><p><a href="https://gardenjs.org/">Gardenjs</a> provides a centralized platform for developers to create, test, and present UI components and pages in isolation</p></li><li><p><a href="https://bookemoji.dev/">bookemoji</a> is a tool to showcase, collaborate, and develop the technical aspects of user interfaces - an alternative to StoryBook.js or Histoire in your favorite tech stack</p></li></ul><h3><strong>Learning Resources</strong></h3><ul><li><p><a href="https://www.youtube.com/watch?v=N4WQVmJbpFI">Rich Harris - Remote Control</a> at ViteConf 2025</p></li><li><p><a href="https://www.youtube.com/watch?v=U7ifCxAuuZE">SvelteKit has solved data loading!</a> from Syntax</p></li><li><p><a href="https://www.youtube.com/watch?v=Ji4Y5vo-gOg">Paolo Ricciuti - Progressively enhanced apps with Svelte</a> at FrontKon#25</p></li><li><p><a href="https://www.youtube.com/watch?v=3u-PXSbU5iA">Adding Storybook to Svelte Society with Jeppe Reinhold</a> from Svelte Society (Kev)</p></li><li><p><a href="https://www.youtube.com/watch?v=yRtyjOOAECY">How to Navigate Like a Pro in SvelteKit</a> by Thiago Temple</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://github.com/Konixy/better-svelte-email">better-svelte-email</a> lets you render emails in Svelte with first-class Tailwind support</p></li><li><p><a href="https://www.npmjs.com/package/svelte-number-format">svelte-number-format</a> is a lightweight and reactive number input component that is now available as a stable v1.0 release</p></li><li><p><a href="https://github.com/michaelcuneo/chain-enhance">chain-enhance</a> lets you sequentially chain multiple SvelteKit form actions with deep-merged data propagation, type-safe results, reactive progress tracking, and automatic file-safety</p></li><li><p><a href="https://www.npmjs.com/package/@hardingjam/svelte-socket">svelte-socket</a> is a WebSocket wrapper for Svelte 5 using runes</p></li><li><p><a href="https://pages.edgeone.ai/document/framework-sveltekit">@edgeone/sveltekit</a> lets you deploy your SvelteKit app to Tencent Cloud EdgeOne Pages to provide lightning-fast speeds in China while maintaining excellent performance worldwide</p></li><li><p><a href="https://github.com/davialabs/davia">Davia</a> is an open-source tool designed for AI coding agents to generate interactive internal documentation for your codebase</p></li><li><p><a href="https://github.com/ChulkovDanila/svelte-ui-kit">svelte-ui-kit</a> provides an easy to use, customizable button component with smooth hover animations - inspired by shadcn/ui style</p></li><li><p><a href="https://github.com/SikandarJODD/ai-elements">Svelte AI Elements</a> is a component registry built on top of shadcn-svelte that provides production-ready components designed for building AI-powered applications</p></li><li><p><a href="https://github.com/Michael-Obele/sveltekit-api-gen">sveltekit-api-gen</a> automatically generates OpenAPI 3.0 specifications from your SvelteKit server endpoints using JSDoc <code>@Swagger</code> annotations</p></li><li><p><a href="https://runescroller.lelab.dev/">Rune Scroller</a> provides &#8220;enchanting&#8221; scroll animations for Svelte 5, built with native performance and zero dependencies</p></li><li><p><a href="https://github.com/KiraPC/vite-plugin-sveltekit-decorators/">vite-plugin-sveltekit-decorators</a>, a plugin that automatically decorates SvelteKit functions, now supports remote functions</p></li><li><p><a href="https://github.com/AnakKucingTerbang/svelte-breakpoint-badge">svelte-breakpoint-badge</a> is a lightweight Svelte component that displays the current Tailwind CSS breakpoint during development</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: November 2025]]></title><description><![CDATA[Svelte MCP, typed contexts and improved form validation in remote functions]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-november-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-november-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sat, 01 Nov 2025 13:00:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The official Svelte MCP server (for all your agentic needs) is now available with its own <a href="https://svelte.dev/docs/mcp/overview">section of the docs site</a> and <a href="https://github.com/sveltejs/mcp">GitHub repo</a>. If you haven&#8217;t gotten a chance to try it out with the AI of your choice, definitely take it for a spin. It should replace the copy/pasting of the Svelte docs that&#8217;s often required to get LLMs to write valid Svelte 5 code and can provide suggestions on the generated code with static analysis.</p><p>But it&#8217;s not just AIs that have been writing code; our maintainers have too! Let&#8217;s take a look at what they&#8217;ve been up to in Svelte/Kit before diving into our community showcase...</p><h2><strong>What&#8217;s new in Svelte</strong></h2><ul><li><p><code>createContext</code> passes types with a stored context - replacing the need to type every <code>getContext</code> return value (<strong>5.40.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte#createContext">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/16948">#16948</a>)</p></li><li><p>The <code>$state.eager(value)</code> rune will update the UI immediately instead of waiting for the correspnding <code>await</code> to resolve (<strong>5.41.0</strong>, <a href="https://svelte.dev/docs/svelte/$state#$state.eager">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/16849">#16849</a>)</p></li><li><p>The <code>fork</code> API lets you change some state &#8216;offscreen&#8217; in such a way that you can discover any async work resulting from the state change without committing it to the screen. (<strong>5.42.0</strong>, <a href="https://svelte.dev/docs/svelte/await-expressions#Forking">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/17004">#17004</a>)</p></li></ul><p>For a full list of changes - including the dozens of valuable bugfixes that went into the releases this month - check out the Svelte compiler&#8217;s <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">CHANGELOG</a>.</p><h2><strong>What&#8217;s new in SvelteKit</strong></h2><ul><li><p><code>event.route</code> and <code>event.url</code> are now available in remote functions making it easier to know which page a remote function was called from (<strong>2.44.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14606">#14606</a>)</p></li><li><p><code>form.for(id)</code> will now implicitly set an id on the form object (<strong>2.45.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Multiple-instances-of-a-form">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14623">#14623</a>)</p></li><li><p>Form validation can now be done imperatively in cases where it can&#8217;t be done via a schema (<strong>2.46.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form-Programmatic-validation">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14624">#14624</a>)</p></li><li><p>The new signal request property provides the <code>AbortSignal</code> associated with the request (<strong>2.47.0</strong>, <a href="https://developer.mozilla.org/en-US/docs/Web/API/Request/signal">MDN Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14715">#14715</a>)</p></li><li><p>Kit will now use the <code>fork</code> API when it&#8217;s available. See the Svelte updates above for more info (<strong>2.48.0</strong>, <a href="https://github.com/sveltejs/kit/pull/14793">#14793</a>)</p></li></ul><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://www.abc.net.au/news/deeptime/">Deep Time</a> is an interactive article from ABC Australia that tells the story of the Aboriginal and Torres Strait Islander peoples</p></li><li><p><a href="https://demo.ririkku.com/">Ririkku</a> (&#12522;&#12522;&#12483;&#12463;) is a karaoke-style music player with an intelligent Japanese text analyzer built-in</p></li><li><p><a href="https://github.com/rudi-q/glucose_media_player">Glucose</a> is an ultra-lightweight, video player for Windows with AI powered subtitle generation</p></li><li><p><a href="https://restring.dev/">Restring</a> is a fast, smart toolbox for dev tasks like formatting JSON, decoding JWTs, and converting strings</p></li><li><p><a href="https://github.com/hcengineering/platform">Huly</a> is an all-in-one project management platform (alternative to Linear, Jira, Slack, Notion, Motion)</p></li><li><p><a href="https://nokiafied.pages.dev/">Nokiafied</a> converts your videos into super low-quality Nokia phone style videos for memes</p></li><li><p><a href="https://contracko.com/">Contracko</a> is an AI contract management platform for small businesses</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=Ldnmirx0QtI">Full Stack SvelteKit CRUD App Using Remote Functions Tutorial</a>, <a href="https://www.youtube.com/watch?v=M5oAYP6Rxkg">How Svelte Reactivity Works</a> and <a href="https://www.youtube.com/watch?v=Qglbt8M8H_w">Stop Looking For Code And Use The Svelte Inspector</a> by Joy of Code</p></li><li><p><a href="https://www.youtube.com/watch?v=IpJh0VEzMRo">I Was Wrong About Svelte...</a> by Ben Davis</p></li><li><p><a href="https://www.svelteradio.com/episodes/storybook-is-actually-good-now-with-jeppe-reinhold">Storybook is actually good now, with Jeppe Reinhold</a> and <a href="https://www.svelteradio.com/episodes/macrodata-refinement-with-ken-kunz">Macrodata Refinement with Ken Kunz</a> by Svelte Radio</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=f6zLcQxMsU4">Ep. 119</a> &#8212; svelte.dev/packages</p></li><li><p><a href="https://www.youtube.com/watch?v=P8jdPBKwq54">Ep. 120</a> &#8212; Storybook for Svelte Part 3: Testing</p></li><li><p><a href="https://www.youtube.com/watch?v=V-j4w6j8OB4">Ep. 121</a> &#8212; Svelte MCP Server</p></li><li><p><a href="https://www.youtube.com/watch?v=o4kcABS-XH4">Ep. 122</a> &#8212; svedit.dev</p></li></ul><p><em>Svelte London - October 2025</em></p><p>You can <a href="https://www.youtube.com/watch?v=fsWp3bvLA4cQ">watch the full video on YouTube</a> or skip to the specific talks below:</p><ul><li><p><a href="https://www.youtube.com/live/fsWp3bvLA4c?si=x0OR5XQVjIo64xjS&amp;t=712">Precision vs Prediction: The Trouble with LLMs and Libraries</a> by Maria Gorinova (Tessl AI Research)</p></li><li><p><a href="https://www.youtube.com/live/fsWp3bvLA4c?si=i_Sgf-kpwV7UVSex&amp;t=3985">Building a game level editor with SvelteKit</a> by Elliot Bentley</p></li></ul><p><em>To Read / Watch</em></p><ul><li><p><a href="https://github.com/wiesson/svelte-async-remote-fn">SvelteKit Remote Functions - Interactive Showcase</a> by Arne Wiese</p></li><li><p><a href="https://www.youtube.com/watch?v=zIvGs0FOMvA">BetterAuth and Google Login on Cloudflare Workers with SvelteKit</a> by Jilles Soeters</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://github.com/IcelandicIcecream/aphex">aphex</a> is a modern, extensible headless CMS featuring a portable core package, database/storage agnostic adapters, and a Sanity-inspired admin interface</p></li><li><p><a href="https://github.com/kevwpl/svelte-o-phone">svelte-o-phone</a> is a flexible, headless phone number input component powered by <code>libphonenumber-js</code></p></li><li><p><a href="https://github.com/hanielu/motion-svelte">motion-svelte</a> is an attempt to bring a Motion (formerly known as Framer Motion) to Svelte</p></li><li><p><a href="https://github.com/LuggaPugga/better-captcha/">better-captcha</a> provides framework-agnostic wrappers for a bunch of captcha providers</p></li><li><p><a href="https://www.npmjs.com/package/svelte-runtime-template">svelte-runtime-template</a> is a lightweight Svelte component for handling tempolates at runtime with curly brace subsitutions in text content</p></li><li><p><a href="https://retroui-svelte.netlify.app/">RetroUI</a> is a copy/pastable component library built for Svelte with <code>shadcn-svelte</code></p></li><li><p><a href="https://github.com/skeletonlabs/skeleton/discussions/3920">Skeleton</a> - the Svelte-native component library - just released its v5 version with a ton of quality of life improvements</p></li><li><p><a href="https://tanstack.com/query/latest/docs/framework/svelte/migrate-from-v5-to-v6">Tanstack Query Svelte v6</a> is now based on the runes syntax</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: October 2025]]></title><description><![CDATA[Improved Remote Functions, sv create from playgrounds and experimental async SSR]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-october-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-october-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Wed, 01 Oct 2025 13:02:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>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&#8217;s still experimental. It&#8217;s included when the <code>config.experimental.async</code> setting is enabled.</p><p>We&#8217;ve got a hefty showcase this month too, so let&#8217;s dive in!</p><h2><strong>What&#8217;s new in Svelte, SvelteKit and Svelte CLI (sv)</strong></h2><ul><li><p>The <code>event</code> property is now included on popstate, link and form navigation (<strong>kit@2.40.0</strong>, <a href="https://github.com/sveltejs/kit/pull/14307">#14307</a>)</p></li><li><p>The <code>%sveltekit.version%</code> placeholder can now be used in <code>app.html</code> to easily include the current SvelteKit version in the output (<strong>kit@2.41.0</strong>, <a href="https://svelte.dev/docs/kit/project-structure#Project-files-src">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/12132">#12132</a>)</p></li><li><p>You can now create projects from the Svelte playground with <code>npx sv create --from-playground &lt;url&gt;</code> (<strong>sv@0.9.5</strong>, <a href="https://github.com/sveltejs/cli/pull/662">#662</a>)</p></li><li><p>Experimental async SSR is available in Svelte v5.39.3 and SvelteKit v2.43.0 or higher. You can opt-in via the <code>experimental.async</code> option. When this is enabled, it&#8217;s possible to use <code>await</code> anywhere in your app, without wrapping it in a boundary with a pending snippet. You can find more information in the SvelteKit PR (<a href="https://github.com/sveltejs/kit/pull/14447">#14447</a>, Svelte PR is <a href="https://github.com/sveltejs/svelte/pull/16748">#16748</a>)</p></li></ul><h3><strong>Remote Functions</strong></h3><ul><li><p>The remote <code>set()</code> function can now be called on server queries and <code>query.refresh()</code> promises will now be automatically resolved on the server (<strong>kit@2.37.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14304">#14304</a>, <a href="https://github.com/sveltejs/kit/pull/14332">#14332</a>)</p></li><li><p>The new <code>query.batch</code> remote function lets you batch requests that happen within the same macrotask (<strong>kit@2.38.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#query.batch">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14272">#14272</a>)</p></li><li><p>Lazy discovery of remote functions improves detection and tree shaking for functions defined in <code>node_modules</code> (<strong>kit@2.39.0</strong>, <a href="https://github.com/sveltejs/kit/pull/14293">#14293</a>)</p></li><li><p>The <code>form</code> remote function has been enhanced with schema support, <code>input</code> and <code>issues</code> properties (<strong>kit@2.42.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions#form">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/14383">#14383</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://windframe.dev/">Windframe</a> generates designs with AI or prebuilt templates to export as Tailwind CSS code for React, Vue, Svelte or HTML.</p></li><li><p><a href="https://github.com/vrmiguel/pgpad">pgpad</a> is a straightforward cross-platform database client</p></li><li><p><a href="https://www.zippywords.com/words/en">Zippywords</a> is a burst-typing game that&#8217;s configurable with different languages (including the <a href="https://www.zippywords.com/code/Svelte%205">Svelte 5 syntax</a>!)</p></li><li><p><a href="https://cbfc.watch/">CBFC Watch</a> is a data visualisation project with a searchable database of over 100K film censorship records in India (<a href="https://github.com/diagram-chasing/cbfc-watch">GitHub</a>)</p></li></ul><p><em>Spotted in the Wild</em></p><ul><li><p><a href="https://tv.apple.com/">The Apple TV website</a> - (<a href="https://www.reddit.com/r/sveltejs/comments/1n6i96i/the_appletv_website_uses_svelte/">Reddit post</a>)</p></li><li><p><a href="https://gimli.app/tailwind">Gimli Tailwind</a> - (<a href="https://www.reddit.com/r/sveltejs/comments/1nbmoeq/the_most_popular_devtools_extension_for/">Reddit post</a>)</p></li><li><p><a href="https://mullvad.net/en">The Mullvad VPN site</a> - <a href="https://www.reddit.com/r/sveltejs/comments/1nhe6t6/mullvad_vpn_uses_sveltekit_for_their_site/">Reddit post</a></p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=0hy7PCbXyqs">Introducing SvelteKit Remote Functions</a> and <a href="https://www.youtube.com/watch?v=z0f7NLPdLYE">SvelteKit Remote Functions tips: Auth guards, managing async, query.batch</a> by Simon Holthausen</p></li><li><p><a href="https://www.youtube.com/watch?v=B2MhkPtBWs4">The Complete Svelte 5 Course For The Most Loved JavaScript Framework</a> by Joy of Code (3+ hours of excellent content). Text version available <a href="https://joyofcode.xyz/learn-svelte">here</a></p></li><li><p><a href="https://www.youtube.com/watch?v=d0RPeuC4JL8">Translate your Svelte and SvelteKit applications the easy way - full tutorial</a> by Code with Stanislav</p></li><li><p><a href="https://khromov.se/how-and-why-i-built-an-mcp-server-for-svelte/">How and why I built an MCP server for Svelte</a> by Stanislav Khromov</p></li><li><p><a href="https://share.transistor.fm/s/a5f8c4c6">Svelte Radio</a> is back! Feat. Kevin, Brittney and Antony</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=PHk7YFAFvfg">Ep. 115</a> &#8212; Changelog review</p></li><li><p><a href="https://www.youtube.com/watch?v=sTepLQwJIVo">Ep. 116</a> &#8212; e18e.dev and NPM&#8217;s supply chain attack</p></li><li><p><a href="https://www.youtube.com/watch?v=E0xQXa4qQGY">Ep. 117</a> &#8212; Formisch</p></li><li><p><a href="https://www.youtube.com/watch?v=eBXjXfUiuiA">Ep. 118</a> &#8212; Changelog review</p></li></ul><p><em>Svelte London - September 2025</em></p><p>You can <a href="https://www.youtube.com/watch?v=odCWAAaTNSQ">watch the full video on YouTube</a> or skip to the specific talks below:</p><ul><li><p><a href="https://www.youtube.com/live/odCWAAaTNSQ?si=2Eej24zu2ZXUEljs&amp;t=412">Svelte on Cloudflare: Tips and guide</a> by Mark Ridge and Connor Adams</p></li><li><p><a href="https://www.youtube.com/live/odCWAAaTNSQ?si=4Eyh2SUwA26waECz&amp;t=2563">Ultra-low Latency in SvelteKit</a> by Scott Phillips</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1niyflq/sharing_some_custom_components_that_handle_async/">Sharing some custom components that handle async state with less boilerplate in Svelte 5</a> by u/geokidev</p></li><li><p><a href="https://github.com/GauBen/svelte-emails">Rendering emails with Svelte</a> by Gautier Ben A&#239;m</p></li><li><p><a href="https://samuelplumppu.se/blog/keystatic-sveltekit-markdoc">Integrate Keystatic CMS with SvelteKit to render Markdoc Content with Interactive Svelte Components</a> by Samuel Plumppu</p></li></ul><p><em>To Watch</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=GsjfEmTS4x8">Svelte Under The Hood</a> by ~/in-depth</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><p><em>UI / UX</em></p><ul><li><p><a href="https://github.com/svar-widgets">SVAR Svelte v2.3</a> now has TypeScript definitions to all its open-source Svelte UI components</p></li><li><p><a href="https://www.npmjs.com/package/@dnd-kit-svelte/svelte">@dnd-kit</a> is a lightweight React-like library for building performant and accessible drag and drop experiences</p></li><li><p>svelte-overflow-fade is a Svelte action and attachment for adding beautiful fade effects to overflowing content</p></li><li><p><a href="https://github.com/dellamora/scratch-to-reveal-svelte">scratch-to-reveal-svelte</a> is a simple and customizable scratch-to-reveal component for Svelte</p></li><li><p><a href="https://svelte-streamdown.beynar.workers.dev/">Svelte Streamdown</a> is a Svelte port of Streamdown by Vercel - an all in one markdown renderer, designed specifically for AI-powered streaming applications</p></li><li><p><a href="https://usal.dev/">USAL JS</a> is the &#8220;Ultimate Scroll Animation Library&#8221;</p></li></ul><p><em>Frameworks and Data Tools</em></p><ul><li><p><a href="https://github.com/tbocek/preveltekit">PrevelteKit</a> is a lightweight, high-performance web application framework built on Svelte 5, featuring Server-Side Pre Rendering (SSPR) using Rsbuild and jsdom</p></li><li><p><a href="https://apollo-runes-docs.vercel.app/">Apollo Runes</a> is an Apollo Client for Svelte 5</p></li><li><p><a href="https://github.com/fabian-hiller/formisch">Formisch</a> is a schema-based, headless form library for JS frameworks</p></li><li><p><a href="https://github.com/marcomuser/conformal">Conformal</a> helps you work with native FormData by providing type-safe form submissions for the modern web</p></li><li><p><a href="https://astro.build/">Astro</a>, already supporting async Svelte out of the box, added support for server-rendered async Svelte in the <a href="https://astro.build/blog/astro-5140/#async-rendering-support-for-svelte">5.14 release</a></p></li><li><p><a href="https://github.com/techniq/layerchart/releases/tag/layerchart%402.0.0-next.39">LayerChart</a> had a packed update and introduced (among other things) a &#8220;vanilla CSS&#8221; (Tailwind opt-in) mode and support for other UI frameworks, and now also works in the <a href="https://svelte.dev/playground/c5e73cb55a0045cca83e74b5cdfa3b65?version=5.39.6">Svelte REPL / playground</a></p></li><li><p><a href="https://github.com/Greenheart/keystatic-sveltekit">keystatic-sveltekit</a> 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</p></li></ul><p><em>Dev Tools and Vite Plugins</em></p><ul><li><p><a href="https://github.com/wuchalejs/wuchale">wuchale</a> is a compile-time internationalization (i18n) toolkit that requires zero code changes</p></li><li><p><a href="https://www.npmjs.com/package/sv-console">SV Floating Console</a> is a floating console for Svelte applications that only appears in development mode</p></li><li><p><a href="https://github.com/propolies/magicons">magicons</a> is a fast, typesafe Icon wrapper that fixes bundling issues with large barrel exports in icon libraries</p></li><li><p><a href="https://svelte-pops.vercel.app/docs/overview">Svelte-pops</a> is a performant and easy to use popover manager for creating dialog and tooltips</p></li><li><p><a href="https://github.com/hanielu/vite-plugin-svelte-inline-component">vite-plugin-svelte-inline-component</a> lets you write tiny Svelte components straight inside your JavaScript / TypeScript tests using tagged&#8209;template literals</p></li><li><p><a href="https://github.com/KiraPC/vite-plugin-sveltekit-decorators">vite-plugin-sveltekit-decorators</a> is a powerful Vite plugin that automatically decorates SvelteKit functions with customizable wrappers for logging, analytics, error handling, and more</p></li></ul><p>That&#8217;s it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: September 2025]]></title><description><![CDATA[Deno support, await in consts and open telemetry support]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-september-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-september-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Mon, 01 Sep 2025 13:03:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In case you missed it, the main Svelte blog covered how to use <a href="https://svelte.dev/blog/sveltekit-integrated-observability">SvelteKit's new OpenTelemetry traces</a> to reliably set up observability instrumentation using instrumentation.server.ts. This month's round up covers that release and a few other features that rolled out before and after it.</p><p>Plenty in the showcase, as well, so let's dive in!</p><h2><strong>What's new in Svelte and Svelte CLI (sv)</strong></h2><ul><li><p><code>await</code> is now allowed inside <code>@const</code> declarations (<strong>svelte@5.38.0</strong>, <a href="https://svelte.dev/docs/svelte/await">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/16542">#16542</a>)</p></li><li><p>The <code>sv add</code> command has been updated to remove the <code>--no-preconditions</code> and add <code>--no-git-check</code>. With this new flag, even if some files are dirty, no prompt will be shown (<strong>sv@0.9.0</strong>, <a href="https://svelte.dev/docs/cli/sv-add">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/650">#650</a>)</p></li></ul><h2><strong>What's new in SvelteKit and its adapters</strong></h2><ul><li><p>Deno is now supported as a supported package manager (<strong>sveltejs/adapter-auto@6.1.0</strong>, <a href="https://github.com/sveltejs/kit/pull/14163">#14163</a>)</p></li><li><p>A new <code>instrumentation.server.ts</code> adds tracing and observability setup (<strong>sveltejs/adapter-node@5.3.0</strong>, <a href="https://svelte.dev/docs/kit/observability">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13899">#13899</a>)</p></li><li><p>The <code>--preserve-output</code> flag prevents deletion of the output directory before packaging (<strong>sveltejs/package@2.5.0</strong>, <a href="https://svelte.dev/docs/kit/packaging">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13055">#13055</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://apps.apple.com/us/app/pollinate-pollen-forecast/id6749463028">Pollinate</a> provides accurate forecasts designed for allergy sufferers who want to plan their day, or vacation, around pollen levels (Check out the <a href="https://www.reddit.com/r/sveltejs/comments/1mk05ym/mobile_app_made_with_svelte_5_capacitor/">Reddit post</a> on how it was built)</p></li><li><p><a href="https://ferndesk.com/">Ferndesk</a> is a help center that is kept up to date automatically (the creator shared their demo on the <a href="https://www.reddit.com/r/sveltejs/comments/1mqe9ez/i_built_a_tool_that_keeps_your_help_center_up_to/">Svelte Reddit</a>)</p></li><li><p><a href="https://wplace.live/">Wplace</a> lets you paint whatever you want on a map of the world</p></li><li><p><a href="https://github.com/Scorpio3310/domain-watcher">Domain Watcher</a> is a domain availability monitor and expiration tracker built with SvelteKit &amp; Cloudflare Workers</p></li><li><p><a href="https://trymotley.com/">Motley</a> is a local-first bookmarking/moodboard app</p></li><li><p><a href="https://tallyho.app/">TallyHo</a> is a simple time tracking for freelancers</p></li><li><p><a href="https://www.getmenuscan.app/">MenuScan</a> lets you take a picture of any restuarant menu and get access to the calorie and macro counts for each item</p></li><li><p><a href="https://vibechecked.app/">Vibe Check</a> provides quick, honest diagnostics for AI&#8209;built apps</p></li><li><p><a href="https://joyful.to/">Joyful</a> is a simple way to write, design, and send beautiful newsletters</p></li><li><p><a href="https://eaglecite.com/">Eagle Cite</a> lets you highlight, organize, and search your citations in one place</p></li><li><p><a href="https://volkara.stormlightlabs.org/">Volkara</a> is a set of ADHD-Friendly Productivity Tools</p></li><li><p><a href="https://simplemanarchive.com/">Simple Man Archive</a> is an ASCII art archive where anyone can contribute by creating unique ASCII art</p></li><li><p><a href="https://github.com/thirtycalendar/thirty">Thirty</a> is an open-source AI calendar built on familiar foundations</p></li><li><p><a href="https://time.tem.dev/">Timezones</a> quickly shows and converts timezones across many locations</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://lihautan.com/compile-svelte-5-in-your-head">Compile Svelte 5 in your head</a> by Tan Li Hau</p></li><li><p><a href="https://www.youtube.com/watch?v=0hy7PCbXyqs">Introducing SvelteKit Remote Functions</a> by Simon Holthausen</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1mju9yj/new_features_in_the_svelte_mcp_server_directly/">The Svelte MCP server</a> now allows you to directly reference documentation sections, and prompt templates</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=GQLgq09-knM">Ep. 112</a> &#8212; Storybook for Svelte Part 1</p></li><li><p><a href="https://www.youtube.com/watch?v=aerlBIuinFQ">Ep. 113</a> &#8212; Storybook for Svelte Part 2 - Docs</p></li><li><p><a href="https://www.youtube.com/watch?v=FnUWuLQDCfM">Ep. 114</a> &#8212; Changelog Review</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://github.blog/open-source/maintainers/securing-the-supply-chain-at-scale-starting-with-71-important-open-source-projects/">Securing the supply chain at scale: Starting with 71 important open source projects</a> by GitHub</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1mjqq3t/update_epicenter_yc_s25_just_sponsored_our_first/">Epicenter (YC S25)</a> is sponsoring Svelte maintainers to spend their time half pushing local-first OSS forward with Epicenter and half building their dream projects</p></li><li><p><a href="https://minosiants.com/blog/two-project">Project Two: Creating Mobile app using Tauri + Svelte</a> by Kaspar Minosiants</p></li><li><p><a href="https://brandonma.dev/blog/animejs-svelte/">Ways to use Anime.js with Svelte</a> by Brandon Ma</p></li><li><p><a href="https://www.sh4jid.me/blog/svelte-markdown-and-the-magic-of-web-components">Svelte, Markdown, and the Magic of Web Components</a> by Shajid Hasan</p></li></ul><p><em>To Watch</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=Xbdiwq_88iE">SvelteKit Remote Functions are INSANE! Type-Safe Full Stack in Minutes</a> by Tyler Codes</p></li><li><p><a href="https://www.youtube.com/watch?v=ZZaExhqW5II">Deploy a SvelteKit Application to Cloudflare Workers with Drizzle &amp; D1</a> by Jilles Soeters</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://github.com/Hugo-Dz/exe">EXE</a> is a build tool to distribute your full-stack web app as a single executable binary with zero runtime dependencies</p></li><li><p><a href="https://github.com/rodrigodagostino/svelte-sortable-list">Svelte Sortable List</a> is a comprehensive package for creating accessible, sortable lists in Svelte applications</p></li><li><p><a href="https://github.com/BlueprintLabIO/markdown-ui">Markdown UI</a> turns static docs into interactive experiences - instantly</p></li><li><p><a href="https://www.tarkui.com/">Tark UI</a> provides beautiful UI components built with Ark UI and Tailwind</p></li><li><p><a href="https://github.com/ticatec/uniface-element">Uniface Element</a> is a comprehensive enterprise-grade UI component library built with Svelte 5, designed for modern web applications</p></li><li><p><a href="https://github.com/aker-dev/microfolio">microfolio</a> is a modern static portfolio generator featuring a file-based content management system using folders and Markdown files</p></li><li><p><a href="https://docs.keycloakify.dev/">Keycloakify</a> is a tool for creating custom Keycloak themes, enabling you to modify the appearance and behavior of Keycloak's user interfaces</p></li><li><p><a href="https://github.com/podosoft-dev/pdjsoneditor">PDJsonEditor</a> is a powerful JSON visualization and editing tool with both a code editor and interactive graph views</p></li><li><p><a href="https://github.com/retrotheft/show-and-svelte">Show &amp; Svelte</a> lets you create fully interactive presentations with Svelte</p></li><li><p><a href="https://github.com/wuchalejs/wuchale">wuchale</a> is a compile-time internationalization (i18n) toolkit that requires zero code changes</p></li><li><p><a href="https://github.com/harshmandan/svelte-overflow-fade?tab=readme-ov-file">svelte-overflow-fade</a> is a Svelte action and attachment for adding beautiful fade effects to overflowing content</p></li><li><p><a href="https://www.npmjs.com/package/formshape">formshape</a> is a type-safe form validation for SvelteKit Remote Functions using Standard Schema compatible validators</p></li><li><p><a href="https://github.com/hanielu/vite-plugin-svelte-inline-component">vite-plugin-svelte-inline-component</a> lets you write tiny Svelte components straight inside your JavaScript / TypeScript tests using tagged&#8209;template literals.</p></li><li><p><a href="https://github.com/KiraPC/vite-plugin-sveltekit-decorators">vite-plugin-sveltekit-decorators</a> is a Vite plugin that automatically decorates SvelteKit functions with customizable wrappers for logging, analytics, error handling, and more</p></li><li><p><a href="https://github.com/ruben-sprengel/jetbrains-svelte-templates">jetbrains-svelte-templates</a> is a compact collection of Live Templates for JetBrains IDEs (like WebStorm and IntelliJ IDEA Ultimate) designed to speed up your Svelte &amp; SvelteKit development</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: August 2025]]></title><description><![CDATA[Async Svelte is out - with all the fixins]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-august-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-august-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Fri, 01 Aug 2025 13:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>With <a href="https://github.com/sveltejs/svelte/discussions/15845">Async Svelte</a> and its companion <a href="https://github.com/sveltejs/kit/discussions/13897">Remote Functions</a> officially out in the world, there's a lot of updates to share!</p><p>Be sure to check out the showcase for videos from Rich, Paolo, and Stanislav about all the brand new features in Svelte.</p><p>Let's dive into the highlights...</p><h2><strong>What's new in Svelte, SvelteKit, Language Tools and CLI (sv)</strong></h2><ul><li><p>Remote functions can be called anywhere in your app, but always run on the server, and as such can safely access server-only modules containing things like environment variables and database clients (<strong>kit@2.27.0</strong>, <a href="https://svelte.dev/docs/kit/remote-functions">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13986">#13986</a>)</p></li><li><p><code>getAbortSignal</code> returns an <code>AbortSignal</code> that aborts when the current derived or effect re-runs or is destroyed (<strong>svelte@5.35.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte#getAbortSignal">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/16266">#16266</a>)</p></li><li><p>A new <code>parent</code> property has been added to the <code>__svelte_meta</code> properties that are added to elements at dev time - useful for debugging nested hierarchies (<strong>svelte@5.35.1</strong>, <a href="https://github.com/sveltejs/svelte/pull/16255">#16255</a>)</p></li><li><p><code>await</code> is now supported in components when using the <code>experimental.async</code> compiler option (<strong>svelte@5.36.0/extensions@109.10.0</strong>, <a href="https://svelte.dev/docs/svelte/await-expressions">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15844">#15844</a>)</p></li><li><p>There are now types for the <code>params</code> prop and <code>page</code> attributes in page/layout components (<strong>kit@2.24.0, kit@2.26.0 &amp; extensions@109.10.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13999">#13999</a> / <a href="https://github.com/sveltejs/kit/pull/13864">#13864</a>)</p></li><li><p>SvelteKit's <code>read</code> now works in edge environments where <code>fs.readFile</code> isn't available such as in Cloudflare's workers, Netlify, and Vercel's edge functions (<strong>kit@2.25.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13859">#13859</a>)</p></li><li><p>The <code>resolve(...)</code> and <code>asset(...)</code> helpers have been added for resolving paths (<strong>kit@2.26.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13864">#13864</a>)</p></li><li><p>Support for modern SvelteKit prop typings has been added to VS Code snippets (<strong>extensions-109.10.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/2796">#2796</a>)</p></li><li><p>The new <code>vite.addPlugin</code> simplifies adding a plugin on various vite config styles (<strong>sv@0.8.20</strong>, <a href="https://github.com/sveltejs/cli/pull/633">#633</a>)</p></li><li><p>vite-plugin-svelte is out with support for vite7, rolldown-vite and <a href="https://github.com/sveltejs/vite-plugin-svelte/blob/main/packages/vite-plugin-svelte/CHANGELOG.md">more</a></p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1m991ts/the_logitech_site_is_built_with_svelte/">Logitech's new site</a> is built in Svelte &#127881;</p></li><li><p><a href="https://hend.world/">hend.world</a> is a language learning application that surrounds you with comprehensible input: compelling stories, articles, and videos that match your level</p></li><li><p><a href="https://github.com/sm17p/amgiflol">Amgiflol</a> is a Figma-like Layout Inspector For Web</p></li><li><p><a href="https://formcord.app/">Formcord</a> is a Google Forms alternative built specifically for Discord communities</p></li><li><p><a href="https://www.freq.social/">Freq</a> is a community-based social media platform for groups of music listeners to share, talk about, and enjoy music together</p></li><li><p><a href="https://salora.app/">Salora</a> is a salon booking application (de)</p></li><li><p><a href="https://anxpara.com/animalwellshrine">Animal Well Shrine</a> is an low-spoiler egg tracker for the video game, Animal Well</p></li><li><p><a href="https://www.typinggym.com/">TypingGym</a> is a typing practice site with automatic difficulty adjustment</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=e-1pVKUWlOQ">promise.then(...)</a> by Rich Harris - what's next now that Svelte is Async</p></li><li><p><a href="https://www.youtube.com/live/kL4Tp8RmJwo">Asynchronous Svelte</a> with Rich Harris by CodeTV (Jason Lengstorf)</p></li><li><p><a href="https://www.youtube.com/watch?v=BID8r5LObvI">Remote Functions are coming to SvelteKit - and they are amazing!</a> by Code with Stanislav</p></li><li><p><a href="https://www.youtube.com/watch?v=LKSmlp2S-jQ">Svelte London - June 2025</a> feat. "Svelte, svelte everywhere" by Paolo Ricciuti and "Testing your Svelte app in an actual browser" by Willow / Scott</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=Sp4Y1tMo5AQ">Ep. 108</a> &#8212; Svelte Flow</p></li><li><p><a href="https://www.youtube.com/watch?v=LghoZmFzWYM">Ep. 109</a> &#8212; Ark UI</p></li><li><p><a href="https://www.youtube.com/watch?v=Ia8N6S2OkpM">Ep. 110</a> &#8212; Neodrag v3</p></li><li><p><a href="https://www.youtube.com/watch?v=fExlOwTtZqM">Ep. 111</a> &#8212; Best LLMs for Svelte 5 tested, MCP server, llms.txt</p></li></ul><p><em>Svienna (Svelte Society Vienna)</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=hptgxIdnDdg">Lightning talk 10 tips in 5 mins!</a> by Jean Yves Couet</p></li><li><p><a href="https://www.youtube.com/watch?v=pDx1a078in8">Using SvelteKit and MIT appinventor to inspire young girls for tech</a> by Domenik Reitzner</p></li><li><p><a href="https://www.youtube.com/watch?v=A3cqzv-zRe8">Adding full to your full stack SvelteKit app</a> by Jean Yves Couet</p></li><li><p><a href="https://www.youtube.com/watch?v=0sm4oPwvPVU">ZeeltePHP (Svelte + PHP)</a> by derharry</p></li><li><p><a href="https://www.youtube.com/watch?v=aJVdfPk9WmI">Svelte at Geizhals</a> by Martin Grubinger</p></li></ul><p><em>To Watch/Read</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=H3Mk6ozq69U">Build a SvelteKit Admin App with Drizzle, Tailwind &amp; Postgres</a> by Tyler Codes</p></li><li><p><a href="https://www.youtube.com/watch?v=Vhfcgnt5nO8">Master Svelte in 15 Minutes: From React Dev to Svelte Pro</a> by Neuronfire</p></li><li><p><a href="https://www.matsimon.dev/blog/simple-skeleton-loaders">Simple but Effective Skeleton Loaders</a> by Mat Simon</p></li><li><p><a href="https://www.puruvj.dev/blog/svelte-5-interval-rune">Building Smart Intervals with Svelte 5</a> by Puru VJ</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://github.com/PuruVJ/svelte-interval">Svelte Interval</a> is a comprehensive Svelte utility package for managing intervals with reactive durations, synchronization, and advanced control features</p></li><li><p><a href="https://github.com/HanielU/svelte-router">@hvniel/svelte-router</a> is a Svelte 5 port of React Router</p></li><li><p><a href="https://github.com/hanielu/vite-plugin-svelte-inline-component">@hvniel/vite-plugin-svelte-inline-component</a> lets you write tiny Svelte components straight inside your JavaScript / TypeScript tests using tagged&#8209;template literals</p></li><li><p><a href="https://github.com/wuchalejs/wuchale">wuchale</a> is a non-invasive, normal code based compile-time internationalization (i18n) toolkit</p></li><li><p><a href="https://github.com/meursyphus/ssgoi">SSGOI</a> brings native app-like page transitions to the web</p></li><li><p><a href="https://github.com/moalamri/svelte-form-builder">Svelte Form Builder</a> is a modern, drag-and-drop form builder built with Svelte 5</p></li><li><p><a href="https://github.com/MacFJA/svelte-persistent-runes?tab=readme-ov-file#svelte-persistent-runes">Svelte persistent runes</a> provides a Svelte reactive rune that keep its value through pages and reloads</p></li><li><p><a href="https://github.com/lelabdev/gositemap">gositemap</a> is a fast, test-driven sitemap.xml generator for static SvelteKit sites</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: July 2025]]></title><description><![CDATA[Vite 7 and Rolldown support, better traces and vitest browser mode support]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-july-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-july-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Tue, 01 Jul 2025 13:02:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wu8T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Whether you're trying out Vite 7, vitest browser mode or <a href="https://github.com/sveltejs/kit/discussions/13897">remote functions</a>, there's lots of experimental features to try this month.</p><p>Want some Svelte swag while you're chatting on Discord? With the new <code>sv &#9889;</code> <a href="https://support.discord.com/hc/en-us/articles/31444248479639-Server-Tags#h_01JT6VKRACHQADX7EBXR84QTAQ">server tag</a>, you do just that. While signed into Discord, you can adopt our tag via profile settings.</p><p>There's a bunch to cover, from blog posts to new libraries, so let's dive in...</p><h2><strong>What's new in Svelte and SvelteKit</strong></h2><ul><li><p><code>$inspect.trace</code> now includes source name logging to make it easy to find which file the log came from (<strong>svelte@5.34.0</strong>, <a href="https://svelte.dev/docs/svelte/$inspect#$inspect.trace()">Docs</a>, #<a href="https://github.com/sveltejs/svelte/pull/16060">16060</a>)</p></li><li><p>The latest version of SvelteKit now supports Vite 7 and Rolldown. Compilation should be faster using Rolldown, but with larger bundle sizes until additional tree-shaking is implemented in Rolldown (<strong>kit@2.22.0</strong>, <a href="https://vite.dev/guide/rolldown.html#how-to-try-rolldown">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13747">#13747</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><h2><strong>What's new in the CLI and Language Tools</strong></h2><ul><li><p>The <code>sv</code> CLI now supports Vite's browser mode in Vitest - allowing you to run your tests in the browser natively (<strong>cli@0.8.12</strong>, <a href="https://vitest.dev/guide/browser/">Docs</a>, <a href="https://github.com/sveltejs/cli/pull/588">#588</a>)</p></li><li><p>The language server now makes it easier to search for symbol names (<code>Ctrl + T</code> in VSCode). Some of the handling is also synced to the Svelte TypeScript plugin so that it's more consistent, which also means vscode can better deduplicate the results from both tsserver and Svelte language server (<strong>extensions@109.9.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/2769">#2769</a>)</p></li></ul><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://planet-poster.vercel.app/">Planet Poster</a> is an interactive art work inspired by a poster of, you guessed it, planets</p></li><li><p><a href="https://flo-bit.dev/roomy-worlds/">roomy-worlds</a> lets you create small 3d worlds and share/edit with your community</p></li><li><p><a href="https://www.prodcastapp.com/">Prodcast</a> lets you discover products curated from your favorite podcasts</p></li><li><p><a href="https://www.distillintelligence.com/">Distill</a> automates company and industry monitoring with all news, updates, and summarized insights in one place</p></li><li><p><a href="https://github.com/tglide/thom-chat">thom.chat</a> is an open-source alternative/clone to T3 Chat</p></li><li><p><a href="https://github.com/jhwz/visual-source">Visual Source</a> is a GUI for managing your projects design tokens</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.puruvj.dev/blog/svelte-5-runic-persist-theming">Type-Safe Persistence and Auto-Theming in Svelte 5</a> by Puru VJ</p></li><li><p><a href="https://ricciuti.me/blog/effect-is-fine-but-proxies-are-better">$effect is fine but proxies are better</a> and <a href="https://mainmatter.com/blog/2025/06/25/web-components-with-svelte/?utm_source=svelte_newsletter&amp;utm_medium=social&amp;utm_campaign=25-06-26-how-to-build-web-components-with-svelte">How to build Web Components with Svelte</a> by Paolo Ricciuti</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=_7_8HKvee8M">Ep. 106</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=Ijb8l9XEz2g">Ep. 107</a> &#8212; svelte-lexical</p></li></ul><p><em>To Watch/Read</em></p><ul><li><p><a href="https://sveltest.dev/docs/getting-started">Sveltest</a> is a guide to set up testing for Svelte 5 applications using the experimental vitest-browser-svelte library</p></li><li><p><a href="https://director.design/chapters/playful-onboarding">A Playful Onboarding: Your first interactive animation from A to Z</a> by Director.design</p></li><li><p><a href="https://scottspence.com/posts/migrating-from-testing-library-svelte-to-vitest-browser-svelte">Migrating from @testing-library/svelte to vitest-browser-svelte</a> by Scott Spence</p></li><li><p><a href="https://freedium.cfd/https://javascript.plainenglish.io/why-silicon-valley-ctos-are-secretly-moving-away-from-react-bdf64f0b6072">Why Silicon Valley CTOs Are Secretly Moving Away from React</a> by Freedium</p></li><li><p><a href="https://blog.robino.dev/posts/async-local-storage">Async Local Storage</a> by Ross Robino</p></li><li><p><a href="https://mainmatter.com/events/?utm_source=svelte_newsletter&amp;utm_medium=social&amp;utm_campaign=25-06-25-how-to-build-web-components-with-svelte">Mainmatter</a> has a bunch of Svelte workshops in July so be sure to check those out!</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://shadcn-svelte.com/">shadcn-svelte v1</a> - after 11 months in pre-release (@next), shadcn-svelte has officially hit v1.0. Congrats!</p></li><li><p><a href="https://github.com/quaffui/quaff">Quaff</a> is a component library for Svelte that follows the Material Design 3 guidelines</p></li><li><p><a href="https://www.puruvj.dev/blog/neodrag-v3-alpha">Neodrag v3</a> Alpha is out with multi-framework adapters, event delegation and more</p></li><li><p><a href="https://svelte-polaris-docs.storebud.workers.dev/">Svelte Polaris</a> is port of Shopify's design system to build Shopify apps</p></li><li><p><a href="https://originui-svelte.pages.dev/">Origin UI</a> is a collection of copy-and-paste components for quickly build application UIs</p></li><li><p><a href="https://github.com/StudentOfJS/svelte5-mcp">Svelte 5 MCP Server</a> is a specialized Model Context Protocol (MCP) server for Svelte 5 frontend development</p></li><li><p><a href="https://razshare.github.io/frizzante-docs/guides/get-started/">Frizzante</a> is a minimalistic and opinionated web server framework written in Go that uses Svelte to render pages</p></li><li><p><a href="https://storybook.js.org/blog/storybook-9/">Storybook 9</a> is out now and includes updates to the Svelte CSF story format to support Svelte 5</p></li><li><p><a href="https://github.com/mainmatter/sheepdog">Sheepdog</a> supplies a simple way to introduce cancellable concurrency into your app</p></li><li><p>Flowbite Svelte now has <a href="https://flowbite-svelte.com/docs/plugins/datatables">datatable</a> and <a href="https://flowbite-svelte.com/docs/plugins/wysiwyg">text editor (WYSIWYG)</a> components</p></li><li><p><a href="https://ark-ui.com/">Ark UI</a>, a headless UI library, now has a Svelte version</p></li><li><p><a href="https://svar.dev/svelte/filter/">SVAR Svelte Filter</a> helps you add complex filtering UI and logic to data-heavy apps like admin panels or dashboards</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: June 2025]]></title><description><![CDATA[Attachments are the new actions, plus better snippets and classes]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-june-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-june-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sun, 01 Jun 2025 13:02:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In addition to advancing the work on Async Svelte, the maintainers have been hard at work introducing long requested features like Attachments.</p><p>This month, we'll share a bit about the new API along with a huge showcase of apps/sites built with Svelte...</p><p>Let's dive in!</p><h2><strong>What's new in Svelte and SvelteKit</strong></h2><ul><li><p>Attachments are essentially a more flexible and modern version of actions. Read more about their use-cases and improvements over actions in the PR (<a href="https://github.com/sveltejs/svelte/pull/15000">#1500</a>) or in the <a href="https://svelte.dev/docs/svelte/@attach">Svelte docs</a> (<strong>svelte@5.29.0</strong>, <strong>language-tools@109.7.0</strong>)</p></li><li><p>Do you have actions you love and want to use them as attachments? The <code>fromAction</code> utility lets you convert actions into attachments (<strong>svelte@5.32.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15933">#15933</a>)</p></li><li><p>Generics are now allowed on snippets - improving typing and type hints (<strong>svelte@5.30.0</strong>, <strong>language-tools@109.8.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15915">#15915</a>)</p></li><li><p>The Svelte extension will now allow you to add missing imports on save (<strong>language-tools@109.6.0</strong>, <a href="https://github.com/sveltejs/language-tools/pull/2744">#2744</a>)</p></li><li><p>State fields can now be declared inside class constructors (<strong>svelte@5.31.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15820">#15820</a>)</p></li><li><p>Svelte is now XHTML compliant and the new <code>fragments: 'html' | 'tree'</code> option adds wider CSP compliance (<strong>svelte@5.33.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15538">#15538</a>)</p></li><li><p>Client-side code is now allowed to run at the top-level of universal pages/layouts when SSR is disabled and page options are only boolean or string literals (<strong>kit@2.21.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13684">#13684</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://whimsy.rocks/">Whimsy</a> is a small game engine and a fantasy console for making interactive stories</p></li><li><p><a href="https://dashbot.jianong.me/">DASHBOT</a> is a 1v1 Space Robot Sprint Battle game for two players - with local and online modes</p></li><li><p><a href="https://kraa.io/">Kraa</a> is a web-based markdown editor that does things a little differently</p></li><li><p><a href="https://www.shovel-ai.com/">Shovel AI</a> is a batch tool for interacting with large amounts of a text data with AI models</p></li><li><p><a href="https://md.uy/">md.uy</a> is a collaborative, local-first, peer-to-peer markdown editor</p></li><li><p><a href="https://bringyourai.com/">BringYourAI</a> is a browser extension that provides instant codebase context on any AI chat website</p></li><li><p><a href="https://www.joemmalatesta.com/film">Joe Malatesta</a> figured out a way to present his film photos in a digital environment</p></li><li><p><a href="https://notion-avatar-svelte.vercel.app/">Notion Avatar</a> is a Notion-style avatar editor with Svelte 5 Runes</p></li><li><p><a href="https://www.orbits.so/">ORBITS</a> is your second brain for who you know and who you meet</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p>In case you missed it, <a href="https://www.youtube.com/playlist?list=PL8bMgX1kyZThKy_B41FQHk_xsHMQouV1Z">all the videos from Svelte Summit</a> are on the Svelte Society YouTube. More on how that happened in last month's <a href="https://svelte.dev/blog/svelte-summit-videos">blog post</a></p></li><li><p><a href="https://www.youtube.com/watch?v=9PREEREiPAE">Svelte Attachments Are Here And They're Awesome</a> by Joy of Code</p></li><li><p><a href="https://khromov.github.io/svelte-bench/benchmark-results-merged.html">SvelteBench</a> (from Stanislav Khromov) shows how different AI models perform out of the box on Svelte 5 syntax - now updated with Anthropic's new Claude 4 models</p></li><li><p><a href="https://www.youtube.com/watch?v=FRcOen6JuJc">First look at GitHub Copilot Coding Agent - The $40/month AI developer that actually works!</a> by Stanislav Khromov (video)</p></li><li><p><a href="https://mainmatter.com/blog/2025/05/22/native-apps-with-svelte/">Truly Native Apps with Svelte?</a> by Paolo Ricciuti</p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=frp8BXlBAZY">Ep. 102</a> &#8212; Svelte+Lynx and Async Svelte</p></li><li><p><a href="https://www.youtube.com/watch?v=P3Ldkuksqu0">Ep. 103</a> &#8212; Attachments</p></li><li><p><a href="https://www.youtube.com/watch?v=txM-BCrZcbc">Ep. 104</a> &#8212; Skeleton v3.0</p></li><li><p><a href="https://www.youtube.com/watch?v=Tiq0wivUNAE">Ep. 105</a> &#8212; Changelog</p></li></ul><p><em>To Watch/Read</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=nQB9iRijqBY">Svelte's Next Big Change? (server components soon?)</a> by Better Stack</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1kaiwkk/i_spent_some_time_using_betterauth_and_polar_with/">I spent some time using Better-Auth and Polar with SvelteKit and this is what I think</a> by elansx</p></li><li><p><a href="https://mr19.xyz/blog/md-uy/">Building md.uy - Peer-to-Peer Markdown Editor</a> by mateor</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://www.bits-ui.com/">Bits UI v2 released</a> - with support for attachments, <code>$props.id()</code>, Shadow DOM, and more</p></li><li><p><a href="https://github.com/kompismoln/composably">Composably</a> is a content processing plugin for Vite and SvelteKit with typed content + dynamic Svelte components at build time</p></li><li><p><a href="https://svelteflow.dev/">Svelte Flow is now 1.0</a> - with Svelte 5 support, TSDoc and a bunch of new features to make interactive flow charts even better</p></li><li><p><a href="https://flo-bit.dev/ui-kit/">fox ui</a> is a collection UI components built with Tailwind 4 and Svelte 5 - now with a <a href="https://www.reddit.com/r/sveltejs/comments/1kjwuci/currently_building_a_svelte_rich_text_editor_on/">rich text editor</a></p></li><li><p><a href="https://github.com/carlosjorger/fluid-dnd">fluid-dnd</a> is a drag and drop library for Vue, React and Svelte</p></li><li><p><a href="https://github.com/humanshield-sidepack/sveltekit-password-protect">sveltekit-password-protect</a> is a simple utility to add a layer of protection to your websites</p></li><li><p><a href="https://github.com/humanshield-sidepack/sveltekit-image-optimize">sveltekit-image-optimize</a> is a simple utility that helps you create an endpoint of your svelte app that optimizes your images</p></li><li><p><a href="https://inspect.eirik.space/reference/panel">svelte-inspect-value@0.7.0 introduces Panels</a> - a fixed-position resizable panel / drawer that separates the debugging UI from flow of your website</p></li><li><p><a href="https://github.com/rtrampox/nuqs-svelte">nuqs-svelte</a> is an unnoficial Svelte port of nuqs library - a type-safe search params state manager</p></li><li><p><a href="https://sv-router.vercel.app/">sv-router</a> is a type-safe SPA router with file-based or code-based routing</p></li><li><p><a href="https://github.com/LoStis-World/svelte-textcircle">svelte-textcircle</a> displays text in a circular layout with customizable animations and styling</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: May 2025]]></title><description><![CDATA[Svelte Summit soon! Plus, await in components]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-may-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-may-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Thu, 01 May 2025 13:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Only a week until <a href="https://www.sveltesummit.com/">Svelte Summit Spring 2025</a>! If you can't make it in-person to Barcelona, you can purchase a virtual ticket <a href="https://www.sveltesummit.com/virtual-ticket">here</a>.</p><p>But before that, we've got a few updates to highlight...</p><h2><strong>What's new in Svelte and SvelteKit</strong></h2><p>The Svelte maintainers have been hard at work building out <a href="https://github.com/sveltejs/svelte/discussions/15845">Asynchronous Svelte</a> this month, but still found the time to ship some helpful features. If you're interested in trying out the async branch, or just want to follow along with the development, check out <a href="https://github.com/sveltejs/svelte/pull/15844">feat: allow await in components #15844</a></p><ul><li><p>Certain expressions will now be partially evaluated to improve runtime performance (<strong>svelte@5.27.0/5.28.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15494">#15494</a>/<a href="https://github.com/sveltejs/svelte/pull/15781">#15781</a>)</p></li><li><p>The Svelte CLI (<code>sv</code>) has added a <code>--install &lt;package-manager&gt;</code> flag to <code>create</code> and <code>add</code> to specify which package manager to use when running (<strong>cli@0.8.1</strong>, <a href="https://github.com/sveltejs/cli/pull/531">#531</a>)</p></li><li><p>The two separate CloudFlare adapters have been merged into one: <code>adapter-cloudflare</code> (<strong>adapter-cloudflare@7.0.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13634">#13634</a>)</p></li><li><p><code>adapter-vercel</code> will now create symlink functions for each route, for better observability (<strong>adapter-vercel@5.7.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13679">#13679</a>)</p></li></ul><p>There were a number of fixes in SvelteKit too - including an improvement to the <code>HandleServerError</code> hook to give it access to <code>getRequestEvent</code>! (<a href="https://github.com/sveltejs/kit/pull/13666">#13666</a>)</p><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>. Interested in all the new fixes in language tools? You can find them <a href="https://github.com/sveltejs/language-tools/releases">here</a>.</p><div><hr></div><h2><strong>Community Showcase</strong></h2><h3><strong>Apps &amp; Sites built with Svelte</strong></h3><ul><li><p><a href="https://github.com/siege-perilous/tableslayer">TableSlayer</a> is an open source software for managing in person RPG games with digital displays (check out the video demo on <a href="https://www.reddit.com/r/sveltejs/comments/1jnco5h/built_with_svelte_my_open_source_software_for/">Reddit</a>)</p></li><li><p><a href="https://iconia.dev/">Iconia</a> is a free tool that understands natural language and responds with relevant icons from famous icon libraries</p></li><li><p><a href="https://cmsdocs.com/">CMSDocs</a> transforms your Google Docs into Blog CMS</p></li><li><p><a href="https://svelte-changelog.dev/">Svelte Changelog v2</a> is out now and is a reimagined way of staying up to date on all the new changes in the Svelte ecosystem</p></li><li><p><a href="https://github.com/AdamShannag/hookah-ui">Hookah UI</a> is a visual configuration builder for the Hookah project</p></li><li><p><a href="https://github.com/sfeSantos/mockiapi">mockiapi</a> is a mock API server that allows you to define endpoints, return custom JSON responses, and simulate real-world API behavior</p></li><li><p><a href="https://soarsql.com/">soarSQL</a> is an SQL editor made for analytical processing on Postgres, MySQL, and CSVs - powered by duckDB</p></li><li><p><a href="https://personasim.fow.sh/">Persona Simulator</a> helps you practice your communication skills by chatting with different personas</p></li><li><p><a href="https://typo.robino.dev/">Typo</a> is a web-based markdown editor with formatting in codeblocks and typescript execution</p></li><li><p><a href="https://github.com/mrtechtroid/fernos">FernOS</a> is a lightweight operating system running inside your browser</p></li></ul><h3><strong>Learning Resources</strong></h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=vCMTxL1jWbw">SvelteKit is the best way to build single page apps - and it just got even better!</a> by Stanislav Khromov (Video)</p></li><li><p><a href="https://www.youtube.com/watch?v=7m6HExTKAqM">Svelte London - April 2025</a></p><ul><li><p>Building cross-platform browser extensions with Svelte by Oliver Turner (<a href="https://www.youtube.com/live/7m6HExTKAqM?si=tWUKbSm2IuhO0N_r&amp;t=652">10:52</a>)</p></li><li><p>Kioko: Coding CAD by Armel de Montgros and Soloman Azizi (<a href="https://www.youtube.com/live/7m6HExTKAqM?si=EOmS3Hy-AwIgrBTU&amp;t=2613">43:00</a>)</p></li></ul></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=BGNykPO4L7c">Ep. 100</a> &#8212; Q&amp;A with Rich Harris</p></li><li><p><a href="https://www.youtube.com/watch?v=yp4330KsYcU">Ep. 101</a> &#8212; Changelog</p></li></ul><p><em>To Read</em></p><ul><li><p>Graphite - an open source 2D procedural graphics editor built with Svelte - has released a <a href="https://graphite.rs/blog/graphite-progress-report-q4-2024/">product update blog post</a></p></li><li><p><a href="https://jilles.me/cloudflare-workers-sveltekit-betterauth-custom-domain-google-oauth-otp-email-securing-your-application/">Cloudflare Workers &amp; SvelteKit: BetterAuth, Custom Domain, Google OAuth, OTP &amp; Email - Securing Your Application</a> by Jilles Soeters</p></li><li><p><a href="https://testdriven.io/blog/flask-svelte/">Building a Real-time Dashboard with Flask and Svelte</a> by Amir Tadrisi</p></li><li><p><a href="https://dev.to/jdgamble555/copying-nuxts-usestate-in-qwik-and-svelte-5eo3">Copying Nuxt's useState in Qwik and Svelte</a> by Jonathan Gamble</p></li></ul><h3><strong>Libraries, Tools &amp; Components</strong></h3><ul><li><p><a href="https://github.com/devantic/diaper">diaper</a> is an advanced bottom sheet component for Svelte 5</p></li><li><p><a href="https://github.com/spences10/mcp-svelte-docs">mcp-svelte-docs</a> is an MCP server that lets you search and access Svelte documentation with built-in caching</p></li><li><p><a href="https://animejs.com/">Version 4 of Anime.js</a> - a popular JS animation library - has been released</p></li><li><p><a href="https://deepwiki.com/sveltejs/svelte">DeepWiki</a> has created a comprehensive introduction to the Svelte framework repository</p></li><li><p><a href="https://www.npmjs.com/package/vite-static-assets-plugin">Vite Static Assets Plugin</a> is a Vite plugin that automatically scans your static assets directory, generates a type-safe TypeScript module with all asset paths to help during build or development time</p></li><li><p><a href="https://github.com/svecosystem/mode-watcher">Mode Watcher v1</a> provides simple light/dark mode management, now rewritten with first-class Svelte 5 support</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: April 2025]]></title><description><![CDATA[Writable $derived statements, async reroute and better request event access]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-april-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-april-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Tue, 01 Apr 2025 13:03:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>With a couple minor releases of SvelteKit in the last month and a few more from Svelte itself, there's a lot to be excited about this month. From new helper functions to new configuration options, we've got a lot to cover...</p><p>So let's dive in!</p><h2>What's new in Svelte</h2><ul><li><p>The new <code>idPrefix</code> option for <code>render</code> makes client-side ID generation more reliable in the rare cases that multiple Svelte runtimes exist on a page (<strong>5.22.0</strong>, <a href="https://svelte.dev/docs/svelte/svelte-server#render">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15428">#15428</a>)</p></li><li><p>State created in deriveds/effects can now be written/read locally without self-invalidation - reducing the number of "unsafe read"s significantly (<strong>5.24.0</strong>, <a href="https://github.com/sveltejs/svelte/pull/15553">#15553</a>)</p></li><li><p>Derived statements are now writable (<strong>5.25.0/5.25.2</strong>, <a href="https://svelte.dev/docs/svelte/$derived#Overriding-derived-values">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15570">#15570</a> and <a href="https://github.com/sveltejs/svelte/pull/15581">#15581</a>)</p></li><li><p>The Svelte CLI also got an upgrade to its code generation for more intuitive formatting (<strong>0.7.0</strong>, <a href="https://github.com/sveltejs/cli/pull/380">#380</a>)</p></li><li><p><code>eslint-plugin-svelte</code> v3 has been released. The main update is improved support for Svelte 5. Check out the <a href="https://github.com/sveltejs/eslint-plugin-svelte/releases">CHANGELOG</a> for more details.</p></li></ul><p>There were also quite a few <a href="https://github.com/sveltejs/language-tools/releases/tag/extensions-109.5.3">fixes</a> to the language tools earlier in the month - so be sure to keep your plugins up to date!</p><h2>What's new in SvelteKit</h2><ul><li><p><code>reroute</code> can now be called async - with an option to <code>fetch</code> if you need to pass along cookies or other request context (<strong>2.18.0/2.19.0</strong>, <a href="https://svelte.dev/docs/kit/@sveltejs-kit#Reroute">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13520">#13520</a> and <a href="https://github.com/sveltejs/kit/pull/13549">#13549</a>)</p></li><li><p>The new <code>normalizeUrl</code> helper provides people a way to normalize a raw URL that could contain SvelteKit-internal data (<strong>2.18.0</strong>, <a href="https://svelte.dev/docs/kit/@sveltejs-kit#normalizeUrl">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13539">#13539</a>)</p></li><li><p><code>getRequestEvent</code> is a new function in <code>$app/server</code> that returns the current <code>RequestEvent</code> (<strong>2.20.0</strong>, <a href="https://svelte.dev/docs/kit/$app-server#getRequestEvent">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13582">#13582</a>)</p></li><li><p>Updates to the <code>cloudflare-adapter</code> brings Wrangler 4 support, improved <code>_headers</code> and <code>_redirects</code> files, and support for specifically building for Cloudflare Workers Static Assets (<strong>5.1.0-7.0.0</strong>, <a href="https://github.com/sveltejs/kit/blob/main/packages/adapter-cloudflare/CHANGELOG.md">CHANGELOG</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2>Community Showcase</h2><h3>Apps &amp; Sites built with Svelte</h3><ul><li><p><a href="https://github.com/0x2E/fusion">Fusion</a> is a lightweight, self-hosted friendly RSS aggregator and reader</p></li><li><p><a href="https://www.alci.dev/en/tools/brooks-law-simulator">Brooks&#8217; Law simulator</a> visualizes how communication complexity grows as team size grows</p></li><li><p><a href="https://github.com/vercel/ai-chatbot-svelte">ai-chatbot-svelte</a> is a full-featured, hackable SvelteKit AI chatbot built by Vercel</p></li><li><p><a href="https://github.com/Hugo-Dz/raymarching-webgpu">raymarching-webgpu</a> is a ray marching implementation using WebGPU and Svelte 5, shaders written in WGSL</p></li><li><p><a href="https://www.eurlexa.com/">Eurlexa</a> lets you access and search EU regulations and directives instantly</p></li><li><p><a href="https://www.wsj.com/personal-finance/taxes/taxes-tax-season-ai-chatbot-lars-ebf9b410?st=hk828B">Lars</a> is the Wall Street Journal's AI Tax Bot - built with Svelte and embedded into a React frontend</p></li><li><p><a href="https://github.com/Kyagara/rt/">RT</a> is a lightweight, ad-free Twitch frontend built with Tauri, Rust &amp; SvelteKit</p></li><li><p><a href="https://github.com/Ayfri/Atom-Clicker-Svelte">Atom Clicker</a> is an engaging incremental game where you'll build your own atomic empire</p></li><li><p><a href="https://peasy.so/">peasy</a> provides modern web analytics without the clutter</p></li><li><p><a href="https://svelte-lexical.vercel.app/">svelte-lexical</a> is a rich-text editor for Svelte and SvelteKit</p></li><li><p><a href="https://github.com/doolijb/sveltekit-epub-writer">sveltekit-epub-writer</a> is an ergonomic book editor that lets you export to EPUB in one click</p></li></ul><h3>Learning Resources</h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=bAAwVpvdy_g">Why re-renders hurt performance and how you can fix them in Svelte 5</a> by Stanislav Khromov</p></li><li><p><a href="https://mainmatter.com/blog/2025/03/11/global-state-in-svelte-5/">Runes and Global state: do's and don'ts</a> by Paolo Ricciuti</p></li><li><p><a href="https://www.youtube.com/watch?v=tfq8OrvORYE">Learn How To Make Interactive 3D Apps With Svelte And Threlte</a> by Joy of Code</p></li><li><p><a href="https://www.youtube.com/watch?v=R4FA-W1QCa0">Svelte London - March 2025</a> featuring:</p><ul><li><p>SvelteKit and SST by Andrico Karoulla</p></li><li><p>Mythbusters! Svelte Ecosystem Edition by Willow (GHOST)</p></li></ul></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=HnpvpWTcaVI">Ep. 96</a> &#8212; durable objects</p></li><li><p><a href="https://www.youtube.com/watch?v=RaQLAiEP7sc">Ep. 97</a> &#8212; stick to botton</p></li><li><p><a href="https://www.youtube.com/watch?v=0YH1RraeXFU">Ep. 97</a> &#8212; Changelog</p></li><li><p><a href="https://www.youtube.com/watch?v=Wzd_FG-rymQ">Ep. 99</a> &#8212; Custom Select</p></li></ul><p><em>To Watch</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=9FrC0kTTw64">Deploying Svelte Kit on DigitalOcean App Platform (awesome Vercel alternative) + Tailwind</a> by Elans Builds</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://scriptraccoon.dev/blog/recursive-svelte-components">Recursive Svelte Components</a> by Martin Brandenburg</p></li><li><p><a href="https://testdriven.io/blog/fastapi-svelte/">Building a Real-time Dashboard with FastAPI and Svelte</a> by Amir Tadrisi Amir Tadrisi</p></li><li><p><a href="https://dev.to/digitaldrreamer/a-short-guide-to-async-components-in-svelte-5-57l4">A short guide to Async Components in Svelte 5</a> by Abdullah Bashir</p></li><li><p><a href="https://dev.to/maxcore/sveltekit-5-how-to-make-code-based-router-instead-of-file-based-router-1jf">SvelteKit 5: How to make code-based router, instead of file-based router</a> by Max Core</p></li><li><p><a href="https://dev.to/wobsoriano/integrating-trpc-with-sveltekit-4271">Integrating tRPC with SvelteKit</a> by Robert Soriano</p></li></ul><h3>Libraries, Tools &amp; Components</h3><ul><li><p><a href="https://github.com/oven-sh/bun/pull/17735">Bun has added</a> official support for Svelte as a frontend framework for their bundler</p></li><li><p><a href="https://www.skeleton.dev/">Skeleton v3.0</a> is now available - including Svelte 5 support, Tailwind 4 and a more modular structure</p></li><li><p><a href="https://github.com/sappsdev/sappsui">SaapsUI</a> is a comprehensive Svelte component library designed for creating responsive, accessible, and beautiful user interfaces with minimal effort</p></li><li><p><a href="https://svar.dev/svelte/">SVAR Svelte v2.1</a> has added new UI components - including DataGrid and Gantt charts</p></li><li><p><a href="https://github.com/SikandarJODD/cnblocks">cnblocks</a> provides 50+ UI &amp; Marketing blocks using Svelte 5, Tailwind CSS v4 and Shadcn Svelte</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1jdyyjv/shadeditor_evolves_to_edra_a_headless/">Edra</a> is a Headless &amp; ShadCN-Powered Rich Text Editor for Svelte Developers</p></li><li><p><a href="https://inlang.com/m/gerre34r/library-inlang-paraglideJs/changelog#paraglide-js-20-">Paraglide</a>, the i18n library for supporting multiple languages in your Svelte app, release their 2.0 version</p></li><li><p><a href="https://github.com/unnoq/orpc">oRPC</a> helps you build type-safe APIs for Svelte and TanStack Svelte Query</p></li><li><p><a href="https://github.com/SveltePress/sveltepress">Sveltepress</a> is a content centered site build tool, built on top of Sveltekit</p></li><li><p><a href="https://konvajs.org/docs/svelte/index.html">Konva.js</a> is a declarative 2D Canvas for Svelte apps</p></li><li><p><a href="https://inspect.eirik.space/">Svelte Inspect Value</a> is a "JSON tree"-like value inspector</p></li><li><p><a href="https://marketplace.visualstudio.com/items?itemName=thonymg.svelte-5-kit-snippets">Svelte 5 Snippets</a> offers reusable code templates to accelerate development and ensure consistent coding practices in VS Code</p></li></ul><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: March 2025]]></title><description><![CDATA[Congrats to the SvelteHack winners! Plus improved SSR in Svelte and SvelteKit]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-march-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-march-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sat, 01 Mar 2025 14:02:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://hack.sveltesociety.dev/2024">SvelteHack 2024</a> has ended and the winners were announced on February 9th. Congrats to all the <a href="https://hack.sveltesociety.dev/2024/winners">winners</a> who you'll also find listed in the "Community Showcase" below.</p><p>But before we dive into that, let's get to some updates!</p><h2>What's new in Svelte and SvelteKit</h2><ul><li><p>Native support for Websockets in SvelteKit is now available for testing! You can install the version of SvelteKit from the PR using pkg.pr.new and the PR number (<a href="https://github.com/sveltejs/kit/issues/1491#issuecomment-2645962690">How To Install</a>, <a href="https://github.com/sveltejs/kit/pull/12973">PR/Docs</a>)</p></li><li><p><code>$props.id()</code> provides SSR-safe ID generation - unique for each instance of a component (<strong>Svelte@5.20.0</strong>, <a href="https://svelte.dev/docs/svelte/props#props.id()">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15185">#15185</a>)</p></li><li><p>SvelteKit now supports an option for server-side route resolution. This means that instead of loading the whole routing manifest in the client, and doing the route resolution there, the server runtime is invoked for each route request (<strong>Kit@2.17.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13379">#13379</a>)</p></li><li><p>The values for <code>cache-control</code> and <code>content-type</code> headers are now validated in dev mode to help catch invalid values early (<strong>2.17.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13114">#13114</a>)</p></li></ul><p>For a full list of bug fixes in Svelte, SvelteKit and its adapters, check out their CHANGELOGs <a href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">here</a> and <a href="https://github.com/sveltejs/kit/tree/main/packages">here</a>.</p><div><hr></div><h2>Community Showcase</h2><h3>Apps &amp; Sites built with Svelte</h3><ul><li><p><a href="https://www.faviconizer.com/">Faviconizer</a> is a simple, functional favicon (.ico) converter made with SvelteKit</p></li><li><p><a href="https://github.com/stocknear">stocknear</a> is an open source stock analysis &amp; community platform (congrats on <a href="https://www.reddit.com/r/sveltejs/comments/1iupfxb/from_learning_web_dev_to_building_my_saas_hit/">2 years of development</a>!)</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1in1t0n/self_promotion_svelte_tauri_mobile_app_for/">Workouts</a> is a simple and private app for tracking your strength training workouts</p></li><li><p><a href="https://github.com/Ayfri/Deep-Research">Perplexity Fast Chat</a> is a modern web interface to interact with Perplexity AI and OpenAI models, featuring a unique deep research mode</p></li><li><p><a href="https://github.com/lucasgelfond/exiftool-web">exiftool-web</a> is an exif data inspector tool, in the browser (via WebAssembly!)</p></li><li><p><a href="https://weekendscanner.com/">Weekend Scanner</a> helps you find long weekends by combining your weekends and holidays</p></li><li><p><a href="https://linklink.ink/">Linklink</a> is a link management tool for organising and sharing links</p></li><li><p><a href="https://github.com/lilnasy/multiplayer-globe">Multiplayer Globe App</a> displays website visitor locations in real-time using Astro, Cloudflare and Redis</p></li><li><p><a href="https://github.com/mathesar-foundation/mathesar">Mathesar</a> is an intuitive spreadsheet-like interface that lets users of all technical skill levels view, edit, query, and collaborate on Postgres data directly</p></li><li><p><a href="https://image-squash.web.app/">Squash</a> lets you compress and convert your images to AVIF, JPEG, JPEG XL, PNG, or WebP</p></li><li><p><a href="https://github.com/lucasgelfond/webgpu-sam2">Segment Anything 2 in WebGPU</a> is a WebGPU implementation of Facebook Research's model</p></li></ul><p><em>Svelte Hack Wizzbangery Wizard Winners</em></p><ol><li><p><a href="https://github.com/kunkunsh/kunkun">kunkun</a> is an open source, cross-platform, extensible app launcher (like Raycast) - it's also the winner of SvelteHack 2024 &#127942;</p></li><li><p><a href="https://github.com/edsunman/infinite-turtles">Infinite Turtles</a> is a card game made with Threlte</p></li><li><p><a href="https://github.com/fodor-lori/svudoku">Svudoku</a> is a modern-looking Sudoku application that lets you enjoy solving both Classic and Killer Sudoku puzzles</p></li><li><p><a href="https://github.com/baterson/svelte-tower-defence">Svelte Space</a> is a TowerDefence clicker game made with Svelte 5, without canvas. Playable on different screens, Mobile or Desktop.</p></li><li><p><a href="https://github.com/martaProsniak/haunted-house">Haunted house</a> is an old-school arcade game where you explore a haunted mansion full of ghosts. Control plasma bullets, use your wits and clear the whole house! Created only with Svelte 5.</p></li></ol><h3>Learning Resources</h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.youtube.com/live/NwRJvFX-lOk?si=kGLb_09XSitwdaqk">Svelte Hack 2024 Winners Announcement Livestream</a> featuring GHOST, Paulo and Dominik</p></li><li><p><a href="https://www.youtube.com/watch?v=SJiE4tu39EQ">20 Svelte Features You Missed During Advent Of Svelte</a> by Joy of Code</p></li><li><p><a href="https://www.youtube.com/watch?v=R82Ptutku0M">Use any JavaScript or TypeScript Library in Svelte 5 (The Right Way)</a> by Stanislav Khromov</p></li><li><p><a href="https://www.youtube.com/watch?v=s79E0Q9f2YM">Svelte London - February 2025</a></p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=UHBekhrnKVs">Ep. 92</a> &#8212; Changelog and Showcase</p></li><li><p><a href="https://www.youtube.com/watch?v=-VV-2FyBnng">Ep. 93</a> &#8212; Changelog, dynamic layouts with snippets</p></li><li><p><a href="https://www.youtube.com/watch?v=Qo57-7JmUaw">Ep. 94</a> &#8212; Go + Svelte as a hybrid SPA/MPA application</p></li><li><p><a href="https://www.youtube.com/watch?v=9ypawEnb12U">Ep. 95</a> &#8212; Changelog</p></li></ul><p><em>To Watch</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=C95drFKy4ss">GitHub Copilot: the agent awakens</a> uses SvelteKit as their example project &#128588;&#127996;</p></li><li><p><a href="https://www.youtube.com/watch?v=lwbNPEPt0E8">Full Stack E-Commerce + Dashboard: Svelte 5, Cloudflare, Tailwind, Drizzle, Sqlite, 2025</a> by Lawal Adebola</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://blog.yuki-dev.com/blogs/x2lxp2szm">How to Protect Your SvelteKit Routes</a> by Yuki Ishii</p></li><li><p><a href="https://dev.to/jdgamble555/sharing-runes-in-svelte-5-the-rune-class-505e">Sharing Runes in Svelte 5 with the Rune Class</a> by Jonathan Gamble</p></li><li><p><a href="https://blog.fullmeasure.uk/2025/01/07/mixed-signals-with-svelte5/">Mixed Signals with Svelte 5</a> from the FullMeasure Blog</p></li><li><p><a href="https://steve-sob.medium.com/did-svelte-5-get-runed-with-complexity-cbeda34b9feb">Did Svelte 5 Get Runed with Complexity?</a> by sobPilot</p></li><li><p><a href="https://dev.to/ranjanpurbey/background-jobs-in-sveltekit-with-bullmq-4dn3">Background Jobs in SvelteKit with BullMQ</a> by Ranjan Purbey</p></li></ul><h3>Libraries, Tools &amp; Components</h3><ul><li><p><a href="https://svelte-form-builder.vercel.app/">Svelte Form Builder</a> helps you create forms with Shadcn-Svelte, Superforms and schema within minutes</p></li><li><p><a href="https://github.com/tzezar/shadcn-svelte-enhancements">shadcn-svelte-enhancements</a> is a collection of additional components designed specifically for Shadcn-Svelte</p></li><li><p><a href="https://ui.lomer.dev/">lomer-ui</a> provides standalone components for Svelte powered by Tailwind CSS</p></li><li><p><a href="https://github.com/vidschofelix/vite-plugin-svelte-anywhere">Vite Plugin Svelte Anywhere</a> empowers developers to define reusable custom elements directly within their Svelte components</p></li><li><p><a href="https://chatgpt.com/g/g-Knj6VxTpl-svelte-5-sveltekit-sage">Svelte 5 + SvelteKit Sage</a> is a custom GPT to get the best answers out of ChatGPT</p></li><li><p><a href="https://github.com/raguay/ModalFileManager/releases/tag/v2.0.0">ModalFileManager</a> and <a href="https://github.com/raguay/PersonKanban/releases/tag/v0.5">PersonalKanban</a> have been updated to work with Svelte 5 (and fix a large number of bugs)</p></li><li><p><a href="https://github.com/Matb85/components-pack">components-pack</a> provides photos-related UI components for Svelte 5, Vue 3, Astro 5 and vanilla JS</p></li></ul><p><em>Svelte Hack Rune Ritualist Winners</em></p><ol><li><p><a href="https://github.com/beynar/syncrostate">SyncroState</a> brings Svelte 5 reactivity DX to the multiplayer level. Built on top of Yjs, it's a typesafe, efficient and dead simple way to manage multiplayer state. It is just like a normal $state but synchronised in realtime.</p></li><li><p><a href="https://github.com/twoslashes/twoslash/pull/57">Twoslash Svelte</a> is an extension of <code>twoslashes/twoslash</code> which supports Svelte. This will be beneficial for adding type hints to code blocks on any documentation website targeting Svelte.</p></li><li><p><a href="https://github.com/xGEMINIx/svisx">svisx</a> is a port of Airbnb's visx to Svelte, bringing the power of D3 visualizations to the Svelte ecosystem.</p></li><li><p><a href="https://github.com/ampled/svelte-inspect-value">Svelte Value Inspect</a> is a "json tree"-like inspector inspired by the likes of react-json-view, and svelte-json-tree.</p></li><li><p><a href="https://github.com/Blakintosh/svelte-flexiboards">Flexiboards</a> provides headless, reactive drag and drop components for Svelte 5.</p></li></ol><p><em>Svelte Hack Migration Magician Winners</em></p><ol><li><p><a href="https://github.com/MIERUNE/svelte-maplibre-gl">Svelte MapLibre GL</a> lets you build interactive web maps effortlessly with MapLibre GL JS and Svelte 5.</p></li><li><p><a href="https://github.com/techniq/svelte-ux/pull/530">svelte-ux</a> is a collection of Svelte components, actions, stores, and utilities to build highly interactive applications.</p></li><li><p><a href="https://github.com/jerrythomas/rokkit/tree/develop">rokkit</a> is a data-driven, configurable, and themeable UI library built for use with Svelte. Rokkit controls are designed to be easily themeable, so you can match the look and feel of your project with minimal effort.</p></li><li><p><a href="https://github.com/Michael-Obele/Svelte-MiniApps">Svelte MiniApps</a> is a collection of user-friendly tools rebuilt with Svelte 5 for enhanced speed and reliability</p></li><li><p><a href="https://github.com/roguelighterengine/roguelighter">Roguelighter Engine</a> is a free, open-source, easy-to-use game engine for 2D game development.</p></li></ol><p>That's it for this month! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item><item><title><![CDATA[What's new in Svelte: February 2025]]></title><description><![CDATA[New types, pnpm 10 support and better syntax highlighting]]></description><link>https://svelte.substack.com/p/whats-new-in-svelte-february-2025</link><guid isPermaLink="false">https://svelte.substack.com/p/whats-new-in-svelte-february-2025</guid><dc:creator><![CDATA[Dani Sandoval]]></dc:creator><pubDate>Sat, 01 Feb 2025 14:03:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45380722-cbcf-4d46-9d77-f3e931e659ce_552x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Svelte developer experience got a huge upgrade this month with more exported types and better syntax highlighting in VS Code. Combine that with the huge releases from Storybook, Tailwind and Threlte... and you've got a pretty big month!</p><p>Let's dive in &#128044;</p><h2>What's new in Svelte</h2><ul><li><p>Non-numeric values can now be tweened by snapping immediately to the new value (<strong>5.17.0</strong>, <a href="https://svelte.dev/docs/svelte-motion#tweened">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/14941">#14941</a>)</p></li><li><p><code>const</code> tags are now allowed inside of a <code>svelte:boundary</code> (<strong>5.17.5</strong>, <a href="https://svelte.dev/docs/svelte/svelte-boundary">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/14993">#14993</a>)</p></li><li><p><code>&lt;template&gt;</code> elements are now allowed to contain any child elements (<strong>5.18.0</strong>, <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15007">#15007</a>)</p></li><li><p><code>ClassValue</code> is now exposed from <code>svelte/elements</code> (<strong>5.19.0</strong>, <a href="https://svelte.dev/docs/svelte/class#Attributes-Objects-and-arrays">Docs</a>, <a href="https://github.com/sveltejs/svelte/pull/15035">#15035</a>)</p></li></ul><h2>What's new in SvelteKit and Language Tools</h2><ul><li><p>Custom identifiers can now be invalidated on <code>goto()</code> navigation (<strong>2.16.0</strong>, <a href="https://svelte.dev/docs/kit/$app-navigation#goto">Docs</a>, <a href="https://github.com/sveltejs/kit/pull/13256">#13256</a>)</p></li><li><p>The <code>postinstall</code> script has been removed to support pnpm 10 (<strong>2.16.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13304">#13304</a>)</p><ul><li><p>users should add <code>"prepare": "svelte-kit sync"</code> to their <code>package.json</code> in order to avoid the a warning upon first running Vite</p></li></ul></li><li><p><code>PageProps</code> and <code>LayoutProps</code> types are now provided (<strong>2.16.0</strong>, <a href="https://github.com/sveltejs/kit/pull/13308">#13308</a>)</p></li><li><p>The generics attribute is now supported for JSDoc (<strong>svelte2tsx-0.7.32/svelte-check-4.1.2</strong>, <a href="https://github.com/sveltejs/language-tools/pull/2624">#2624</a>)</p></li><li><p>Semantic document highlighting makes the document highlights based on semantic/syntactic meaning instead of the current word-based default by VSCode (<strong>language-server-0.17.9</strong>, <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_documentHighlight">Docs</a>, <a href="https://github.com/sveltejs/language-tools/pull/1408">#1408</a>)</p></li></ul><div><hr></div><h2>Community Showcase</h2><h3>Apps &amp; Sites built with Svelte</h3><ul><li><p><a href="https://dailytokki.com/?ref=sveltenewsletter">Daily Tokki</a> is daily personalized Korean learning delivered right to your inbox</p></li><li><p><a href="https://github.com/baterson/svelte-tower-defence">svelte-tower-defence</a> is a tower defense clicker game built with Svelte 5, without canvas, using only CSS transitions and the Runes</p></li><li><p><a href="https://github.com/alyalin/PraccJS">PraccJS</a> lets you practice JavaScript with real-time code execution</p></li><li><p><a href="https://www.invoice-r.co.uk/">Invoice-r</a> calculates what you're owed from the information you give and makes your invoice look good</p></li><li><p><a href="https://github.com/AxelUser/carry-fit">Carry Fit</a> is an online carry-on luggage compliance checker</p></li><li><p><a href="https://www.reddit.com/r/sveltejs/comments/1hv3rpd/selfpromotion_we_made_fiddle_with_svelte_so_you/">Fiddle</a> (currently in waitlist stage) lets you design, collaborate and experiment in code</p></li><li><p><a href="https://github.com/rajnandan1/kener">Kener</a> is a modern status page with batteries included</p></li><li><p><a href="https://opentlc.org/">Open TLC</a> is a free, open source CAT (Computer-Assisted Translation) tool</p></li><li><p><a href="https://github.com/mathesar-foundation/mathesar">Mathesar</a> is a secure, spreadsheet-like tool for Postgres data</p></li><li><p><a href="https://github.com/a-matyukh/pile-commander">Pile Commander</a> is an open-source file manager for creative people</p></li><li><p><a href="https://hetzner-value-auctions.cnap.tech/about">Hetzner Auction Browser</a> is a better way to find the perfect server in Hetzner's Server-Bidding marketplace</p></li></ul><h3>Learning Resources</h3><p><em>Featuring Svelte Contributors and Ambassadors</em></p><ul><li><p><a href="https://www.smashingmagazine.com/2025/01/svelte-5-future-frameworks-chat-rich-harris/">Svelte 5 And The Future Of Frameworks: A Chat With Rich Harris</a> by Frederick O'Brien</p></li><li><p><a href="https://www.youtube.com/watch?v=R82Ptutku0M">Use any JavaScript or TypeScript Library in Svelte 5 (The Right Way)</a> by Stanislav Khromov</p></li></ul><p><em>Svelte Radio</em></p><ul><li><p><a href="https://www.svelteradio.com/episodes/rich-harris-on-the-svelte-5-reception">Rich Harris on the Svelte 5 reception</a></p></li><li><p><a href="https://www.svelteradio.com/episodes/dominik-g-on-svelte-5-and-vite-6">Dominik G on Svelte 5 and Vite 6</a></p></li><li><p><a href="https://www.svelteradio.com/episodes/timothy-cohen-talks-samplekit">Timothy Cohen Talks SampleKit</a></p></li></ul><p><em>This Week in Svelte</em></p><ul><li><p><a href="https://www.youtube.com/watch?v=BtZQmNoy6dI">Ep. 89</a> &#8212; Sailkit</p></li><li><p><a href="https://www.youtube.com/watch?v=9DeWd_ShWM4">Ep. 90</a> &#8212; Svelte Radar VS Code Extension</p></li><li><p><a href="https://www.youtube.com/watch?v=Fn0_8iZGkLk">Ep. 91</a> &#8212; Threlte 8</p></li></ul><p><em>To Read</em></p><ul><li><p><a href="https://hugosum.com/blog/dockerize-sveltekit-with-adaptor-static-and-nginx">Dockerize SvelteKit with adapter-static and Nginx</a>, <a href="https://hugosum.com/blog/analyze-and-optimize-your-vite-bundle">Analyze and optimize your Vite bundle</a> and <a href="https://hugosum.com/blog/end-to-end-type-safety-with-svelte5-and-sveltekit2">End-to-end type safety with Svelte 5 and SvelteKit 2</a> by Hugo Sum</p></li></ul><h3>Libraries, Tools &amp; Components</h3><ul><li><p><a href="https://marketplace.visualstudio.com/items?itemName=HarshKothari.svelte-radar">Svelte Radar</a> is a VS Code extension that provides a visual overview of your project's routing structure</p></li><li><p><a href="https://threlte.xyz/blog/threlte-8">Threlte 8</a> is out and is more performant, flexible and aligned with Svelte 5</p></li><li><p><a href="https://storybook.js.org/blog/storybook-8-5/">Storybook 8.5</a> includes Svelte Storybook Test support - improving testing in Svelte CSF stories</p></li><li><p><a href="https://svar.dev/svelte/">SVAR for Svelte</a> provides feature-rich Svelte UI Components</p></li><li><p><a href="https://tailwindcss.com/blog/tailwindcss-v4">Tailwind CSS v4.0 </a>has been released - with a new engine, simpler installation and more</p></li><li><p><a href="https://github.com/razshare/frizzante">Frizzante</a> is a procedural, minimalistic and opinionated web server that uses Svelte to render web pages</p></li><li><p><a href="https://github.com/thomaslappenbusch/svelte-5-dashboard">svelte-5-dashboard</a> is a boilerplate for Svelte 5 dashboards. Including alerts, avatars, custom formatting and more</p></li><li><p><a href="https://github.com/HanielU/dnd-kit-svelte">dnd-kit-svelte</a> is a Svelte 5 dnd-kit port</p></li><li><p><a href="https://github.com/SikandarJODD/youva">youva</a> provides pagination, debounced search, sorting, filtering and caching for SvelteKit</p></li></ul><p>That's it for the review of Svelte's first month of 2025! Let us know if we missed anything on <a href="https://www.reddit.com/r/sveltejs/">Reddit</a> or <a href="https://discord.gg/svelte">Discord</a>.</p><p>Until next time &#128075;&#127996;!</p>]]></content:encoded></item></channel></rss>