diff --git a/CONTACT_BOT_DETECTION.md b/CONTACT_BOT_DETECTION.md index 731e6593..f208f756 100644 --- a/CONTACT_BOT_DETECTION.md +++ b/CONTACT_BOT_DETECTION.md @@ -7,4 +7,35 @@ If we still have issues: https://www.cloudflare.com/application-services/products/turnstile/ https://cloud.google.com/security/products/recaptcha +## Quick Comparison +| Feature | Google reCAPTCHA v3 | Cloudflare Turnstile | +| :----------------- | :--------------------------------------------------- | :-------------------------------------------------- | +| **User Friction** | Totally invisible; never shows a puzzle. | Mostly invisible; might show a small checkbox. | +| **Privacy** | High data collection (cookies, Google account data). | Privacy-focused; no cookies or cross-site tracking. | +| **Bot Detection** | High accuracy via massive Google dataset. | Emerging; may struggle with very advanced bots. | +| **Free Tier** | Up to **10,000 checks/month**. | **Unlimited** checks on the free tier. | +| **Implementation** | Returns a 0.0–1.0 score; you decide what to block. | Simple Pass/Fail token verification. | + +### Google reCAPTCHA v3 + +reCAPTCHA v3 is "invisible" because it doesn't interrupt the user. Instead, it monitors behavior (mouse movements, clicks) to give you a **risk score** from 0.0 (bot) to 1.0 (human). + +- **Pros**: + - **Proven Accuracy**: Leverages Google's vast intelligence to identify sophisticated bots. + - **Granular Control**: You can set different "strictness" levels for different actions (e.g., a login vs. a contact form). +- **Cons**: + - **Privacy Concerns**: It tracks users across the web using Google cookies, which often requires a [GDPR consent banner](https://friendlycaptcha.com/insights/recaptcha-v3/) in the EU. + - **Limited Free Tier**: As of 2024, Google cut the free limit to 10k/month, which can be expensive if you get a sudden surge of bot traffic. + +### Cloudflare Turnstile + +Turnstile is Cloudflare's privacy-first alternative. It uses "browser challenges" (like proof-of-work) that happen automatically in the background without needing a Google account. + +- **Pros**: + - **Privacy-Friendly**: Does not use tracking cookies and is designed for easy GDPR/CCPA compliance. + - **Better Performance**: The script size is much smaller (~60 KB vs ~180 KB), which helps your site load faster. + - **Truly Free**: There are no monthly limits on the number of assessments you can run. +- **Cons**: + - **Detection Gaps**: Some research suggests it may only catch about 33% of sophisticated bots compared to reCAPTCHA's ~69%. + - **VPN/Proxy Issues**: Because it relies on network signals, it may occasionally block legitimate users using VPNs or privacy browsers. diff --git a/src/components/Pages/About/index.astro b/src/components/Pages/About/index.astro index 39813cb8..56b05f21 100644 --- a/src/components/Pages/About/index.astro +++ b/src/components/Pages/About/index.astro @@ -3,7 +3,6 @@ import Contact from '@components/CallToAction/Contact/index.astro' import HeadingAnchor from '@components/Layout/HeadingAnchor/index.astro' import Button from '@components/Button/index.astro' import Icon from '@components/Icon/index.astro' -import { getSiteUrl } from '@lib/config' export type Props = { content: { @@ -59,7 +58,7 @@ const { content } = Astro.props /** Icons per expertise card, matched by index to content.expertise.itemlist */ const expertiseIcons = ['cloud', 'document', 'gear', 'globe', 'wrench', 'chart'] -const resumeLink = `${getSiteUrl()}/resume` +const resumeLink = '/resume' ---