Amiga games used to be written such that they would boot the computer from floppy.
You could ignore it and access the hardware directly, if you wanted, and many games did, but you could also use the OS if you wanted to.
The default bootloader would basically just say "launch the default shell and tell it to load the startup shell script file".
z/TPF is also a unikernel so Visa when processing every transaction.
Transaction Processing Facility: A Guide for Application Programmers by R. Jason Martin is a decent book I'd recommend on the subject.
Both of these now live in Docker containers along with a whole Alpine system. I'm correct to believe that unikernels could change this, right?
If a lower level web toolkit is sufficient then ocaml's cohttp  library has been available on mirage for quite some time now.
Sadly cohttp is (or was) performing so bad that it is kind of at odds with using it on a unikernel.
This one is quite a bit faster:
Seems OCaml/Mirage is the pretty far ahead in typed web dev using a unikernel.
So can apps using a RustyHermit use the std lib, or should all be no_std?