AOT compilation
By default, the only thing that is running as WebAssembly in a Blazor WebAssembly app is the runtime. Everything else is ordinary .NET assemblies running on the browser using a .NET Intermediate Language (IL) interpreter implemented in WebAssembly.
I was not too fond of that when I started playing around with Blazor; it felt wasteful to run everything using IL instead of something the browser would understand natively. Then, I thought the browser was running the same code as I would on the server. The same code in the browser! That is pretty amazing!
However, we have the option to compile directly to WebAssembly; this is called ahead-of-time (AOT) compilation. It has a downside: the app download size will increase, but it will run and load faster.
An AOT-compiled app is generally twice the size of an IL-compiled app. AOT will take the .NET code and compile that directly into WebAssembly.
AOT does not trim managed assemblies, and more code is needed...