SvelteKit 3 is here! Check out the announcement post for the highlights, then run sv migrate to handle most of the upgrade for you. sv itself hit 1.0 on the same day, making the community add-on API official. Below you’ll find the last round of changes that landed before 3.0 - adapter API updates, zero-config deploys to Render and a few final breaking changes.
Svelte Summit is also back for Svelte’s 10th birthday! It’s happening in Ljubljana on November 19-20 with talks from Rich Harris, Elliott Johnson, Paolo Ricciuti, Stanislav Khromov, pngwn and more. In-person and virtual tickets are available at sveltesummit.com.
Svelte itself had a quiet month - 5.57.1 is all bug fixes and parser performance work. Per usual, there’s still plenty in the showcase... so let’s dive in!
What’s new in SvelteKit 3
- Adapters now receive the Svelte config as a function argument when adding Vite plugins (3.0.0-next.27, #16986)
- Adapters can override
getRequestandsetResponseduringvite devandvite preview, so local requests behave more like the target platform (3.0.0-next.27, Docs, #16753) - Node: static assets are now served from tables recorded at build time instead of
sirv(adapter-node@6.0.0-next.13, Docs, #16908) - Netlify: the
splitandedgeoptions can now be used together (adapter-netlify@7.0.0-next.12, Docs, #17045) adapter-autonow supports zero-config deployments to Render (adapter-auto@8.0.0-next.4, Docs, #16850)svelte-packagenow rewrites import aliases like#libinto relative imports, and warns when a.server.file orserverdirectory doesn’t import a server-only module (package@3.0.0, #16360, #16266)- Breaking changes from the final prereleases
- The server now errors when a client-requested single-flight mutation refresh isn’t handled. Use
ignore()orignoreAll()onrequestedto skip a refresh on purpose (3.0.0-next.27, Docs, #16892) - Environment variables are now populated before
instrumentation.server.jsis evaluated, and the adapter instrumentation API has been updated to match (3.0.0-next.27, Docs, #16303) builder.generateManifesthas been replaced withbuilder.generateServerInstanceandbuilder.manifest, and theServerconstructor andSSRManifesttype are no longer public (3.0.0-next.27, Docs, #16875, #16876)- Query parameters beginning with
x-sveltekit-are now rejected (3.0.0-next.28, #17125) - Cloudflare: the
platformobject has been removed. Bindings now come from an emulatedcloudflare:workersmodule instead (adapter-cloudflare@8.0.0-next.7, Docs, #16754) - Node: only static assets present at build time are served, they’re validated with content-hash
ETags instead ofLast-Modified, and they only respond toGETandHEADrequests (adapter-node@6.0.0-next.13, Docs, #16908) - Netlify: static files are now written based on the
publishadapter option rather than readingnetlify.toml(adapter-netlify@7.0.0-next.12, Docs, #17078)
- The server now errors when a client-requested single-flight mutation refresh isn’t handled. Use
Upgrading an existing app? The migration guide covers every breaking change in 3.0. For all the bug fixes that went into the release, check out the SvelteKit / Adapter CHANGELOGs.
What’s new in the Svelte CLI and AI Tools
- The
drizzleadd-on can now set up SQLite with Node’s built-innode:sqlitemodule (sv@0.17.1, Docs, #1206) sv1.0 is out! New projects use SvelteKit 3 and#lib, andsv migrate sveltekit-3upgrades existing apps (sv@1.0.0, Docs, #1138)- The community add-on API is now official, and
sv createcan scaffold a new add-on from theaddontemplate (sv@1.0.0, Docs, #1308) @sveltejs/enhanced-imgis now available as an official add-on viasv add enhanced-img(sv@1.0.0, Docs, #1300)- The Svelte OpenCode plugin now supports OpenCode V2 (opencode@0.1.15, #258)
For all the bug fixes and performance improvements that went into Svelte 5.57.1 this month, check out the Svelte compiler’s CHANGELOG. CLI and AI tools updates can be found in the Svelte CLI and ai-tools releases.
Community Showcase
Apps & Sites built with Svelte
- Docvia is a framework-agnostic documentation library
- Powermove is an open-source video editor where an agent can add or fork panels, effects and workflows as extensions while the app is running
- npmchart lets you analyze and compare npm downloads, releases and GitHub activity for any package, from LayerChart author Sean Lynch
- GFX Computer is a graphics tool from Scott Tolinski built on TypeGPU and GSAP (requires HTML-in-Canvas to be enabled)
- PicoCAD 2 Web Viewer renders PicoCAD 2 models in the browser with optional special effects and GIF export
- VisuallyJs Circuit Diagram is a starter app for building an electronic circuit designer with VisuallyJs
- IMPIB is an in-browser image workflow for compressing, cropping and packaging responsive image variants, all processed locally with WebAssembly codecs
- Supvan Katasymbol Printer Web UI lets you print to Katasymbol thermal label printers straight from the browser on any computer or phone
- Deskfolk is a private AI team on your Mac that asks before risky moves and shows its work
- uptik schedules your video uploads so you don’t have to watch the clock to hit publish
- Mini Game Zone is a browser-based party game where two teams compete in quick mini-games like color matching and word races
- Arknights: Endfield Factory Planner helps you plan factories in Arknights: Endfield, with a Zig/WASM solver doing the heavy lifting
- SPIRAL WARDEN is an arena shooter/survival browser game with a Svelte UI on top of Phaser 3 physics
Learning Resources
Featuring Svelte Contributors and Ambassadors
- Make native desktop apps with Svelte 5 today using Custom Renderers by Code with Stanislav (featuring this WIP library)
- WebMCP Challenge - GFX Computer by Scott Tolinski
- UI Libraries do not make your application accessible and Hello, Blog! by Enrico Sacchetti
This Week in Svelte
Libraries, Tools & Components
UI Components
- Sivir UI (last featured as Neel/UI in April 2024) has been rewritten as a shadcn-style component library built to be as themeable as possible
- FluentUI Svelte brings Microsoft’s Fluent UI to Svelte, now at 37 components with v0.4
- Baby UI is a large collection of animation-first UI components
- horizon-layout is a zero-dependency IDE-style layout manager with dockable panes, draggable tabs, resizable splits and pop-out windows
- svelte5plus-calendar and svelte-json-discovery are zero-dependency calendar and JSON structure viewers, respectively
- Svelte-pasito is a dependency-free, customizable step indicator component
- Theme Toggles is a set of animated light/dark theme toggles that now supports Svelte
Markdown Tools, Editors and Syntax Highlighting
- Twinkleplop is a delightful syntax highlighter from pngwn
- fractalpop is an SSR-safe, async syntax highlighter for SvelteKit that works with mdsvex and ships with Editor and Code Snippet components
- aragonite is a from-scratch markdown editor library for Svelte that doesn’t wrap ProseMirror or another editor
- svmd compiles CommonMark markdown straight into Svelte component source, so components and reactive expressions work inside your
.mdfiles - Editable 2.0 is now in preview, letting clients edit text, images and videos directly on a Svelte site without a CMS
- svedocs is a customizable documentation framework built with SvelteKit
Dev Tools
- Railway now offers an out-of-the-box SvelteKit template for hosting everything from static blogs to full-stack apps
- svebcomponents provides boilerplate-free, type-safe, server-renderable web components
- svdevtools is an early preview of a devtools package that lets you inspect components, props and state
That’s it for this month! Let us know if we missed anything on Reddit or Discord.
Until next time 👋🏼!