Revelations

Written by on May 14th, 2023.

The problem

My website is static, currently hosted by CloudFlare Pages. It's fast, it works great, and it's free. But say I want visitors to be able to leave me a message. You can't do that with a static website. Over the years I used various solutions:

CloudFlare websites can already automatically protect email addresses on websites served through its CDN via a feature called Scrape Shield. But that only works for email addresses, and I have more than that in mind.

The latest solution

CloudFlare Workers are free - within some limits -, as well as their Turnstile user-friendly captcha (no interaction required in most cases), and a handy place to store small amounts of data, KV.

Putting this all together, and you get Reveal, a simple worker script that will read a Value from the Key/Value store if the visitor provided a valid Turnstile challenge response.

It's fairly easy to setup and use, it's free provided you don't have lots of traffic (or attackers), and it doesn't degrade the user experience. For a live demo, head to my contact section.

Thanks to the configuration options and KV store, a single worker instance can be used to serve different revelations. Making it perfect if you have a couple of static websites or multiple pieces of content you don't want to see scraped. Another use could be to make some small parts of your website dynamic, say, quote of the day.

Anyways, if you do use it, feedback is appreciated!