Thilo Maier
@maier.tech
Software Engineer from Rotterdam. Mostly frontend with Svelte and SvelteKit.
📝 New post: My website now runs on Railway but it was way more work than I thought to move it there.
maier.tech/posts/it-ain...
maier.tech/posts/it-ain...
It ain’t easy to move a side project off Big Tech
Migrating a side project from Vercel to Railway exposed the challenges of moving off Big Tech, and the price tag in terms of time and effort was higher than expected.
maier.tech
November 10, 2025 at 11:48 AM
📝 New post: My website now runs on Railway but it was way more work than I thought to move it there.
maier.tech/posts/it-ain...
maier.tech/posts/it-ain...
One of the few real world examples of a bookmarked PWA being promoted at a larger scale.
This is what you see when you try to install the official emergency app in my area.
Kudos to to whoever decided to opt for web standards 👏
This is what you see when you try to install the official emergency app in my area.
Kudos to to whoever decided to opt for web standards 👏
November 8, 2025 at 8:26 AM
One of the few real world examples of a bookmarked PWA being promoted at a larger scale.
This is what you see when you try to install the official emergency app in my area.
Kudos to to whoever decided to opt for web standards 👏
This is what you see when you try to install the official emergency app in my area.
Kudos to to whoever decided to opt for web standards 👏
Reposted by Thilo Maier
Self reviews were a good idea before AI but are now a necessity. Don't put that burden on your co-workers. If you use AI, review it 🤖
So I'm reviewing a PR from a colleague that was written for like 95% by AI, and while it might have made his job easier, it's making mine a lot harder because it's riddled with mistakes and issues that I have to now fix, and I feel like I have to thoroughly check every single line of code twice
November 4, 2025 at 11:35 AM
Self reviews were a good idea before AI but are now a necessity. Don't put that burden on your co-workers. If you use AI, review it 🤖
If getting hired is broken even for @nerdy.dev, it needs to be fixed!
Adam's interview with @kevinpowell.co really resonated with me. I wrote down some insights from the interview.
www.maier.tech/notes/job-hu...
Adam's interview with @kevinpowell.co really resonated with me. I wrote down some insights from the interview.
www.maier.tech/notes/job-hu...
Job hunting as a top developer in 2025
Insights from Adam Argyle's job hunting story: why resumes often fail, checklist hiring, and ways to stand out in a crowded market.
www.maier.tech
October 31, 2025 at 4:56 PM
If getting hired is broken even for @nerdy.dev, it needs to be fixed!
Adam's interview with @kevinpowell.co really resonated with me. I wrote down some insights from the interview.
www.maier.tech/notes/job-hu...
Adam's interview with @kevinpowell.co really resonated with me. I wrote down some insights from the interview.
www.maier.tech/notes/job-hu...
Can the distinction of AI-assisted engineering vs. vibe coding save the value proposition of traditional software engineering?
Not sure.
podcasts.apple.com/nl/podcast/t...
Not sure.
podcasts.apple.com/nl/podcast/t...
Beyond Vibe Coding with Addy Osmani
Podcast Episode · The Pragmatic Engineer · 29/10/2025 · 1h 8m
podcasts.apple.com
October 31, 2025 at 8:30 AM
Can the distinction of AI-assisted engineering vs. vibe coding save the value proposition of traditional software engineering?
Not sure.
podcasts.apple.com/nl/podcast/t...
Not sure.
podcasts.apple.com/nl/podcast/t...
New note about a great article that distilled my perception about multi-step AI workflows into words.
www.maier.tech/notes/why-mu...
www.maier.tech/notes/why-mu...
Why multi-step AI workflows are overhyped
Why long, multi-step AI agent workflows often fail: compounding errors, rising token costs, and fragile tool integrations.
www.maier.tech
October 29, 2025 at 3:22 PM
New note about a great article that distilled my perception about multi-step AI workflows into words.
www.maier.tech/notes/why-mu...
www.maier.tech/notes/why-mu...
I started adding Content Collections to my SvelteKit website and had to migrate a couple of old plain Svelte posts to Markdown.
Here is an evergreen posts I migrated about `:active`, `:focus` and `:focus-visible` pseudo-classes.
www.maier.tech/posts/grokin...
Here is an evergreen posts I migrated about `:active`, `:focus` and `:focus-visible` pseudo-classes.
www.maier.tech/posts/grokin...
Groking :active, :focus and :focus-visible pseudo-classes
Learn the differences between :active, :focus, and :focus-visible CSS pseudo-classes for form elements, with practical examples and explanations.
www.maier.tech
October 28, 2025 at 8:31 PM
I started adding Content Collections to my SvelteKit website and had to migrate a couple of old plain Svelte posts to Markdown.
Here is an evergreen posts I migrated about `:active`, `:focus` and `:focus-visible` pseudo-classes.
www.maier.tech/posts/grokin...
Here is an evergreen posts I migrated about `:active`, `:focus` and `:focus-visible` pseudo-classes.
www.maier.tech/posts/grokin...
Does your browser protect you from fingerprinting?
I was surprised to find out that Safari does a much better job than a Chromium-based browser.
www.maier.tech/notes/cover-...
I was surprised to find out that Safari does a much better job than a Chromium-based browser.
www.maier.tech/notes/cover-...
Cover Your Tracks
Test your browser's protection against fingerprinting with the EFF's Cover Your Tracks tool. Safari outperforms Chromium.
www.maier.tech
October 25, 2025 at 8:29 PM
Does your browser protect you from fingerprinting?
I was surprised to find out that Safari does a much better job than a Chromium-based browser.
www.maier.tech/notes/cover-...
I was surprised to find out that Safari does a much better job than a Chromium-based browser.
www.maier.tech/notes/cover-...
While I wait for Apple to fix all the little things broken across devices, I'm still trying to wrap my head around that they had nothing else to do for a year other than focus on transparency gimmicks and rounded corners.
October 16, 2025 at 6:42 PM
While I wait for Apple to fix all the little things broken across devices, I'm still trying to wrap my head around that they had nothing else to do for a year other than focus on transparency gimmicks and rounded corners.
I like Claude Haiku 4.5 so far.
It's like putting a cork in that pipe that kept leaking all your included tokens in a week.
It's like putting a cork in that pipe that kept leaking all your included tokens in a week.
October 16, 2025 at 3:37 PM
I like Claude Haiku 4.5 so far.
It's like putting a cork in that pipe that kept leaking all your included tokens in a week.
It's like putting a cork in that pipe that kept leaking all your included tokens in a week.
Overconfident LLM:
"Now I can see the issues clearly."
[not sure, better give it a hint]
"The issue is clear now."
[it still wasn't clear apparently]
"Ah, I see the issue now!"
[Ok, fine I'll fix it myself]
"Now I can see the issues clearly."
[not sure, better give it a hint]
"The issue is clear now."
[it still wasn't clear apparently]
"Ah, I see the issue now!"
[Ok, fine I'll fix it myself]
October 16, 2025 at 12:42 PM
Overconfident LLM:
"Now I can see the issues clearly."
[not sure, better give it a hint]
"The issue is clear now."
[it still wasn't clear apparently]
"Ah, I see the issue now!"
[Ok, fine I'll fix it myself]
"Now I can see the issues clearly."
[not sure, better give it a hint]
"The issue is clear now."
[it still wasn't clear apparently]
"Ah, I see the issue now!"
[Ok, fine I'll fix it myself]
Reposted by Thilo Maier
Fun little interaction challenge: one select changes the options of another, which needs to load data depending on the first.
This is how you do it with the new Svelte APIs. Comfortably fits into one screenshot.
This is how you do it with the new Svelte APIs. Comfortably fits into one screenshot.
October 10, 2025 at 1:22 PM
Fun little interaction challenge: one select changes the options of another, which needs to load data depending on the first.
This is how you do it with the new Svelte APIs. Comfortably fits into one screenshot.
This is how you do it with the new Svelte APIs. Comfortably fits into one screenshot.
I give Vercel credit for transforming frontend dev with immutable deploys. Abstracting away servers was liberating.
But as times change, the downsides of this model deserve more attention.
I have switched to Railway as stepping stone toward a European hosting solution.
But as times change, the downsides of this model deserve more attention.
I have switched to Railway as stepping stone toward a European hosting solution.
October 10, 2025 at 3:02 PM
I give Vercel credit for transforming frontend dev with immutable deploys. Abstracting away servers was liberating.
But as times change, the downsides of this model deserve more attention.
I have switched to Railway as stepping stone toward a European hosting solution.
But as times change, the downsides of this model deserve more attention.
I have switched to Railway as stepping stone toward a European hosting solution.
You can and should watch the @vite.dev documentary online.
The premiere at #viteconf was a blast and so nice to bump into @willow.sh and @rich-harris.dev.
m.youtube.com/watch?v=bmWQ...
The premiere at #viteconf was a blast and so nice to bump into @willow.sh and @rich-harris.dev.
m.youtube.com/watch?v=bmWQ...
Vite: The Documentary
YouTube video by CultRepo
m.youtube.com
October 9, 2025 at 6:11 PM
You can and should watch the @vite.dev documentary online.
The premiere at #viteconf was a blast and so nice to bump into @willow.sh and @rich-harris.dev.
m.youtube.com/watch?v=bmWQ...
The premiere at #viteconf was a blast and so nice to bump into @willow.sh and @rich-harris.dev.
m.youtube.com/watch?v=bmWQ...
October 9, 2025 at 4:27 PM
Has anyone building with #SvelteKit and `adapter-node` seen this type of error?
Screenshot is a Railway build. Local build works fine. Happens occasionally.
This is a Vercel to Railway migration. Never had this issue on Vercel.
#Svelte
Screenshot is a Railway build. Local build works fine. Happens occasionally.
This is a Vercel to Railway migration. Never had this issue on Vercel.
#Svelte
October 8, 2025 at 8:25 PM
Has anyone building with #SvelteKit and `adapter-node` seen this type of error?
Screenshot is a Railway build. Local build works fine. Happens occasionally.
This is a Vercel to Railway migration. Never had this issue on Vercel.
#Svelte
Screenshot is a Railway build. Local build works fine. Happens occasionally.
This is a Vercel to Railway migration. Never had this issue on Vercel.
#Svelte
the new macos update destroyed my computer
YouTube video by Ben Davis
m.youtube.com
October 8, 2025 at 7:01 AM
Using `<enhanced:img />` in Markdown in a mdsvex file in combination with code fences that look like Svelte confuses the Vite plugin.
Wrapping `<enhanced:img />` in a Svelte component and import that component into an mdsvex fixes this.
But it's not pretty.
Wrapping `<enhanced:img />` in a Svelte component and import that component into an mdsvex fixes this.
But it's not pretty.
October 6, 2025 at 8:24 PM
Using `<enhanced:img />` in Markdown in a mdsvex file in combination with code fences that look like Svelte confuses the Vite plugin.
Wrapping `<enhanced:img />` in a Svelte component and import that component into an mdsvex fixes this.
But it's not pretty.
Wrapping `<enhanced:img />` in a Svelte component and import that component into an mdsvex fixes this.
But it's not pretty.
Shoutout to all @fronteers.bsky.social organizers for yesterday's #darkmode conference in Dordrecht.
Great location, fantastic organization and amazing speakers.
⭐⭐⭐⭐⭐
#fronteers
Great location, fantastic organization and amazing speakers.
⭐⭐⭐⭐⭐
#fronteers
October 4, 2025 at 9:38 AM
Shoutout to all @fronteers.bsky.social organizers for yesterday's #darkmode conference in Dordrecht.
Great location, fantastic organization and amazing speakers.
⭐⭐⭐⭐⭐
#fronteers
Great location, fantastic organization and amazing speakers.
⭐⭐⭐⭐⭐
#fronteers
Brecht @utilitybend.com talking about built-in component gems hidden in plain sight in all modern browsers, like popovers.
So many great browser APIs that are waiting to be used by frontend devs.
#fronteers
So many great browser APIs that are waiting to be used by frontend devs.
#fronteers
October 3, 2025 at 3:53 PM
Brecht @utilitybend.com talking about built-in component gems hidden in plain sight in all modern browsers, like popovers.
So many great browser APIs that are waiting to be used by frontend devs.
#fronteers
So many great browser APIs that are waiting to be used by frontend devs.
#fronteers
Reposted by Thilo Maier
I'm in Dordrecht (NL) to MC at @fronteers.bsky.social's "Dark Mode" conference later today and tonight.
Even though it's a new location, this feels like coming home, as I've been attending this conference since 2010 (and also spoke at the 2022 edition).
fronteersconf.org
Even though it's a new location, this feels like coming home, as I've been attending this conference since 2010 (and also spoke at the 2022 edition).
fronteersconf.org
October 3, 2025 at 10:28 AM
I'm in Dordrecht (NL) to MC at @fronteers.bsky.social's "Dark Mode" conference later today and tonight.
Even though it's a new location, this feels like coming home, as I've been attending this conference since 2010 (and also spoke at the 2022 edition).
fronteersconf.org
Even though it's a new location, this feels like coming home, as I've been attending this conference since 2010 (and also spoke at the 2022 edition).
fronteersconf.org
It's great to see the Frontend community leave Amsterdam for one evening for tonight's @fronteers.bsky.social Dark Mode.
See you this afternoon/evening in Dordrecht!
fronteersconf.org
See you this afternoon/evening in Dordrecht!
fronteersconf.org
Fronteers Dark Mode, Friday, October 3rd, Dordrecht
Join us at Cinema de Witt in Dordrecht for our after work conference.
fronteersconf.org
October 3, 2025 at 9:03 AM
It's great to see the Frontend community leave Amsterdam for one evening for tonight's @fronteers.bsky.social Dark Mode.
See you this afternoon/evening in Dordrecht!
fronteersconf.org
See you this afternoon/evening in Dordrecht!
fronteersconf.org
After trying to move a SvelteKit app from Vercel to Cloudflare, I come to the conclusion that swapping out adapters is more an aspiration than a reality.
The two compute models are too different to quickly move anything that is more than a simple web app.
The two compute models are too different to quickly move anything that is more than a simple web app.
October 2, 2025 at 8:14 PM
After trying to move a SvelteKit app from Vercel to Cloudflare, I come to the conclusion that swapping out adapters is more an aspiration than a reality.
The two compute models are too different to quickly move anything that is more than a simple web app.
The two compute models are too different to quickly move anything that is more than a simple web app.
This improves discoverability a lot 👍
svelte.dev/packages is now live!
It's a convenient and easily discoverable place to find a sampling of high quality packages in the ecosystem. We hope it will give confidence in the Svelte ecosystem to newcomers and help them get started more easily.
It's a convenient and easily discoverable place to find a sampling of high quality packages in the ecosystem. We hope it will give confidence in the Svelte ecosystem to newcomers and help them get started more easily.
Packages • Svelte
Packages for your Svelte and SvelteKit apps
svelte.dev
October 2, 2025 at 5:12 PM
This improves discoverability a lot 👍