SvelteKit Moves Config to vite.config.js, Previews Kit 3 Architecture
SvelteKit now accepts its full config inside vite.config.js, making svelte.config.js optional. This is a preview of how SvelteKit 3 will require Vite native configuration, alongside typed environment variables and File object support in remote functions.
SvelteKit config can now live directly in vite.config.js. That is the July 2026 update in one sentence, and it signals exactly where Kit 3 is headed. The svelte.config.js file becomes optional, and the sv create scaffolder now defaults to this pattern. The language server and svelte-check already read config from vite.config.js. This is not just a quality of life tweak. The Svelte team is explicit that Kit 3 will require config in Vite, making this a migration preview.
Remote functions gained two practical improvements. Commands now accept File objects directly, no FormData wrapper needed for uploads. And queries can refresh other queries after a mutation, removing boilerplate invalidation logic. Two new exported types, RemoteFormEnhanceInstance and RemoteFormEnhanceCallback, support typed custom enhance callbacks for multi button forms.
Experimental typed environment variables landed, letting you declare and type env vars in a single place. The Drizzle and Better Auth CLI add ons already support the new system. For larger projects, experimental tsgo support (TypeScript Go) promises faster type checking, and svelte-check gained a --config flag for custom config paths.
SvelteKit 2.62 through 2.68 shipped across the month with prerendering improvements including precompressed .md and .mdx files and a new prerender.handleInvalidUrl option. The community also shipped some interesting projects: Mochi, a performance focused SvelteKit alternative on Bun, and pottz, which bundles a SvelteKit app into a single native executable.