Brute force
.
Most of the work was making the puzzle piece representation, and how they were placed, detecting collisions. Once I had a way to rotate, flip and insert pieces, I just started in the top left and tried to place pieces until a combination didn’t work. Then I would try the next one. If I couldn’t get pieces 1,2,3,4 in that order, then I didn’t try any combinations that started with 1,2,3,4 (early exit criteria).
This was all in python, and I printed the solutions to the terminal. But generally, it was quick (a few minutes could come up with all solutions for every day).
If I made a website for people to cheat and get a solution, I would probably just cache the results from the python script and include that in the website data. Then the web site would need to just have a place to pick a date, and present a solution.