It's been a while, I don't have much to say, other than I recently updated some of my older projects:

💥PoW! Bot Deterrent

  • About a year ago, I had hastily modified this to require all the static assets to be served from the same domain, in order to satisfy a Content Security Policy (CSP).
  • Unfortunately, this broke 3rd party embedding use cases including my blog comments system.
  • I also forgot to fully update the docs and example project, so it became a lot less usable. Sorry about that.
  • I started getting bug reports about GrapheneOS users not being able to pass the bot deterrent.

As of now all those issues should be fixed.

Browser Compatibility Issue (WebAssembly) 1. Click the "Site Settings" Button to the left of the URL. It looks like two toggle switches. 2. Click on "Permissions" 3. Enable "JavaScript JIT"   JavaScript Just In Time compilation is disabled on some privacy-focused web browsers, like on GrapheneOS. This site requires it for the hash function we use to stick it to the AI scraper bots.   Sorry for the inconvenience.  Hopefully they will run out of money soon and leave us alone.

I changed it so now there are two ways to use it, either with everything on the same domain, data-pow-bot-deterrent-static-assets-path, or with the static assets downloaded from the separate bot-deterrent domain, data-pow-bot-deterrent-static-assets-cross-origin-url.

I also updated all of my apps that use the 💥PoW! Bot Deterrent:

I publish multi-architechture docker images for each of these to docker hub, so if you want to use the binaries that way, you can:

https://hub.docker.com/r/sequentialread/pow-bot-deterrent

https://hub.docker.com/r/sequentialread/comments

https://hub.docker.com/r/sequentialread/picopublish

https://hub.docker.com/r/sequentialread/pow-bot-deterrent-rp/tags

Comments