Really good entry. I think it's crazy that you managed to do this without an engine. I wouldn't have known if you didn't say it, physics are awesome and I can't explain to myself how you achieved that.
The sound effects are cool, not saturated to be annoying and not scarce that it feels silent.
Graphics-wise, the characters are cute, my favorite was the goblin. The darkness achieves the ambience of mystery and terror around the portal, and it's easy enough to recognize threats, but also leaves room to not notice some of them in the darkness which kept me on my toes.
In terms of gameplay, I really like that the speed of my movement depends on the direction I'm facing. I think that most of the games in this genre have you perpetually running backwards to shoot enemies, but this simple change forces me to change strategies between running backwards to kill monsters, and then sprinting back to get the coins before they disappear (at first, being unable to get the coins was frustrating but I ended up loving the mechanic once I got better at the controls). I like that the upgrades are varied and random, made every playthrough different.
Something that I think could improve the feeling of the game, is to have some graphics for the ground. Since the movement speed changes with the direction I'm facing, at first I wasn't sure if I was falling a bit everytime I looked a different direction, it took me a while to realize that it was only the speed changing. Not a big deal at all, but I think a bit of graphics for the ground would help "ground" the player in the space they're moving, because the solid color gives a "floating" feeling in this case.
My favorite detail about the game is knowing that you did all of this with Web Dev tools, it's amazing.