Marvin Hagemeister
@marvinh.dev
2.1K followers 140 following 160 posts
I build simple and fast things. Part of Preact team.
Posts Media Videos Starter Packs
marvinh.dev
Yeah, you can find hacks to fix that in every meta framework based around vite. They all involve prefetching the module in configureServer when going to a route.
marvinh.dev
I keep coming back to this one post in my draft folder that's more about the zen of coding, simple code, how it relates to performance, how performance is not exclusive to code and more stuff like that.

I'm not sure if this is something that would be interesting to read about.
marvinh.dev
My favorite food place in my city just closed down :(
marvinh.dev
I hope that the upcoming full bundle mode in rolldown will allow us to ditch optimizeDeps in vite. Would make so many things simpler!

I'm eagerly awaiting to give the full bundle mode a go once it's out.
marvinh.dev
I remember this time. It was such a confusing move and the following I/o presentations were the most depressing that came out of that.
marvinh.dev
This is such a good approach towards tracing of running applications! I always look forward to new go blog posts.
golang.org
Go @golang.org · 12d
“Flight Recorder in Go 1.25” by Carlos Amedee and Michael Knyszek — https://go.dev/blog/flight-recorder

#golang
marvinh.dev
Making chains of middlewares type-safe seems to require a bit of dancing around with types.

See github.com/microsoft/Ty...
Type for a middleware function that uses a list of 10 generic arguments to make it possible to chain a type through middleware functions because TS lacks native functionality to do so.
marvinh.dev
Unwritten rule:

Deep technical programming topics
🤝
Blog with barely any CSS
Reposted by Marvin Hagemeister
jovidecroock.com
Not sure what's been happening to the NPM downloads of Preact but we've been going parabolic these past few weeks. I know that downloads don't indicate much but always fun to look at a project you've been working on for 7 years gain popularity

npmtrends.com/@angular/cor...
A chart showing 4 lines, these represent npm libraries and their downloads.

We can see at the bottom angular core have a steady 4m weekly downloads over the last year, then going up we see vue/runtime-dom evolving from 4 million to the current 6million. Going even more up we see the vue library (vue 2) going from 6Million to 8Million and dropping back to 7Million.

At the top we see the Preact library starting the year around 6M and then now at the end going parabolic to 10million weekly downloads
marvinh.dev
Disagree here. Anything related to doing RSC faces the exact same issues.
marvinh.dev
Maybe I should give parcel a go. I haven't played with its plugin API so far.
marvinh.dev
The environment API is a step in the right direction, but it's far from being enough. I've been using it exclusively for the past month and it solves none of the issues described in my previous post.
marvinh.dev
I'm hoping that these things can be addressed in vite. Right now it feels a bit too much like fighting against it.
marvinh.dev
No ssr css modules

Like the files are transformed correctly but you need to manually walk the module graph to collect them and make them available for the dev server. It's doable, but meh.
marvinh.dev
Constant plugin if(dev)

There are slight differences in dev and build mode in vite. You always have to be aware of them which adds mental overhead. Especially, when all you want to do is just transform files.
marvinh.dev
No dynamic entry points

Vite assumes that you would know all entry points upfront. This is not the case with modern frameworks.

Example: Server -> imports markdown -> markdown imports browser JS entries.

Doing this in vite is quite the challenge.
marvinh.dev
No non-js modules

It's the same like with webpack back in the day: everything like css files etc needs to be put into js to make vite's HMR work. This means you get a FOUC by default.

You have to extract the css back out of js again and inject it on the fly until vite kicks in on the client.
marvinh.dev
I'm not sure if vite is ready for 2026.

The internals seem to be tailored for SPAs whereas frameworks of today need more of a general purpose asset transformer across multiple environments.

- no non-js modules
- no dynamic entry points
- constant plugin if(dev) branching
- no ssr css modules
Reposted by Marvin Hagemeister
jviide.iki.fi
pnpm v10.16.0 adds "minimumReleaseAge", a setting for defining how long a version has to have been published before pnpm will install it.

A nice countermeasure against accidental installs of short-lived compromised packages before they get taken down. Not a 100% fix, but a great additional step!
Release pnpm 10.16 · pnpm/pnpm
Minor Changes There have been several incidents recently where popular packages were successfully attacked. To reduce the risk of installing a compromised version, we are introducing a new settin...
github.com
marvinh.dev
Yup, Volar is a great library for the landscape of today. It still needs to do quite a bit of messing around with TS to make stuff work. My hope is that we can reduce that part with better foundations.
marvinh.dev
@jakebailey.dev would love to hear your thoughts on this. A lot of framework folks are exploring SFCs or other custom template languages, but getting TypeScript editor integration is a bit of a hassle at the moment.
marvinh.dev
That sounds like something we need to fix. Env wars should work out of the box.
marvinh.dev
The builder way will be supported going forward. Right now there is no reason for us to drop it. I don't wont to strongly tie fresh to any particular bundler to avoid vendor lock in.