Mat Simon @matsimon.dev · 10/07/2026Oh nice! That PR looks great. But this will not solve the issue of accessing a runtime env var during build, right? 100
Mat Simon @matsimon.dev · 10/07/2026Yes! We tried proxying the access and actually throw, but this just throws whenever it’s imported not when it’s used (since that’s not a feature JS supports - same problem as with signals). It’s not perfect but in all use cases we thought of this caused the build code to fail with a useful message. 000
Mat Simon @matsimon.dev · 10/07/2026This runtimeOnly schema wrapper does two things: 1. It makes the value optional during build, but doesn't make the return type optional. 2. It transforms the value to an Error during build, so that _if_ it is accessed, it will be very apparent and the build will fail in all likelihood 100
Mat Simon @matsimon.dev · 10/07/2026The docs suggest to make them optional during building, but the downside is that you then need to handle the optional type all over the code since the type of the variable will be `undefined | string`. Although this is technically correct it's not great DX and unnecessary during runtime. 2/ 100
Mat Simon @matsimon.dev · 10/07/2026The new #sveltekit explicit environment variables are really great! But one thing that has been bothering me, is how to handle missing env variables during build time. We just found a nice solution that you might want to use as well. 1/ #svelte 130
Reposted by Mat SimonPausly @pausly.app · 10/07/2026We have implemented one of the most requested features! When you're in the lobby, waiting for the session to start, you now see all the other members standing next to you. We hope you'll love this feature as much as we do. 111
Reposted by Mat SimonGerold Riedmann @riedmann.net · 26/06/2026Meteorologen rechnen mit 41 Grad. Gemeinsam durch die Hitze kommen - mit dem STANDARD-Hitze-Liveticker. www.derstandard.at/jetzt/livebe...derstandard.atDrei Tage Rekordhitze stehen bevor – Am Sonntag laut neuester Prognose im Osten bis zu 41 GradSchon heute sollen bis zu 38 Grad erreicht werden. Die Regierung berief am Donnerstag das Krisen- und Katastrophenschutzmanagement ein. Der STANDARD begleitet Sie durch den Hitzetag 192
Mat Simon @matsimon.dev · 20/05/2026Danke für den ping. Wenn ich mich nicht irre, ist die Liste nicht von uns vorgegeben. Ich werde aber morgen rausfinden was die richtige Kategorie wäre. 010
Reposted by Mat SimonPausly @pausly.app · 08/12/2025We completely overhauled the user interface for unboxing new outfits. Hopefully you get to experience it soon :) 001
Reposted by Mat SimonPausly @pausly.app · 08/12/2025High fiving has probably always been the most loved feature of Pausly. It's now possible to directly click on the 🙌 emoji to instantly react. No more stressing over finding the right emoji in time :) 011
Reposted by Mat SimonPausly @pausly.app · 08/12/2025It has always been possible to replace single movements before starting a session, but it's now possible to replace them during a session as well! Click on the settings button and hit the "Replace this movement" button and you'll instantly get a new one. 001
Reposted by Mat SimonMia [data-css=poetic] @miriam.codes · 13/08/2025🎉 Happy 30-month anniversary to Container Queries – in every browser since Feb, 2023. It was supposed to be impossible, but here we are! Why 2.5 years? Nothing will change tomorrow, but Baseline uses this milestone to signal confidence a feature has gained "wide" support. youtu.be/bhHV0rQ3-CQ 59917
Mat Simon @matsimon.dev · 02/07/2025New blog post: simple, effective skeleton loaders using just HTML and CSS. www.matsimon.dev/blog/simple-... #css #html #sveltematsimon.devSimple but Effective Skeleton Loaders — Mat SimonLearn how to create a simple, effective skeleton loader component using just HTML and CSS, with full control over layout and design. 181
Mat Simon @matsimon.dev · 15/05/2025This new #svelte feature is really exciting! It's basically a more versatile replacement of actions.svelte.dev{@attach ...} • Docs • Svelte{@attach ...} • Svelte documentation 090
Mat Simon @matsimon.dev · 02/05/2025Very interesting... This will enable us to use `await` directly inside `<script>`, `$derived` and template code. In a SvelteKit context, this potentially means that the `load` function will not remain the place to fetch your data, but that components can do that themselves. #sveltegithub.comAsynchronous Svelte · sveltejs svelte · Discussion #15845This is a long document; get yourself a cup of tea. tl;dr You can now use the await keyword in Svelte — in your <script>, inside $derived expressions, and in your markup — by installing the async b... 071
Reposted by Mat SimonPop Detective @popdetective.bsky.social · 04/04/2025I recently watched Adolescence on Netflix and at the risk of sounding a bit iconoclastic, I’d like to offer some criticisms and concerns about how the mini-series (perhaps inadvertently) perpetuates some myths related to the online radicalization of men and boys. 916443
Mat Simon @matsimon.dev · 29/03/2025@tolin.ski Zero looks really promising to me and I love your Svelte adapter. Where and how do you deploy your zero-cache and what is your goto service for the PostgreSQL database? 100
Reposted by Mat SimonStefan Judis @stefanjudis.com · 27/01/2025The power of view transitions is absolutely mind-boggling. Things like this 👇 are quickly done with some CSS (no hacks!) and no additional DOM elements. Wild! 🤯 411111
Mat Simon @matsimon.dev · 03/02/2025I agree. Still using camelCase thought because that's just how JavaScript is written. Would feel out of place with other libraries and platform functions. (From reading your comments you seem to agree) 030
Mat Simon @matsimon.dev · 30/01/2025Near the end you write "I’m still not convinced though because could a junior developer understand that more than this?". That is also a purely anecdotal argument, and I disagree with you. I think it's easier to parse and understand that a pseudo class is added to the selector with &:hover. 100
Reposted by Mat SimonZicklag @zicklag.dev · 29/01/2025Thank you @matsimon.dev for this great blog post explaining $effect.root in Svelte 5! www.matsimon.dev/blog/svelte-... Really cleared up some confusion I had about why $effect.root wouldn't track my changes. 😀matsimon.devSvelte in Depth: The $effect.root rune — Mat SimonThis article explores Svelte’s $effect.root rune, detailing its purpose, usage, and common misconceptions. It covers scenarios where $effect.root is essential, explains its lifecycle considerations, a... 0111
Mat Simon @matsimon.dev · 23/01/2025Good read. "The man claims to have principles, but he appears to have only moods and impulses."samharris.substack.comThe Trouble with ElonI didn’t set out to become an enemy of the world’s richest man, but I seem to have managed it all the same. 020
Mat Simon @matsimon.dev · 18/01/2025Very interesting new #svelte proposal: github.com/sveltejs/svelte/pull/150… A better, more portable implementation of “actions” called “attachments”. 070
Mat Simon @matsimon.dev · 14/01/2025Elon Musk pretending to be one of the best players of Path of Exile in the world, and then live streaming to prove it... just to show everybody that he has absolutely no clue what he's doing and just bought some Chinese account has got to be one of the funniest things this year so far. 050
Mat Simon @matsimon.dev · 14/01/2025Absolutely :) But to be fair, the match with Magnus was *really* close. And it was way really short too. It would be very entertaining to see a format with more games. 000
Mat Simon @matsimon.dev · 14/01/2025Mastodon ist nicht besonders geeignet für sowas weil man dann die Instanz angeben muss. Generell ist das mMn der Grund warum Mastodon nie abgehoben hat oder abheben wird. Instanzen haben zu viel Einfluss auf das Netzwerk. 000
Mat Simon @matsimon.dev · 13/01/2025I’m really happy about this. I see way too many people switching to Bluesky because it has not been taken over by a right wing lunatic. But the important thing about Bluesky is not that the company it is controlled by is not insane (yet), but that the network is decentralized! 030
Mat Simon @matsimon.dev · 10/01/2025In case you missed it, #vscode now has an option for custom labels! The #svelte vscode extension will set this automatically in the future, but until then, you can make these changes to optimize your tab labels in a #sveltekit project. github.com/sveltejs/lan... 0101
Mat Simon @matsimon.dev · 09/01/2025Just published a post about the new createSubscriber() function in #svelte, and how it helps you manage reactive values from external sources.matsimon.devSvelte in Depth: The createSubscriber() function — Mat SimonLearn how the createSubscriber() function in Svelte helps manage reactive values from external sources. Discover which problems it solves, when to use it, and how it works under the hood. 0307
Mat Simon @matsimon.dev · 09/01/2025Funny... I made the exact argument in a Reddit post a few days ago. People constantly complain that there aren't enough svelte jobs, while simultaneously complaining that the team focuses on making Svelte are more reliable framework for big and professional projects. 🤷♂️ 020
Mat Simon @matsimon.dev · 08/01/2025Und könnte man kein Gesetz machen, dass das ORF Budget festlegt so dass es nicht einfach so von einer Regierung geändert werden kann? Oder ist das auch nur deswegen nicht realistisch weil es so ein politischer Wirbel wäre? 110
Mat Simon @matsimon.dev · 08/01/2025Bzw: warum ist die GIS unabhängiger? Kann eine neue Regierung nicht auch einfach die GIS absetzen oder verringern? 110
Mat Simon @matsimon.dev · 08/01/2025@arminwolf.at ich finde das einen guten und schlüssigen Post. Eine Sache verstehe ich nur nicht so ganz: das Argument warum der ORF nicht aus dem Budget finanziert wird, ist, dass man dann immer mit der aktuellen Regierung verhandeln müsse. Aber könnte das nicht gesetzlich verankert werden? 1/2 110
Mat Simon @matsimon.dev · 03/01/2025I worded that poorly. It’s not about getting them off the main thread (for which you’d need a web worker) but yielding to the main thread so long running task don’t block the main thread for too long. 000
Mat Simon @matsimon.dev · 03/01/2025Excellent post by @rviscomi.dev about how to get loops off the main thread efficiently. calendar.perfplanet.comBreaking Up with Long Tasks or: how I learned to group loops and wield the yieldEverything, On the Main Thread, All at Once Arrays are in every web developer's toolbox, and there are a dozen ways to iterate over them. Choose wrong, though, and all of that processing time will hap... 130
Reposted by Mat SimonMatthias Andrasch @mandrasch.bsky.social · 03/01/2025Why can't we just use // sharedState.svelte.js export const searchText = $state(""); in the new #Svelte v5? @matsimon.dev was so kind to explain it to me, I turned my learnings (and his answers) into a short blog post: dev.to/mandrasch/sv... Critical feedback welcome! #javascript #webdevdev.toSvelte 5: Share state between components (for dummies)As soon as you see the new $state in Svelte 5, you might be tempted to do this: //... 151
Mat Simon @matsimon.dev · 03/01/2025developer.mozilla.org/en-US/docs/W...developer.mozilla.orgProxy - JavaScript | MDNThe Proxy object enables you to create a proxy for another object, which can intercept and redefine fundamental operations for that object. 110
Mat Simon @matsimon.dev · 03/01/2025This means that the actual implementation of the array (and object) proxy is quite simple and handles all possible methods the array implements and might implement in the future. 4/4 100
Mat Simon @matsimon.dev · 03/01/2025From the docs: "For example, array methods read and write to array through these internal methods, so methods like push() would also invoke get() and set() traps." So all these array methods that modify the array go through these traps that svelte can overwrite in the proxy. 3/ 110
Mat Simon @matsimon.dev · 03/01/2025That would be pretty error prone. Every time JavaScript adds a new method, the Svelte team would need to adapt immediately, otherwise reactivity would break for that specific method. In reality JavaScript proxies are pretty cool. They offer get() and set() traps. 2/ 210
Mat Simon @matsimon.dev · 03/01/2025And I'd like to clarify something. In my bsky thread I said that svelte is smart and proxies the methods and that's why methods like push() work too. The reality is a bit more complicated but more robust too. Svelte doesn't have to proxy ever method that modifies the underlying object. 🧵 1/ 100
Mat Simon @matsimon.dev · 03/01/2025Great post! Thanks for mentioning me. A small note: "When you use an object (including arrays) they are also not states themselves!" This is only correct if you export it (or use it outside the scope it's defined in). In the same scope, if defined with $state(), they can be overridden. 210
Mat Simon @matsimon.dev · 02/01/2025And finally: for all intents and purposes, SvelteSet has the same signature as Set and should behave the same. I actually believe that there is a bug somewhere why simply logging a SvelteSet didn't work. I guess it used .toString() and this should also use the underlying signal. I'll test this today 110