Back in January 2012, I wrote 200 lines of C++ code to load a dictionary, store it in a Trie structure, read up to seven letters from console input, and traverse the Trie to find all the words that could be created from the provided letters. I did it for 200 PLN (about 60 USD at that time), and it was my first money earned through programming (assuming that beer is not a currency).
I enjoyed working on it and wanted to enhance it with some visuals to take it to the next level. So, I created a simple Windows Forms project in C#, added support for "blank" characters, and displayed the results grouped by word length. I left it like that.
Some time later, I became familiar with WPF and thought it would be fun to enhance the C# solver with a visual board input. This would provide the solver with information to find the move that would yield the most points. In September 2014, I started working on a new C# WPF project, but I didn't get far with it.
After gaining experience with JavaScript, I decided to tackle the challenge once again. I started a new project in February 2017, using React on the front end and Node.js on the back end. On September 13, 2017, five and a half years since the beginning, scrabble-solver@1.0.0 was released. And I saw that it was good.
It reached version 1.4.0, where I added support for en-US and en-GB locales, created a mini tutorial, and kept the dependencies up to date (e.g. upgraded React from 15 to 16).
Frontend development has changed, and I've learned a few things - it was time for scrabble-solver@2.0.0. In 2019, I began working on a new version. However, due to many distractions, the work took around two years to complete. Nevertheless, here it is: a shiny, state-of-the-art frontend app, completed in January 2021 - nine years after the first project.
A piece of history, available at http://scrabble-solver-v1.kamilmielnik.com/.