Credits

Much of this website was built very quickly using Rails' scaffold generator.

The most complex part of the website is the authentication system, set up just for a single user, using WebAuthn. I did this mostly "by hand" rather than using a library, because I wanted to understand how it works. I used the WebAuthn Guide as a reference. Additionally, MDN's Web Authentication API documentation was very helpful. The diagrams in the WebAuthn spec were particularly useful for understanding the data structure of the weird, binary blobs that WebAuthn uses during Attestation.

I had additional, vital help from @pc@rrier.fr who helped me get passkey support working in 1Password.

My advice for anyone trying to implement WebAuthn is to read very carefully. There are many small steps that are mentioned in the spec and guides that are easy to miss.