FYI I tried building something similar running completely client-side a little while ago; I did not get very far TBH: http://users.telenet.be/bull/sudoku/
As for solving the sudoku: that's the easy part:
https://github.com/ToJans/learninghaskell/blob/master/0003Su...