Simon Ihmig's Avatar

Simon Ihmig

@simonihmig.bsky.social

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

202 Followers  |  198 Following  |  45 Posts  |  Joined: 23.06.2023
Posts Following

Posts by Simon Ihmig (@simonihmig.bsky.social)

ResponsiveImage - the JavaScript library for responsive images. Responsive images made easy. Supporting multiple frameworks, WebP, AVIF, placeholders (LQIP), Image CDNs and much more.

๐Ÿ“ฃ responsive-image.dev now ships with a native Vue.js image component to render responsive images!

Use it with the @vite.dev plugin (or webpack) to process local images in your @vuejs.org or @nuxt.com app, with support for modern formats, image transformations and LQIP, or load from image CDNs.

01.03.2026 18:03 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Ember 6.8 Released The Ember project is excited to announce the release of Ember v6.8. This is a standard minor release as part of the standard Ember Release Train process, but this release isn't...

Hot off the press!

6.8 released with some big features ๐ŸŽ‰

โšก@vite.dev by default
๐Ÿ•š Compatible with libraries from 8+ years ago*
โœจ New APIs: renderComponent, additional reactive data structures
๐Ÿค No more hbs by default (strict: true)

Read more here:

blog.emberjs.com/ember-releas...

26.10.2025 04:17 โ€” ๐Ÿ‘ 42    ๐Ÿ” 16    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 2
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 โ€” ๐Ÿ‘ 2    ๐Ÿ” 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 โ€” ๐Ÿ‘ 73    ๐Ÿ” 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