Archaeology
Christmas break 2020 was a good time to dig through old files. Over the years Emily and I had spread digital detritus across Google Photos, Dropbox, and external hard drives — and it was time to do some early spring cleaning. Mostly we were after old pictures and we weren't disappointed. But, I also found some old code I had written.
In the months leading up to our wedding, Emily was finishing school and I had just graduated. This meant that she had evening homework and I didn't, so I had to find things to do. One of the things on my list was to make a crossword puzzle for our wedding reception guests featuring us-themed clues and answers. I don't recall why at the time, but I chose to make my own algorithm for packing and overlapping words into a crossword puzzle, and apparently also chose to preserve it on an old hard drive. I enjoyed reading through the file. It was a couple hundred lines of pure ES5 code that still ran just fine on my node install from the future — but Javascript has changed a lot since 2014.
The Idea
For fun, I decided to rewrite the algorithm in nice clean ES6 and see how different it ended up being. It turned out very different, but I think most of the differences can be attributed to how I have changed rather than how Javascript has. There was plenty of ES6 goodness to be sure though. I even got to throw in a generator function.
As I was testing performance, I decided to compare my work to other online crossword generators. To my surprise, there weren't many to choose from. Maybe that's why I had written my own back in 2014. And those that I did find were either slow to use or had a paywall! Unexpected.
I'm not particularly passionate about crossword puzzles, but I do like clean web apps and I suspected that there was room for improvement here. I'd been itching for a side project for a while anyway, so I decided to give it a shot. I also had a been looking for an opportunity to learn a couple things:
- SEO is dark magic to me. I had recently encountered SEO challenges at work, and wanted to learn more. Could I get anyone to find a new crossword puzzle maker web app on Google? Beyond SEO, could I get anyone to find and use it at all?
- Payments and self-serve subscription portals are something I've been planning to experiment with at work. Why not get a head start? Apparently some people who build crossword puzzles are willing to pay to do so. I've heard Stripe is easy to set up, but have never had the chance.
5 Months Later
After an initial flurry of work over Christmas break, I slowed to a couple hours each week on the crossword app. I've chipped away at it for a while now, and I'm getting close to a something usable which you can try for yourself here:
I tried to limit the scope of the app so I could focus on SEO and payments, but couldn't resist diving into a few technical rabbit holes. I plan to share about those rabbit holes and the rest of the build in future posts, so stay tuned.