Janis Jansen 🌳
@janis.me
Putting things on websites you didn't know could be on websites. Like fluid simulations or CAD software. Also conversational AI agents at cognigy.ai. Currently working on surimi.dev (pre-alpha)
🔗 janis.me
🖥️ github.com/janis-me
📽️ youtube.com/@janis-me
🔗 janis.me
🖥️ github.com/janis-me
📽️ youtube.com/@janis-me
You can't stop me from playing Metroid Fusion on a GBA emulator on my modded Wii.
I do own a computer and I do own several other consoles. But this is the way you are supposed to play GBA games.
I do own a computer and I do own several other consoles. But this is the way you are supposed to play GBA games.
November 4, 2025 at 4:14 PM
You can't stop me from playing Metroid Fusion on a GBA emulator on my modded Wii.
I do own a computer and I do own several other consoles. But this is the way you are supposed to play GBA games.
I do own a computer and I do own several other consoles. But this is the way you are supposed to play GBA games.
We're getting there! Was a very productive week.
October 23, 2025 at 8:14 PM
We're getting there! Was a very productive week.
Speaking of Vendor prefixes. These are the ones I found so far
Stopping with the "spam" now :) sorry
Stopping with the "spam" now :) sorry
October 19, 2025 at 1:04 PM
Speaking of Vendor prefixes. These are the ones I found so far
Stopping with the "spam" now :) sorry
Stopping with the "spam" now :) sorry
I also got one for (I hope) every single pseudo class and pseudo element!
There are some edge-cases though. like `:matches()`. And it excludes vendor-prefixed ones. Couldn't be bothered.
There are some edge-cases though. like `:matches()`. And it excludes vendor-prefixed ones. Couldn't be bothered.
October 19, 2025 at 1:00 PM
I also got one for (I hope) every single pseudo class and pseudo element!
There are some edge-cases though. like `:matches()`. And it excludes vendor-prefixed ones. Couldn't be bothered.
There are some edge-cases though. like `:matches()`. And it excludes vendor-prefixed ones. Couldn't be bothered.
I'm learning so much more about CSS by building surimi (because I am forced to read the CSS specification).
For example, just wrote some types to figure out all possible @media query descriptors you can use.
It's 40 in total
For example, just wrote some types to figure out all possible @media query descriptors you can use.
It's 40 in total
October 19, 2025 at 12:55 PM
I'm learning so much more about CSS by building surimi (because I am forced to read the CSS specification).
For example, just wrote some types to figure out all possible @media query descriptors you can use.
It's 40 in total
For example, just wrote some types to figure out all possible @media query descriptors you can use.
It's 40 in total
I'm in a deep `extends...infer` typescript hole again. And it's just awesome. Getting a lot done today!
October 17, 2025 at 8:46 PM
I'm in a deep `extends...infer` typescript hole again. And it's just awesome. Getting a lot done today!
From the main Page, when I search for any domain and click on the search button, I am re-directed and get an error. If I then reload the page, everything works again.
I could re-produce it consistently by clearing the website cache.
I'm on the latest Firefox Mobile (android)
I could re-produce it consistently by clearing the website cache.
I'm on the latest Firefox Mobile (android)
October 17, 2025 at 10:59 AM
From the main Page, when I search for any domain and click on the search button, I am re-directed and get an error. If I then reload the page, everything works again.
I could re-produce it consistently by clearing the website cache.
I'm on the latest Firefox Mobile (android)
I could re-produce it consistently by clearing the website cache.
I'm on the latest Firefox Mobile (android)
The first version of the 🍣 surimi playground is live!
It runs the @rolldown.rs based compiler in a WebContainer, and updates the editor instantly!
Check it out! surimi.dev/playground
Compile times are bit slower than locally tho.
Also
- has type-hint support
- you can install new packages
- ...
It runs the @rolldown.rs based compiler in a WebContainer, and updates the editor instantly!
Check it out! surimi.dev/playground
Compile times are bit slower than locally tho.
Also
- has type-hint support
- you can install new packages
- ...
October 15, 2025 at 10:39 AM
The first version of the 🍣 surimi playground is live!
It runs the @rolldown.rs based compiler in a WebContainer, and updates the editor instantly!
Check it out! surimi.dev/playground
Compile times are bit slower than locally tho.
Also
- has type-hint support
- you can install new packages
- ...
It runs the @rolldown.rs based compiler in a WebContainer, and updates the editor instantly!
Check it out! surimi.dev/playground
Compile times are bit slower than locally tho.
Also
- has type-hint support
- you can install new packages
- ...
Oh, and yes: You can do everything typescript can do. Import externals, if conditions... save selectors to variables and share them across files.. mixins...
0 runtime as well. I made a vite plugin for it!
0 runtime as well. I made a vite plugin for it!
October 1, 2025 at 9:02 AM
Oh, and yes: You can do everything typescript can do. Import externals, if conditions... save selectors to variables and share them across files.. mixins...
0 runtime as well. I made a vite plugin for it!
0 runtime as well. I made a vite plugin for it!
It has full typescript hinting support as well.
You see what CSS will be built *inside* the type hints.
You see what CSS will be built *inside* the type hints.
October 1, 2025 at 8:53 AM
It has full typescript hinting support as well.
You see what CSS will be built *inside* the type hints.
You see what CSS will be built *inside* the type hints.
Oh no, it's really happening
October 1, 2025 at 8:51 AM
Oh no, it's really happening
I love this! On blueview.app, you can see who recently interacted with you, and much more insightful data!
Shout out! Don't want to tag all these busy people though :)
Thanks for making this @srsholmes.com
Shout out! Don't want to tag all these busy people though :)
Thanks for making this @srsholmes.com
September 29, 2025 at 8:28 AM
I love this! On blueview.app, you can see who recently interacted with you, and much more insightful data!
Shout out! Don't want to tag all these busy people though :)
Thanks for making this @srsholmes.com
Shout out! Don't want to tag all these busy people though :)
Thanks for making this @srsholmes.com
You probably knew that a typescript enum, when compiled, adds extra runtime code.
But did you also know, that a `const enum` does not?
Might be worth using instead of string literals!
But did you also know, that a `const enum` does not?
Might be worth using instead of string literals!
September 9, 2025 at 12:28 PM
You probably knew that a typescript enum, when compiled, adds extra runtime code.
But did you also know, that a `const enum` does not?
Might be worth using instead of string literals!
But did you also know, that a `const enum` does not?
Might be worth using instead of string literals!
Just discovered the "Xerox Alto" UI in the latest blog post by @bradfrost.com and it looks so damn good.
This aesthetic is exactly what I was going for with my website.. but I might have deviated too far.
Also, it's a brilliant blog post, check it out at bradfrost.com
This aesthetic is exactly what I was going for with my website.. but I might have deviated too far.
Also, it's a brilliant blog post, check it out at bradfrost.com
August 29, 2025 at 11:53 AM
Just discovered the "Xerox Alto" UI in the latest blog post by @bradfrost.com and it looks so damn good.
This aesthetic is exactly what I was going for with my website.. but I might have deviated too far.
Also, it's a brilliant blog post, check it out at bradfrost.com
This aesthetic is exactly what I was going for with my website.. but I might have deviated too far.
Also, it's a brilliant blog post, check it out at bradfrost.com
I updated my website! It now has:
- prettier, colorful dark scheme (below)
- a CV page
- a new blog post (for my CSS nerds)
- better accessibility, progressive enhancements etc.
- automatically generated PDFs (like the CV page).
Check it out at janis.me and tell me what theme you like the most!
- prettier, colorful dark scheme (below)
- a CV page
- a new blog post (for my CSS nerds)
- better accessibility, progressive enhancements etc.
- automatically generated PDFs (like the CV page).
Check it out at janis.me and tell me what theme you like the most!
August 28, 2025 at 6:29 PM
I updated my website! It now has:
- prettier, colorful dark scheme (below)
- a CV page
- a new blog post (for my CSS nerds)
- better accessibility, progressive enhancements etc.
- automatically generated PDFs (like the CV page).
Check it out at janis.me and tell me what theme you like the most!
- prettier, colorful dark scheme (below)
- a CV page
- a new blog post (for my CSS nerds)
- better accessibility, progressive enhancements etc.
- automatically generated PDFs (like the CV page).
Check it out at janis.me and tell me what theme you like the most!
It's not easy to keep up with css features..😅 even though they are sooo great!
I loved taking the 2025 state of CSS survey. Give it a shot!
survey.devographics.com/en-US/survey...
I loved taking the 2025 state of CSS survey. Give it a shot!
survey.devographics.com/en-US/survey...
June 23, 2025 at 4:30 PM
It's not easy to keep up with css features..😅 even though they are sooo great!
I loved taking the 2025 state of CSS survey. Give it a shot!
survey.devographics.com/en-US/survey...
I loved taking the 2025 state of CSS survey. Give it a shot!
survey.devographics.com/en-US/survey...
* specifically, using `comlink` by @surma.dev et. al. to create multiple instances of a class within the worker. That way, you can 'spawn' them easily.
And while we're at it: While digging through the source of squoosh.app, I found this gem of an example image:
(@jakearchibald.com sorry)
And while we're at it: While digging through the source of squoosh.app, I found this gem of an example image:
(@jakearchibald.com sorry)
June 17, 2025 at 9:19 AM
* specifically, using `comlink` by @surma.dev et. al. to create multiple instances of a class within the worker. That way, you can 'spawn' them easily.
And while we're at it: While digging through the source of squoosh.app, I found this gem of an example image:
(@jakearchibald.com sorry)
And while we're at it: While digging through the source of squoosh.app, I found this gem of an example image:
(@jakearchibald.com sorry)
Super hyped about an, admittedly, very tiny library:
handlery.dev let's you add awesome class-based event handlers for all kinds of emitters (like emittery, node's EventEmitter etc.) With the magic of decorators!
Now that TC39 decorators are stage 3 and moving forwards, let's start using them!
handlery.dev let's you add awesome class-based event handlers for all kinds of emitters (like emittery, node's EventEmitter etc.) With the magic of decorators!
Now that TC39 decorators are stage 3 and moving forwards, let's start using them!
June 12, 2025 at 6:13 PM
Super hyped about an, admittedly, very tiny library:
handlery.dev let's you add awesome class-based event handlers for all kinds of emitters (like emittery, node's EventEmitter etc.) With the magic of decorators!
Now that TC39 decorators are stage 3 and moving forwards, let's start using them!
handlery.dev let's you add awesome class-based event handlers for all kinds of emitters (like emittery, node's EventEmitter etc.) With the magic of decorators!
Now that TC39 decorators are stage 3 and moving forwards, let's start using them!
Anyone in the threejs community will find it comical that this is a screenshot from today.
June 12, 2025 at 4:59 AM
Anyone in the threejs community will find it comical that this is a screenshot from today.
I'm nearly there!
(I need to improve accessibility by making more space for small buttons on mobile, will figure out how that can fit in the website theme. I don't want to make it more complex by adding things like floating menus)
(I need to improve accessibility by making more space for small buttons on mobile, will figure out how that can fit in the website theme. I don't want to make it more complex by adding things like floating menus)
June 4, 2025 at 8:02 AM
I'm nearly there!
(I need to improve accessibility by making more space for small buttons on mobile, will figure out how that can fit in the website theme. I don't want to make it more complex by adding things like floating menus)
(I need to improve accessibility by making more space for small buttons on mobile, will figure out how that can fit in the website theme. I don't want to make it more complex by adding things like floating menus)
Got a new thing going on!
surimi.dev - to make SCSS libraries safer, with proper error messages. Feedback very much wanted!
github.com/janis-me/surimi
surimi.dev - to make SCSS libraries safer, with proper error messages. Feedback very much wanted!
github.com/janis-me/surimi
May 29, 2025 at 8:25 PM
Got a new thing going on!
surimi.dev - to make SCSS libraries safer, with proper error messages. Feedback very much wanted!
github.com/janis-me/surimi
surimi.dev - to make SCSS libraries safer, with proper error messages. Feedback very much wanted!
github.com/janis-me/surimi