I have thought about doing this via PhaserJS in the past, but it just never clicks for some reason. I feel like my brain is missing some important component for making game design make sense.
I wrote some tutorials for making "grid-based" games that might give you some inspiration (https://ganbaru.games/writing-grid-based-games/) It's actually kind of crazy how many different types of games work with this approach.