realtime collaborative crosswords

try it out · read the code

I like crosswords.
My mum likes crosswords.
My mum and I like to complete crosswords together.
My mum and I live in different cities.

Enter: Colluder – a realtime collaborative crossword website that allows you to complete puzzles with friends all over the world! Create a puzzle, share the link and get solving!

This site has a target audience of my mum and me, and as a result is very rough and ready. It is tested to be 100% accessible, but only to those 2 people. If you use the site, get in touch. I'd love to hear about how you use it and any ideas you have!

I wrote the basic form of Colluder in a day. To achieve this I used vanilla HTML, CSS and JavaScript with Pocketbase as the backend.

To make things easier on myself, the data structures were very naive: a crossword had a list of across and down clues and a collection of squares. Each square stored an x, y coordinate and a letter from user input.

When the app ran, it drew the squares, figured out how to number the across and down words, then applied that numbering scheme to the clues. This sounds like a lot of work but made crossword creation significantly easier, since the user could just draw the crossword and write out a list of clues.

As I added more complicated features, I began to regret these choices, but I've been reading a great deal about the benefits of throw-away systems recently so pressed on undeterred. I created a new creation system that did more of the work upfront: squares are numbered as you draw and clues are numbered and filled with a sane length default. This has resulted in less janky code and better peace of mind. A win-win.