When I originally wrote the solver, it ran completely inside the browser with JavaScript. The main downside of this approach was that users had to download the massive dictionary file (~3mb uncompressed in Trie format) before the application could deliver results.<p>Since then, I ported the solver logic to Node and set it running on one of my boxes. It's pretty quick at solving, but the scoring algorithm has a rare bug - which I'm still hunting - that causes the score to be off by a point.