A really interesting and well-made game!
I really liked the idea of having to make contact with your opponent in order to regain your life, but I'd have liked to see this exploited a little more. It's especially with the first boss that we experience this mechanic, and even then it's very difficult to make contact as we're overwhelmed by attacks that invite us to use our dash away from the boss ^^'.
All the same, I had a lot of fun playing the game, and apart from this little feedback, the bosses are very well designed and a lot of fun to face.
Also, maybe it's just me, but I tended to want to press the “J” key when I was already pressing the “K” key. I think it's great that you can't do both at the same time, but perhaps it lacks a beep to let you know that you can't do both at the same time.
Anyway, congratulations on a great game :D