What’s new in Svelte: September 2022
Migrating to SvelteKit’s new filesystem-based router
Still looking for something to do this month? It’s your last chance to get tickets to Svelte Summit, Stockholm! Join us on Sept 8-9th 🎉
With the redesign of SvelteKit’s filesystem-based router merging early last month, there’s lots to cover this month - from the migration script to a number of new blog posts, videos and tutorials.
But the new routing isn’t the only new feature in SvelteKit...
What’s new in SvelteKit
- Linkis now supported as an HTTP header and works out of the box with Cloudflare’s Automatic Early Hints (1.0.0-next.405, PR)
- $env/static/*are now virtual to prevent writing sensitive values to disk (1.0.0-next.413, PR)
- $app/storescan now be used from anywhere on the browser (1.0.0-next.428, PR)
- config.kit.env.diris a new config that sets the directory to search for- .envfiles (1.0.0-next.430, PR)
Breaking changes:
- The filesystem-based router and loadAPI improves the way routes are managed. Before installing version@sveltejs/kit@1.0.0-next.406or later, follow this migration guide (PR, Issue)
- event.sessionhas been removed from- loadalong with the- sessionstore and- getSession. Use- event.localsinstead (1.0.0-next.415, PR)
- Named layouts have been removed in favor of (groups)(1.0.0-next.432, Docs, PR & Migration Instructions)
- event.clientAddressis now- event.getClientAddress()(1.0.0-next.438, PR)
- $app/envhas been renamed to- $app/environment, to disambiguate with- $env/...(1.0.0-next.445, PR)
For a full list of changes, check out kit’s CHANGELOG.
Updates to language tools
- TypeScript doesn’t resolve imports to SvelteKit’s $types very well, the latest version of Svelte’s language tools makes it better (105.21.0, #1592)
Community Showcase
Apps & Sites built with Svelte
- canno is a simple interactive 3d physics game with adjustable gravity, cannon power, and debug visualizer - made with threlte
- straw.page is an extremely simple website builder that lets you create unique websites straight from your phone
- Patra lets you share short notes just with a link. No database. No storage
- promptoMANIA is an AI art community with an online prompt builder
- Album by Mood lets you listen to music based on your mood
- Daily Sumeiro is a daily game to test your math and logic skills
- Lofi and Games - play relaxing, casual games right from your browser
- Pitch Pipe is a digital pitch pipe with a frequency analyser and just-intonation intervals
- classes.wtf is a custom, distributed search engine written in Go and Svelte to make searching for Harvard courses much quicker than the standard course catalog
- Scrumpack is a set of tools to help agile/scrum teams with their ceremonies like Planning Poker and Retrospectives
Learning Resources
Starring the Svelte team
- Supper Club × Rich Harris, Author of Svelte — Syntax Podcast 499
- Let’s talk routing with Rich Harris on Svelte Radio
- 2.17 - Building the Future of Svelte at Vercel with Rich Harris
- 1.15 - What’s Up With SvelteKit with Shawn Wang (swyx)
- Adding Notion Tailwindcss and DaisyUI to Svelte App
- Svelte 101 Session
- Astro and Svelte
- Storyblok in Svelte
- Svelte London August Recording
Learning the new SvelteKit routing
- Migrating Breaking Changes in SvelteKit by Brittney Postma (Netlify)
- Major Svelte Kit API Change - Fixing load, and tightening up SvelteKit’s design before 1.0 - Video by LevelUpTuts
- SvelteKit Is Never Going To Be The Same - Video by Joy of Code
- Let’s learn SvelteKit by building a static Markdown blog from scratch by Josh Collinsworth (updated Aug 26th to keep up with the new changes)
To Watch
- Svelte Guide For React Developers and Svelte State Management Guide by Joy of Code
- What Is Bookit? The Svelte Kit Storybook Killer and What Is @type{import In Svelte Kit - JSDoc Syntax by LevelUpTuts
- TWF Yet another JS Framework... or not? Svelte! by TWF meetup
To Read
- Creating a Figma Plugin with Svelte by Lennart
- Svelte Video Blog: Vlog with Mux from your own SvelteKit Site and Svelte Shy Header: Peekaboo Sticky Header with CSS by Rodney Lab
Libraries, Tools & Components
- @svelte-plugins/tooltips is a simple tooltip action and component designed for Svelte
- Lucia is a simple authentication library for SvelteKit that connects your SvelteKit app to your database
- remix-router-svelte is a Svelte implementation of the react-router-domAPI (driven by@remix-run/router)
- MKRT is a CLI to help you create SvelteKit routes, fast
- Histoire is a tool to generate stories applications - scenarios where you showcase components for specific use cases
- sveltekit-flash-message is a Sveltekit library that passes temporary data to the next request, usually from endpoints
- svelte-particles is a lightweight TypeScript library for creating particles
- svelte-claps adds clap button (like Medium) to any page for your SvelteKit apps
- Neon Flicker is a Svelte component to make your text flicker in a cyberpunk style
- ComboBox is a search input to help users select from a large list of items
- @svelte-put is useful svelte stuff to put in your projects
- vite-plugin-svelte-bridge lets you write Svelte components and use them from React & Vue
UI Kits and Starters
- Svelte-spectre is a UI-kit based on spectre.css and powered by Svelte
- Skeleton allows you to build fast and reactive web UI using the power of Svelte + Tailwind
- iconsax-svelte brings the popular icon kit to Svelte
- laravel-vite-svelte-spa-template is a Laravel 9, Vite, Svelte SPA, Tailwind CSS (w/ Forms Plugin & Aspect Ratio Plugin), Axios, & TypeScript starter template
- neutralino-svelte-boilerplate-js is a cross platform desktop template for Neutralino and Svelte
- figma-plugin-svelte-vite is a boilerplate for creating Figma plugins using Svelte, Vite and Typescript
- Urara is a sweet & powerful SvelteKit blog starter
- SvelteKit Commerce is an all-in-one starter kit for high-performance e-commerce sites built with SvelteKit by Vercel
Did we miss anything? Let us know on Reddit or Discord!
See ya next month!