Mat Simon
banner
matsimon.dev
Mat Simon
@matsimon.dev
Lead Software Engineer @derstandard.at

Full Stack Developer (SvelteKit, SwiftUI) https://www.matsimon.dev
Founder of https://www.pausly.app ⭐️
Musician https://www.yesmeno.com 🎸 🎤 🎹 🥁
Blender enthusiast 🎨
Reposted by Mat Simon
🎉 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
August 13, 2025 at 9:02 PM
New blog post: simple, effective skeleton loaders using just HTML and CSS.

www.matsimon.dev/blog/simple-...

#css #html #svelte
Simple but Effective Skeleton Loaders — Mat Simon
Learn how to create a simple, effective skeleton loader component using just HTML and CSS, with full control over layout and design.
www.matsimon.dev
July 2, 2025 at 6:35 PM
This new #svelte feature is really exciting!

It's basically a more versatile replacement of actions.
{@attach ...} • Docs • Svelte
{@attach ...} • Svelte documentation
svelte.dev
May 15, 2025 at 2:08 PM
Very interesting... This will enable us to use `await` directly inside `
Reposted by Mat Simon
I 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.
April 3, 2025 at 11:28 PM
Reposted by Mat Simon
The 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! 🤯
January 27, 2025 at 11:22 PM
Reposted by Mat Simon
Thank 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. 😀
Svelte in Depth: The $effect.root rune — Mat Simon
This 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...
www.matsimon.dev
January 29, 2025 at 10:50 PM
Good read. "The man claims to have principles, but he appears to have only moods and impulses."
The Trouble with Elon
I didn’t set out to become an enemy of the world’s richest man, but I seem to have managed it all the same.
samharris.substack.com
January 23, 2025 at 2:23 PM
Very interesting new #svelte proposal: https://github.com/sveltejs/svelte/pull/15000

A better, more portable implementation of “actions” called “attachments”.
January 18, 2025 at 10:11 PM
Elon 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.
January 14, 2025 at 2:19 PM
I love the chess drama.
January 14, 2025 at 11:22 AM
I’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!
Exciting to see new, independent projects spin up to decentralize the atproto ecosystem! Building alternative infrastructure is a big step towards giving users more choice and making the network billionaire-proof.
Big news! There's a new project that's raising cash to build out AT Protocol infrastructure that isn't dependent on venture-funded Bluesky, to stimulate the development of new social networks using that infrastructure, and to make the protocol's governance more democratic fortune.com/2025/01/13/m...
January 13, 2025 at 9:19 PM
In 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...
January 10, 2025 at 2:05 PM
Just published a post about the new createSubscriber() function in #svelte, and how it helps you manage reactive values from external sources.
Svelte in Depth: The createSubscriber() function — Mat Simon
Learn 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.
www.matsimon.dev
January 9, 2025 at 3:53 PM
Excellent post by @rviscomi.dev about how to get loops off the main thread efficiently.
Breaking Up with Long Tasks or: how I learned to group loops and wield the yield
Everything, 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...
calendar.perfplanet.com
January 3, 2025 at 10:17 PM
Reposted by Mat Simon
Why 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 #webdev
Svelte 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: //...
dev.to
January 3, 2025 at 10:40 AM
I can't remember where I saw this tip, but it's so nice to use vite when you're working on something as simple as a single html file. Just create an index.html file, and run `vite .` in the same folder, and you have a live dev server without hot reloading!
January 1, 2025 at 3:03 PM
It might be a sign of me getting old that I'm really excited and can't wait for the new washing machine that I just ordered to arrive.
January 1, 2025 at 2:48 PM
I really don't understand the outcry about Magnus and Nepo deciding to share the world #chess blitz championship title. This has been done in other sports, both agreed to it, and I found it really sweet actually.

Not a second was I thinking that they robbed me of an exciting finish.
January 1, 2025 at 9:53 AM
How have I missed this elegant solution all this time?? This is the perfect way to version control my dotfiles (.zsh, .vimrc, etc...) without needing to create symlinks or any third party tools (apart from git). It's even really easy to support different machines with branches.
How to Store Dotfiles - A Bare Git Repository | Atlassian Git Tutorial
It's time to find a better way to store your dotfiles. Learn why you should start using a bare Git repository instead.
www.atlassian.com
December 30, 2024 at 2:19 PM
Glad to see that Magnus is going to play the Blitz World Championship Tomorrow, despite his agreements with FIDE (the chess regulatory body) over his Jeans!

#chess #JeansGate
December 29, 2024 at 9:13 PM
Very nice to see that Node.js is getting TypeScript support without any flags.
Node.js Now Supports TypeScript By Default
TypeScript is coming to Node 23. Let's break down what that means.
www.totaltypescript.com
December 28, 2024 at 11:24 AM
FIDE is so antiquated. They banned Magnus, arguably the best player of all time, from playing their last round in the chess world rapid championship *because he was wearing jeans*.

I’m all for nobody being above the rules, but these dress codes are just ridiculous.

#fide #chess
December 27, 2024 at 11:15 PM
"There is no argument, that is good enough, to convince me in any world, that you should put 800 classes on an element. There is not a single instance anywhere where I think that that is acceptable." ––
@dangitalex.wtf
on the compressed.fm podcast

I share your sentiment Alex 😁

#tailwind
December 19, 2024 at 4:39 PM
What a refreshing end of the world chess championship. Both players were so incredibly respectful to their opponent in the press conference after the match that it brought tears to my eyes.
December 12, 2024 at 9:15 PM