The only issue I noticed was there seems to be some lag on printing some of the results. Maybe memoizing some repetitive functions might help, if you're not already.
Nice work!
Are you thinking of doing a daily word? Or just a random dictionary word each time you refresh?
TBH I've had it up as-is for a decade as a classical web app, but just converted it to a frontend-only app to eliminate most hosting costs.
Similar idea, different interface: https://news.ycombinator.com/item?id=44189814
Unfortunately, I just converted it to a frontend-only app to eliminate hosting costs, so I have no good location to keep tracking these stats.
Theoretically, "Oxford English Dictionary estimates that there are around 171,476 words currently in use in the English language", the log2() of which is around 17.38 - I have no historical data for 'volatile'
It's a hint to tell you the word starts with "s", but since you didn't narrow it down to "su..." or "sv..." it's not giving you more hints.
Once you narrow it down further, say, "sub..." and "sun..." it'll highlight the known prefix "su"
Suppose the target word is before tin, but after timorous. Midword only displays "ti" for the known prefix. But it should display "tim" - there is no string that could start with "tin..." but sort before the string "tin".
(Another bug is that if you take a hint that would reveal the entire word, the site doesn't display what the word was.)
Hence the word "Mid".