What’s new in Svelte: July 2026
SvelteKit config in vite.config, explicit env vars and new declaration tag support across the toolchain
This month brought a real shift in how SvelteKit projects are configured. You can now define your SvelteKit config directly inside vite.config.js and skip svelte.config.js entirely. We also got the first preview of explicit environment variables, which will eventually replace $env/* modules in SvelteKit 3.
On top of that, the language tools and the sv CLI both caught up with Svelte's new {const ...} declaration tags, so the whole toolchain is now in sync.
Let's dive in!
What's new in SvelteKit
- You can now pass your SvelteKit config directly to the Vite plugin, so a separate
svelte.config.jsis no longer required, as a preview of how Kit 3 will require config to live invite.config.js(2.62.0, Docs, #15944) - Experimental explicit environment variables let you declare and type your env vars in one place, as a preview of how
$env/*will work in SvelteKit 3 (2.63.0, Docs, #15934) - Remote function commands can now receive
Fileobjects directly, so you can upload files without manually wrapping them inFormData(2.64.0, Docs, #15978) - Remote queries can now refresh other queries, making it easier to invalidate related data after a mutation (2.65.0, Docs, #16012)
- Prerendered
.mdand.mdxfiles are now precompressed alongside HTML, JS and CSS for faster delivery (2.66.0, Docs, #15893) - SvelteKit now warns when boolean fields in remote form schemas are not marked optional, which is a common cause of silent submit failures (2.66.0, Docs, #15804)
- The new
prerender.handleInvalidUrloption lets you customize how invalid URLs found during crawling are reported (2.67.0, Docs, #16088) RemoteFormEnhanceInstanceandRemoteFormEnhanceCallbackare now exported types, so you can type your customenhancecallbacks directly (2.68.0, Docs, #15816)- Submitted
submitfields now keep their value in the form action payload, which makes multi-button forms easier to handle on the server (2.68.0, Docs, #15979)
For all the features and bugfixes that landed this month, check out the SvelteKit / Adapter CHANGELOGs.
What's new in the Svelte CLI and Language Tools
- The Svelte CLI demo template now uses the new
{const ...}declaration tag, so newly created projects show off the latest Svelte syntax (sv@0.16.0, #1110) sv createnow scaffolds projects against@sveltejs/kit^2.62.0and moves the Svelte config into the Vite plugin by default (sv@0.16.0, #1119)- A new experimental add-on lets you toggle experimental flags and opt into
@nextversions directly from the CLI (sv@0.16.0, #1121) - The
drizzleandbetter-authadd-ons now support SvelteKit's new explicit environment variables (sv@0.16.0, #1122) - New
defineEnvandsvelteConfighelpers in@sveltejs/sv-utilsmake it easier to read and edit a project's Svelte config from add-ons (sv-utils@0.3.0) - The Svelte language server,
svelte-checkandsvelte2tsxnow understand Svelte 5's{const ...}declaration tags (svelte-language-server@0.18.1/svelte-check@4.5.0/svelte2tsx@0.7.56, #3033) - CSS completions now work inside nested
<style>tags (svelte-language-server@0.18.1, #3022) - The language tools can now read Svelte config straight from
vite.config.js/ts, matching SvelteKit's new Vite plugin configuration (svelte-language-server@0.18.2/svelte-check@4.6.0, #3031) svelte-checknow accepts a--configoption to point at a custom config file location (svelte-check@4.7.0, #3066)- Experimental
tsgo(TypeScript Go) support is now available insvelte-checkfor faster type checking on large codebases (svelte-check@4.7.0, #3036)
Want to dive deeper? Check out the Svelte CLI and language-tools releases. For all the minor changes and bugfixes that came out in the Svelte compiler this month, you can read the full Svelte CHANGELOG.
Community Showcase
Apps & Sites built with Svelte
- COLOR LAB is a browser-based color science instrument that explores RGB gamuts as 3D solids and builds perceptual theme ramps with WCAG checks
- Cometline is a local desktop AI companion built with SvelteKit, Electron and a Go agent core
- Disc is a database for users, with a built-in Svelte dashboard
- EZResumes is a fully client-side, local-first resume builder that lets you customize layouts with Typst
- Graphgen is a node-based generative art tool for 2D line art
- Lunarr is an open source self-hosted media server and Plex alternative
- Pixel Snapper 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 Sprite Fusion (GitHub)
- SuperMCP 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
- darkly is an open source art program built with Rust and Svelte
Spotted in the Wild
- Guild Wars 3 - the official ArenaNet site for the upcoming MMORPG
- Obama Foundation - the new site for the recently opened Obama Presidential Center
- On a more meta note, sveltekit.fyi scans Bluesky for sites built with SvelteKit and showcases them, in the spirit of nuxt.fyi
Learning Resources
Featuring Svelte Contributors and Ambassadors
- Agentic Engineering with Svelte 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 July 15th)
- My Favorite Framework Just Got Better by Joy of Code walks through realtime data in SvelteKit using remote functions, live queries and generators
This Week in Svelte
To Read
- Picking Svelte in 2026: the honest tradeoff nobody tells you by Dmitrii Bormotov
- Wuchale: One Year of Compile-Time i18n by Kidus Adugna
Libraries, Tools & Components
Frameworks and Tooling
- Mochi is a performance-focused alternative to SvelteKit from Stanislav Khromov that uses islands architecture and programmatic routing on Bun
- pottz bundles your SvelteKit app, the Bun runtime and a webview into a single executable so you can ship it as a native desktop app
- Svelte TV renders Svelte components to WebGL instead of the DOM for use on smart TVs and low-memory webviews
- TabSpot is a declarative keyboard navigation engine for hierarchical and grid interfaces
UI Components and Visual Effects
- neobrutalism-svelte is a UI library inspired by neobrutalism, balsamiq and lo-fi aesthetics
- @winkintel/bootstrap-svelte brings Bootstrap 5's grid, utilities and components to Svelte 5 with full TypeScript support
- Tan Compose is a lightweight library for building declarative reusable web components
- Svaul is a zero-dependency drawer component for Svelte 5, modernizing vaul-svelte
- Svelte Animated Icon ships close to 10,000 animated icon variants across five icon libraries using the Web Animations API (GitHub)
- FlareCharts is a runes-native charting library for Svelte 5 with built-in CSS theming and accessibility
- Svelte Video Editor is a host-agnostic timeline-based video editor component for Svelte 5 with multi-track clips, scrubbing and ripple edits
Developer Tools and Plugins
- tsv is a Rust-based formatter and parser for TypeScript, Svelte and CSS, with a linter on the roadmap
- svelte-docinfo extracts JSON documentation from TypeScript and Svelte modules using the TypeScript compiler
- VS Code Live Theme Editor is a VSIX extension for editing every token and color in any VS Code, Cursor or TRAE theme
- sveltekit-cloudflare-do automatically exports Durable Objects to the Cloudflare Worker bundle generated by
@sveltejs/adapter-cloudflare
That's it for this month! Let us know if we missed anything on Reddit or Discord.
Until next time 👋🏼!