brickwall

loading...

now in early access

a wall
between your site
and bots

the swiss army knife of bot prevention and verification.

drop in one script tag. brickwall handles the rest with proof-of-work challenges, and signed tokens. static-site and dynamic-site friendly. extremely easy-to-use and customizable to fit your needs.

one line. that's it. that's literally it.
<script src="https://brickwall.onrender.com/js/protect.min.js" data-site="YOUR_KEY"></script>
yoursite.com
live request log
United States
human visitor — passed in 1.2s
passed
Netherlands
headless browser detected
blocked
Germany
returning visitor — token valid
passed
!
Unknown
vpn / datacenter ip flagged
flagged
United Kingdom
googlebot — crawler allowed
crawler
how it works
four steps, zero backend

static sites, jamstack, single-page apps — if it serves html, brickwall works.

01
visitor arrives

the script checks for a valid signed token in localStorage. already verified? pass through instantly — nothing shown, no delay.

02
challenge page

no valid token — visitor is redirected to a challenge page. browser fingerprinting + a short proof-of-work puzzle. under two seconds for real users.

03
signed & returned

pass the challenge, receive a signed jwt. bounced back to where they came from with the token in the url. stored locally, lasts 24h by default.

04
abuse detection

repeated failures, abnormal timing, known bad ip ranges — all handled server-side. your site sees none of it.

features
built to stay out of the way

no sdk, no complicated setup. just a script tag and a dashboard.

tiny footprint

client script is under 2kb. it won't touch your lighthouse score.

🔐
signed tokens

verification state lives in a signed jwt. your site never calls a database.

🚫
rate limiting

ip-level limits built in. bots hammering the challenge endpoint get progressively longer timeouts.

🧩
zero backend needed

github pages, netlify, s3, cloudflare — anything that serves html works.

👻
invisible to humans

verified visitors pass silently every time. no captchas, no checkboxes, no hoops.

📊
request log

every attempt logged — country, detection type, pass/block status. real-time.

🔑
multiple sites

manage multiple sites from one dashboard. each gets its own key, log, and settings.

⚙️
per-site settings

allow crawlers, block tor, flag vpns. set token ttl. toggle per site.

🪶
open source

mit licensed. self-host it, fork it, read every single line.

edge cases
the messy stuff, handled

real traffic is complicated. here's how brickwall handles the edge cases.

scenariowhat happensuser sees anything?
search engine crawlers
googlebot, bingbot, etc.
allowed if enabled, crawlers auto-bypass the challenge and get a token immediately. logged as "crawler".no
tor exit nodes
known tor ip ranges
blocked if tor blocking is on, ip is denied before the challenge. shows an access denied message.access denied page
vpn / datacenter ips
known hosting asns
flagged logged with detection type. configurable to block outright or just flag.challenge (not blocked by default)
headless browsers
puppeteer, playwright, etc.
blocked navigator.webdriver check and phantom/nightmare artifact detection on the challenge page.verification failed page
javascript disabled
noscript users
graceful noscript fallback message explains that js is required.noscript message
challenge timeout
user walks away mid-challenge
expires challenge ids expire after 2 minutes. user is re-challenged cleanly on retry.no
instant solve
pow solved in <200ms
blocked timing check flags suspiciously fast solves. a human can't solve it that fast.verification failed page
token expired
returning visitor, ttl elapsed
re-challenged expired token cleared, visitor sent back through the challenge flow.challenge page (transparent)
pricing
free while we're in beta

one plan, no surprises. usage-based pricing coming post-beta.

$0
free during early access
  • unlimited sites
  • up to 50,000 verified visitors / month
  • full request log (last 500 per site)
  • all edge case handling included
  • token signing & server-side verification
  • per-site settings & key rotation
  • early access = help shape what it becomes

no mailing lists. no sales calls. register and you're in.