Simon Ihmig's Avatar

Simon Ihmig

@simonihmig.bsky.social

Software Engineer @crowdstrike.com. Here for all things tech, Ember.js, politics, climate change & renewables.

192 Followers  |  197 Following  |  44 Posts  |  Joined: 23.06.2023  |  2.4345

Latest posts by simonihmig.bsky.social on Bluesky

Preview
Image delivery for modern web applications: Introducing ResponsiveImage In the landscape of web development, images are often both a crucial visual element and a significant...

Been a while since my last blog post, so I thought I'll write this one on the open source project I spent a fair amount of time on over the last year.

Are you building web applications and want to deliver responsive images in an easy and efficient way? Then give this a read πŸ‘‡
dev.to/simonihmig/i...

03.07.2025 15:31 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ResponsiveImage - the JavaScript library for responsive images. Responsive images made easy. Supporting multiple frameworks, WebP, AVIF, placeholders (LQIP), Image CDNs and much more.

New major release of responsive-image.dev is out!
βš› image component for @react.dev
⏱️ supports the @fastly.com IO image CDN
🌍 supports auto-negotiation of image format by CDNs
✨ refactored LQIP (Thumb/BlurHash) simplifying runtime image components

Shoutout to William Killerud for most of these! πŸš€

06.06.2025 17:17 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
feat: unlock universal 🌌 by runspired Β· Pull Request #9968 Β· emberjs/data πŸŽ‰ With this PR, WarpDrive becomes usable by any signals-compatible framework or library. To do so still requires the following constraints: Use SchemaRecord in Polaris Mode only (no Legacy Mode) ...

πŸ‘€ πŸ‘€ πŸ‘€

@warp-drive.io (formerly #emberdata) version 5.5-alpha.21 is compatible with any framework that works with a signals concept. Even multiple on one page sharing data. Pluggable reactivity ftw. Official #svelte/#vue/#preact/#lit integrations coming soon. ✨🌌

github.com/emberjs/data...

28.04.2025 08:22 β€” πŸ‘ 15    πŸ” 7    πŸ’¬ 1    πŸ“Œ 1
Post image

Render responsive images in your Svelte app with this library by @simonihmig.bsky.social πŸ–ΌοΈβš‘οΈ - madewithsvelte.com/responsive-i...

26.04.2025 10:25 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
A picture taken over my shoulder of me releasing Embroider@v4 from my phone while drinking a beer in a restaurant

A picture taken over my shoulder of me releasing Embroider@v4 from my phone while drinking a beer in a restaurant

I just released Embroider@v4 from the @mainmatter.com team dinner using release-plan

This is the start of the @vite.dev era of @emberjs.com πŸŽ‰

03.04.2025 19:20 β€” πŸ‘ 43    πŸ” 8    πŸ’¬ 3    πŸ“Œ 1
Post image

ChatGPT is savage. omg

01.04.2025 15:08 β€” πŸ‘ 21    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

And how you compose the two worlds together is a legit framework design choice.

I can't see why JS-in-HTML should be semantically or logically better than HTML-in-JS tbh.

30.03.2025 22:48 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

All of Svelte is a superset of HTML, or just the templating part? I would say the latter? I am all for the template to be a superset of HTML (don't like JSX), but you need JS at least to glue things together. Most likely your app will host way more JS than HTML though.

30.03.2025 22:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Interesting to see that us coming from a similar/same background, we also stumble over the same issues! πŸ˜…

Nice write-up!

30.03.2025 18:16 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That wasn't my point though. Yes, you can define features like runes in tests, except for the most basic feature: components.

You can't invoke the component under test in the way you would normally do. Also can't define components locally in your test to pass to higher order components.

30.03.2025 18:03 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Not trying to hate on Svelte, I like it quite a bit!

But I do feel they got this template vs. JS thing backwards.

30.03.2025 10:23 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Template Tag Format - Components - Ember Guides The template tag format is a powerful, new way to write components in Ember. It's a single-file format that combines the component's JavaScript and Glimmer template code. The <template> tag is used to...

In Ember tests, you invoke the component just the same way as you do anywhere else. Because you can have <template> inside JS. Example: guides.emberjs.com/release/comp...

30.03.2025 10:23 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Besides the snipped argument, you see the limitations of "js inside template" also for tests. You need to pass props to the render function, invoking the component in a totally different way than you would do in app code. Just because you cannot have template code inside JS.

30.03.2025 10:23 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
Template Tag Format - Components - Ember Guides The template tag format is a powerful, new way to write components in Ember. It's a single-file format that combines the component's JavaScript and Glimmer template code. The <template> tag is used to...

I think modern Ember nailed it. Instead of .svelte being a template with an island of JS, Ember's .gjs is JS with an island of template. Or multiple.

<template> is just a value, that you can direcly use when in scope (private internal components) or you export it.
guides.emberjs.com/release/comp...

30.03.2025 10:23 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 3    πŸ“Œ 0

First time learning about snippets I was thinking this must be a workaround due to some architectural flaw/restriction. Why do you need the concept of "snippet", if you already have one of "component"? Only because Svelte syntactically doesn't allow you to define components inside components, right?

30.03.2025 10:23 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

This should have been its own post (not hidden in replies), and a blog post, and a talk! πŸ˜ƒπŸ‘

17.03.2025 07:04 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Love the vibe!!! πŸ’ͺπŸ˜†

10.03.2025 09:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks, fixed it!

24.02.2025 09:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yeah, I agree.

15.02.2025 11:33 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ThumbHash: A very compact representation of an image placeholder

No, the dimensions are fixed. More details at evanw.github.io/thumbhash/

BlurHash does allow that though: blurha.sh

14.02.2025 20:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
ThumbHash: A very compact representation of an image placeholder

The algorithm is explained at evanw.github.io/thumbhash/

Not that I really understand it πŸ˜…

14.02.2025 20:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ThumbHash: A very compact representation of an image placeholder

Kudos to @evanwallace.bsky.social for this beautiful piece!

Find demo and docs for ThumbHash at evanw.github.io/thumbhash/

Docs for the responsive-image.dev integration at responsive-image.dev/usage/lqip#t...

13.02.2025 17:40 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
image depicting an aurora borealis in high resolution

image depicting an aurora borealis in high resolution

a blurry placeholder encoded with ThumbHash

a blurry placeholder encoded with ThumbHash

Ever heard of ThumbHash? It's a great way to encode a blurry placeholder image into just a few bytes, 28 here. Like BlurHash but better visual quality!

Available now in responsive-image.dev for @vite.dev or webpack plugins and image components for @emberjs.com @lit.dev @solidjs.com and @svelte.dev!

13.02.2025 17:40 β€” πŸ‘ 72    πŸ” 12    πŸ’¬ 7    πŸ“Œ 2

Good question! Unpic does not have its own image processing capabilities, it requires an image CDN. ResponsiveImage supports that, too (tho not all CDNs yet), but also processing local images in your repo, with its vite and webpack plugins. That's the main differentiator I think.

29.01.2025 06:09 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
ResponsiveImage - the JavaScript library for responsive images. Responsive images made easy. Supporting multiple frameworks, WebP, AVIF, placeholders (LQIP), Image CDNs and much more.

The responsive-image.dev family got a new member! πŸŽ‰

πŸ‘‰ Use the new @svelte.dev image component in your Svelte/SvelteKit app to render responsive images, either with our @vite.dev plugin to process local images or with remote images from image CDNs, or both.

responsive-image.dev

28.01.2025 20:59 β€” πŸ‘ 30    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
History of the project | ResponsiveImage - the JavaScript library for responsive images. Responsive images made easy. Supporting multiple frameworks, WebP, AVIF, placeholders (LQIP), Image CDNs and much more.

Made it easy to make the same available to other frameworks using Vite: @lit.dev, @solidjs.com and soon @svelte.dev.

Find the long version of that at responsive-image.dev/history

22.01.2025 20:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I have a nice example for exactly that: ember-responsive-image provided both build-time and runtime aspects in a single v1 addon, but heavily tied into the πŸ₯¦ legacy build system.

Nowadays the build part is a framework-agnostic @vite.dev or webpack plugin, and the component a light-weight v2 addon.

22.01.2025 20:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Long thread, but it's Sunday, so give this a read!

How evolution of the framework works, why it's getting descoped and why it's not dead.

19.01.2025 08:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I fear there is deep truth here.

11.01.2025 20:47 β€” πŸ‘ 55822    πŸ” 13811    πŸ’¬ 1460    πŸ“Œ 848

nope, but please tell me if you have found one! πŸ˜…

08.01.2025 17:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@simonihmig is following 20 prominent accounts