I made
an anagram generator. Well, I started making one, it's still pretty rough and I'm not sure if I'll ever polish it. Some notes:
* It should generate all anagrams for the given input exactly once. It should generate all permutations of multi-word anagrams.
* It is written in TypeScript so it runs locally on the user's machine. That's why I didn't add any restrictions on input length. However...
* It makes heavy use of sub-result caching in hopes of being fast. Unfortunately this also means that it will crash on long inputs eventually as memory runs out.
* It takes about 600 ms to generate all options for my first and last name (12 letters). If I add my middle name (5 letters), it crashes due to the above.
* It is still very difficult to find fun anagrams with it. Spying on some other generators online, I found that it would be smart to first generate anagrams with the least number of words as those are usually more interesting than ones with many small words.
* It might be good to use web workers to keep the UI responsive while generating the results. I might try that at some point as I've never used them before.
I joined this forum to publish small unpolished projects like this, hoping that the first question won't be "what's the use of this?". I hope someone finds this one even a tiny bit entertaining!