1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> 6<meta name="theme-color" content="#0B0D14"><title>Redactopia â Catch sensitive data before you send it</title> 7<meta name="description" content="Redactopia. A local privacy extension for Chrome and Edge. Catches sensitive data in AI chat prompts before you send. Redacts elements, text, and screen regions on any page for screenshots and screen-shares." /><link rel="stylesheet" href="styles.css?v=113"> 8<link rel="icon" type="image/svg+xml" href="/favicon.svg"> 9<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 10<link rel="canonical" href="https://redactopia.com/"> 11<meta property="og:type" content="website"> 12<meta property="og:site_name" content="Redactopia"> 13<meta property="og:title" content="Redactopia â Catch sensitive data before you send it"> 14<meta property="og:description" content="Catches sensitive data in AI chat prompts before you send. Redacts elements, text, and screen regions on any page for screenshots and screen-shares. All local."> 15<meta property="og:image" content="https://redactopia.com/og-image.png"> 16<meta property="og:url" content="https://redactopia.com/"> 17<meta name="twitter:card" content="summary_large_image"> 18<meta name="twitter:image" content="https://redactopia.com/og-image.png">
19<script type="application/ld+json"> 20{ 21 "@context": "https://schema.org", 22 "@graph": [ 23 { 24 "@type": "Organization", 25 "@id": "https://redactopia.com/#organization", 26 "name": "Redactopia", 27 "url": "https://redactopia.com/", 28 "logo": "https://redactopia.com/apple-touch-icon.png" 29 }, 30 { 31 "@type": "WebSite", 32 "@id": "https://redactopia.com/#website", 33 "url": "https://redactopia.com/", 34 "name": "Redactopia", 35 "publisher": { "@id": "https://redactopia.com/#organization" } 36 }, 37 { 38 "@type": "SoftwareApplication", 39 "name": "Redactopia", 40 "operatingSystem": "Chrome, Microsoft Edge", 41 "applicationCategory": "SecurityApplication", 42 "applicationSubCategory": "Browser Extension", 43 "url": "https://redactopia.com/", 44 "image": "https://redactopia.com/og-image.png", 45 "description": "A local privacy extension for Chrome and Edge. Catches sensitive data in AI chat prompts before you send, and redacts elements, text, and screen regions on any page for screenshots and screen-shares. All scanning runs locally; prompts never leave your browser.", 46 "publisher": { "@id": "https://redactopia.com/#organization" }, 47 "offers": { 48 "@type": "AggregateOffer", 49 "lowPrice": "0", 50 "highPrice": "37.24", 51 "priceCurrency": "USD", 52 "offerCount": "3" 53 } 54 } 55 ] 56} 57</script>
57 58</head> 59<body> 60 61<nav class="main-nav" aria-label="Main navigation"> 62 <div class="container"> 63 <div class="nav-inner"> 64 <a href="/" class="nav-logo"> 65 <svg width="35" height="35" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 66 <defs> 67 <filter id="navGP" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="3" result="b"/><feFlood flood-color="#ff4c00" flood-opacity="0.9" result="c"/><feComposite in="c" in2="b" operator="in" result="g"/><feMerge><feMergeNode in="g"/><feMergeNode in="SourceGraphic"/></feMerge></filter> 68 <filter id="navGR1" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="11" result="b"/><feFlood flood-color="#ff4c00" flood-opacity="0.95" result="c"/><feComposite in="c" in2="b" operator="in" result="g"/><feMerge><feMergeNode in="g"/><feMergeNode in="SourceGraphic"/></feMerge></filter> 69 <filter id="navGR2" x="-80%" y="-80%" width="260%" height="260%"><feGaussianBlur stdDeviation="7" result="b"/><feFlood flood-color="#ff4c00" flood-opacity="0.4" result="c"/><feComposite in="c" in2="b" operator="in" result="g"/><feMerge><feMergeNode in="g"/><feMergeNode in="SourceGraphic"/></feMerge></filter> 70 <filter id="navGC" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="2.5" result="b"/><feFlood flood-color="#ff4c00" flood-opacity="0.9" result="c"/><feComposite in="c" in2="b" operator="in" result="g"/><feMerge><feMergeNode in="g"/><feMergeNode in="SourceGraphic"/></feMerge></filter> 71 </defs> 72 <text x="16" y="74" font-family="'Courier New',Courier,monospace" font-weight="700" font-size="36" fill="#ff4c00" opacity="0.54" filter="url(#navGP)">></text> 73 <text x="46" y="81" font-family="'Courier New',Courier,monospace" font-weight="900" font-size="57" fill="#ff4c00" filter="url(#navGR2)">R</text> 74 <text x="46" y="81" font-family="'Courier New',Courier,monospace" font-weight="900" font-size="57" fill="#ff4c00" filter="url(#navGR1)">R</text> 75 <text x="46" y="81" font-family="'Courier New',Courier,monospace" font-weight="900" font-size="57" fill="#ff4c00">R</text> 76 <rect x="93" y="50" width="21" height="28" fill="#ff4c00" opacity="1" rx="2" filter="url(#navGC)"/> 77 </svg> 78 <span>Redactopia</span> 79 </a> <ul class="nav-links" role="list"> 80 <li><a href="/" class="nav-link">Home</a></li> 81 <li><a href="guide.html" class="nav-link">Guide</a></li> 82 <li><a href="#pricing" class="nav-link">Pricing</a></li> 83 <li class="nav-has-dd"> 84 <button class="nav-dd-btn" aria-expanded="false" aria-haspopup="true">Resources <span class="nav-chevron" aria-hidden="true"></span></button> 85 <ul class="nav-dd" role="menu"> 86 <li><a href="support.html" role="menuitem">FAQ & Support</a></li> 87 <li><a href="privacy.html" role="menuitem">Privacy</a></li> 88 <li><a href="terms.html" role="menuitem">Terms of Use</a></li> 89 </ul> 90 </li> 91 </ul> 92 <div class="nav-right"> 93 <a href="https://chromewebstore.google.com/detail/redactopia-privacy-guard/jjlipfafeillppiimpgggkgglgefiiam" class="btn btn-primary btn-sm" target="_blank" rel="noopener" aria-label="Install Redactopia free on the Chrome Web Store">Install free</a> 94 <button class="nav-hamburger" aria-label="Open menu" aria-expanded="false" type="button"> 95 <span></span><span></span><span></span> 96 </button> 97 </div> 98 </div> 99 </div> 100</nav> 101 102<!-- Hero --> 103<section class="hero"> 104 <div class="container"> 105 <div class="hero-grid"> 106 <div class="hero-content"> 107 <h1>Catch what shouldn't be <em>sent</em>. Hide what shouldn't be <em>seen</em>.</h1> 108 <p>A local browser extension. On AI chats, it catches API keys, passwords, and private URLs before you press send. Anywhere else, the Visual Redactor redacts elements, text, or any screen region â for the moments you're about to screenshot or share a screen.</p> 109 <p class="hero-fineprint">100% local. Your prompts never leave your browser.</p> 110 <div class="hero-actions"> 111 <a href="https://chromewebstore.google.com/detail/redactopia-privacy-guard/jjlipfafeillppiimpgggkgglgefiiam" class="btn btn-primary" target="_blank" rel="noopener">Install free</a> 112 <a href="#how-it-works" class="btn btn-ghost">See how it works</a> 113 </div> 114 </div> 115 <div class="hero-visual"> 116 <div class="mockup-frame"> 117 <div class="mockup-header">
118 <span class="dot dot-r"></span> 119 <span class="dot dot-y"></span> 120 <span class="dot dot-g"></span> 121 <span class="mockup-title">chatgpt.com â Redactopia active</span> 122 </div> 123 124 <div class="demo-panel"> 125 <div class="demo-panel-hd"> 126 <span class="demo-lbl">Prompt</span> 127 </div> 128 <div class="hero-prompt-input" data-hero-input></div> 129 </div> 130 131 <div class="demo-panel demo-panel--matches"> 132 <div class="demo-panel-hd"> 133 <span class="demo-lbl">Matches</span> 134 <span class="demo-live"><span class="pulse" aria-hidden="true"></span> Live</span> 135 </div> 136 <div class="demo-matches-body" data-hero-redacted></div> 137 </div> 138 </div> 139 </div> 140 </div> 141 </div> 142</section> 143 144<!-- Supported Sites â logo ticker --> 145<section class="sites-strip" id="supported"> 146 <div class="container"> 147 <div class="section-header section-header--tight"> 148 <h2>Works where you already chat with AI</h2> 149 </div> 150 <div class="logo-ticker" aria-label="Supported chat services"> 151 <div class="logo-ticker-track"> 152 <!-- First copy --> 153 <div class="logo-ticker-item" data-brand="chatgpt"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.8956zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"/></svg><span>ChatGPT</span></div> 154 <div class="logo-ticker-item" data-brand="claude"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z"/></svg><span>Claude</span></div> 155 <div class="logo-ticker-item" data-brand="gemini"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81"/></svg><span>Gemini</span></div> 156 <div class="logo-ticker-item" data-brand="perplexity"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z"/></svg><span>Perplexity</span></div> 157 <div class="logo-ticker-item" data-brand="poe"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M24 12.513V8.36c0-.888-.717-1.608-1.603-1.615h-.013c-.498-.009-1.194-.123-1.688-.619-.44-.439-.584-1.172-.622-1.783l-.001.003c-.002-.014-.002-.03-.003-.044l-.001-.03a1.616 1.616 0 0 0-1.607-1.45H5.54a1.59 1.59 0 0 0-.164.008l-.055.009c-.034.004-.068.008-.102.015l-.069.017c-.028.008-.056.013-.083.022-.024.007-.045.015-.07.024-.026.01-.053.018-.08.03-.021.008-.042.02-.063.029-.027.013-.054.024-.08.038l-.059.034c-.025.015-.052.03-.077.047a.967.967 0 0 0-.061.045c-.021.015-.044.03-.065.05a1.21 1.21 0 0 0-.099.09c-.006.005-.013.01-.018.016l-.014.016a1.59 1.59 0 0 0-.094.102c-.017.02-.03.042-.046.062-.016.021-.033.042-.047.063l-.045.074-.037.062-.036.076a.682.682 0 0 0-.058.143l-.027.075-.02.074a.773.773 0 0 0-.018.078c-.006.03-.009.058-.013.088-.003.022-.008.045-.01.069-.003.022-.003.045-.004.068l-.002-.002c-.036.61-.182 1.345-.62 1.784-.496.495-1.191.61-1.69.618h-.012c-.05 0-.1.003-.147.007a1.27 1.27 0 0 0-.072.012c-.029.004-.057.007-.084.012l-.082.02-.072.018c-.026.009-.052.019-.079.027-.024.009-.048.016-.07.026-.024.01-.048.022-.072.034a.767.767 0 0 0-.072.033l-.068.04-.068.041a1.228 1.228 0 0 0-.072.054c-.018.014-.037.026-.053.04a1.627 1.627 0 0 0-.226.227c-.015.016-.027.036-.041.053a1.398 1.398 0 0 0-.054.074c-.016.022-.028.045-.041.067L.19 7.6c-.012.023-.022.047-.033.07l-.034.073c-.01.024-.017.046-.026.07-.01.027-.02.053-.027.08-.007.023-.012.047-.018.071l-.02.082-.012.084c-.003.024-.009.048-.01.
157072-.007.052-.01.106-.01.16v4.152c0 .888.717 1.609 1.603 1.616h.01c.5.008 1.196.123 1.69.618.43.43.577 1.143.618 1.746v4.13c0 .524.66.754.986.346l2.333-2.92h11.22c.861 0 1.563-.675 1.611-1.524l.001.003c.037-.61.183-1.344.622-1.783.495-.496 1.19-.61 1.689-.619h.012c.044 0 .088-.003.132-.007l.022-.001A1.613 1.613 0 0 0 24 12.513zm-3.85 1.69c-.502.503-1.215.613-1.717.619H5.566c-.501-.006-1.215-.114-1.717-.618-.408-.409-.565-1.117-.618-1.744V8.415c.052-.627.209-1.337.618-1.745.503-.503 1.216-.613 1.717-.619h12.867c.502.006 1.216.115 1.718.619.409.41.564 1.117.618 1.744v4.041c-.052.63-.209 1.339-.618 1.749zM8.424 7.99c-.892 0-1.615.723-1.615 1.615v1.616a1.615 1.615 0 1 0 3.23 0V9.604c0-.892-.723-1.615-1.615-1.615Zm7.154 0c-.893 0-1.616.723-1.616 1.615v1.616a1.615 1.615 0 1 0 3.231 0V9.604c0-.892-.723-1.615-1.615-1.615z"/></svg><span>Poe</span></div> 158 <!-- Second copy for seamless loop --> 159 <div class="logo-ticker-item" data-brand="chatgpt" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.8956zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"/></svg><span>ChatGPT</span></div> 160 <div class="logo-ticker-item" data-brand="claude" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z"/></svg><span>Claude</span></div> 161 <div class="logo-ticker-item" data-brand="gemini" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81"/></svg><span>Gemini</span></div> 162 <div class="logo-ticker-item" data-brand="perplexity" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z"/></svg><span>Perplexity</span></div> 163 <div class="logo-ticker-item" data-brand="poe" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.513V8.36c0-.888-.717-1.608-1.603-1.615h-.013c-.498-.009-1.194-.123-1.688-.619-.44-.439-.584-1.172-.622-1.783l-.001.003c-.002-.014-.002-.03-.003-.044l-.001-.03a1.616 1.616 0 0 0-1.607-1.45H5.54a1.59 1.59 0 0 0-.164.008l-.055.009c-.034.004-.068.008-.102.015l-.069.017c-.028.008-.056.013-.083.022-.024.007-.045.015-.07.024-.026.01-.053.018-.08.03-.021.008-.042.02-.063.029-.027.013-.054.024-.08.038l-.059.034c-.025.015-.052.03-.077.047a.967.967 0 0 0-.061.045c-.021.015-.044.03-.065.05a1.21 1.21 0 0 0-.099.09c-.006.005-.013.01-.018.016l-.014.016a1.59 1.59 0 0 0-.094.102c-.017.02-.03.042-.046.062-.016.021-.033.042-.047.063l-.045.074-.037.062-.036.076a.682.682 0 0 0-.058.143l-.027.075-.02.074a.773.773 0 0 0-.018.078c-.006.03-.009.058-.013.088-.003.022-.008.045-.01.069-.003.022-.003.045-.004.068l-.002-.002c-.036.61-.182 1.345-.62 1.784-.496.495-1.191.61-1.69.618h-.012c-.05 0-.1.003-.147.007a1.27 1.27 0 0 0-.072.012c-.029.004-.057.007-.084.012l-.082.02-.072.018c-.026.009-.052.019-.079.027-.024.009-.048.016-.07.026-.024.01-.048.022-.072.034a.767.767 0 0 0-.072.033l-.068.04-.068.041a1.228 1.228 0 0 0-.072.054c-.018.014-.037.026-.053.04a1.627 1.627 0 0 0-.226.227c-.015.016-.027.036-.041.053a1.398 1.398 0 0 0-.054.074c-.016.022-.028.045-.041.067L.19 7.6c-.012.023-.022.047-.033.07l-.034.073c-.01.024-.017.046-.026.07-.01.027-.02.053-.027.08-.007.023-.012.047-.018.071l-.02.082-.012.084c-.003.024-.009.048-.01.
163072-.007.052-.01.106-.01.16v4.152c0 .888.717 1.609 1.603 1.616h.01c.5.008 1.196.123 1.69.618.43.43.577 1.143.618 1.746v4.13c0 .524.66.754.986.346l2.333-2.92h11.22c.861 0 1.563-.675 1.611-1.524l.001.003c.037-.61.183-1.344.622-1.783.495-.496 1.19-.61 1.689-.619h.012c.044 0 .088-.003.132-.007l.022-.001A1.613 1.613 0 0 0 24 12.513zm-3.85 1.69c-.502.503-1.215.613-1.717.619H5.566c-.501-.006-1.215-.114-1.717-.618-.408-.409-.565-1.117-.618-1.744V8.415c.052-.627.209-1.337.618-1.745.503-.503 1.216-.613 1.717-.619h12.867c.502.006 1.216.115 1.718.619.409.41.564 1.117.618 1.744v4.041c-.052.63-.209 1.339-.618 1.749zM8.424 7.99c-.892 0-1.615.723-1.615 1.615v1.616a1.615 1.615 0 1 0 3.23 0V9.604c0-.892-.723-1.615-1.615-1.615Zm7.154 0c-.893 0-1.616.723-1.616 1.615v1.616a1.615 1.615 0 1 0 3.231 0V9.604c0-.892-.723-1.615-1.615-1.615z"/></svg><span>Poe</span></div> 164 </div> 165 </div> 166 <p class="sites-note">Coverage varies a little by browser. And you can add any other AI site yourself â <a href="#custom-ai" class="inline">more below</a>.</p> 167 </div> 168</section> 169 170<!-- Advantage Card --> 171<section class="advantage"> 172 <div class="container"> 173 <div class="advantage-card"> 174 <div> 175 <span class="label">The Redactopia Advantage</span> 176 <h3>Built for you. Not for someone else's database.</h3> 177 <p>Many prompt scanners ship your text to a server first. Redactopia doesn't. The scan happens on your machine, runs in the same instant you press send, and never leaves the page.</p> 178 <a href="#privacy" class="advantage-link">See the privacy details â</a> 179 </div> 180 <div class="advantage-stage" aria-hidden="true"> 181 <div class="advantage-visual"> 182 <span class="orbit-ring orbit-ring--outer"></span> 183 <span class="sonar-pulse"></span> 184 <span class="sonar-pulse"></span> 185 <div class="shield-icon"> 186 <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="overflow:visible;width:100%;height:auto;" aria-hidden="true"><defs><linearGradient id="shieldGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#ff4c00"/><stop offset="60%" stop-color="#e01245ee"/><stop offset="100%" stop-color="#e01245"/></linearGradient><linearGradient id="shieldInnerGrad" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="0%" stop-color="#ff4c0022"/><stop offset="70%" stop-color="#e012450b"/><stop offset="100%" stop-color="transparent"/></linearGradient><linearGradient id="goldGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#ffa066"/><stop offset="30%" stop-color="#ff4c00"/><stop offset="70%" stop-color="#b33000"/><stop offset="100%" stop-color="#ff6a2a"/></linearGradient><linearGradient id="platinumGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#ffffff"/><stop offset="40%" stop-color="#d1d5db"/><stop offset="70%" stop-color="#9ca3af"/><stop offset="100%" stop-color="#f3f4f6"/></linearGradient><linearGradient id="specularGlint" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#ffffff" stop-opacity="0.45"/><stop offset="100%" stop-color="#ffffff" stop-opacity="0.0"/></linearGradient><linearGradient id="barsGrad" x1="0%" y1="50%" x2="100%" y2="50%"><stop offset="0%" stop-color="#ffffff"/><stop offset="50%" stop-color="#ffffff"/><stop offset="100%" stop-color="#ff4c00cc"/></linearGradient><clipPath id="shineClip"><path d="M 100 25 L 175 50 L 150 140 L 100 190 L 50 140 L 25 50 Z"/></clipPath><linearGradient id="shineGrad" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#ffffff" stop-opacity="0"/><stop offset="35%" stop-color="#ffffff" stop-opacity="0.15"/><stop offset="50%" stop-color="#ffffff" stop-opacity="0.24"/><stop offset="65%" stop-color="#ffffff" stop-opacity="0.15"/><stop offset="100%" stop-color="#ffffff" stop-opacity="0"/></linearGradient></defs><g opacity="0.15"><circle cx="100" cy="100" r="95" fill="none" stroke="url(#goldGrad)" stroke-width="0.8" stroke-dasharray="1 11" opacity="0.65"/><circle cx="100" cy="100" r="90" fill="none" stroke="#ff4c00" stroke-width="0.5" stroke-dasharray="2 6" opacity="0.4"/><circle cx="100" cy="100" r="94" fill="none" stroke="#ff4c00" stroke-width="0.4" stroke-dasharray="3 4"/><circle cx="100" cy="100" r="82" fill="none" stroke="#e01245" stroke-width="0.5"/>
186<circle cx="100" cy="100" r="76" fill="none" stroke="url(#goldGrad)" stroke-width="0.8" stroke-dasharray="4 22 18 10 2 4" style="transform:rotate(317.775deg);transform-origin:50% 50%;transform-box:fill-box;"/><circle cx="100" cy="100" r="62" fill="none" stroke="#e01245" stroke-width="0.3" stroke-dasharray="3 1"/><circle cx="100" cy="100" r="48" fill="none" stroke="#ff4c00" stroke-width="0.4"/><line x1="100" y1="6" x2="100" y2="194" stroke="#ff4c00" stroke-width="0.2" stroke-dasharray="1 5"/><line x1="6" y1="100" x2="194" y2="100" stroke="#ff4c00" stroke-width="0.2" stroke-dasharray="1 5"/><polygon points="100,24 165,62 165,143 100,186 35,143 35,62" fill="none" stroke="#ff4c00" stroke-width="0.25"/></g><g><path d="M 100 25 L 175 50 L 150 140 L 100 190 L 50 140 L 25 50 Z" fill="none" stroke="#ff4c00" stroke-width="1" opacity="0.95" filter="drop-shadow(0 0 12px rgba(224,18,69,0.85)) drop-shadow(0 0 5px rgba(255,76,0,0.75))"/><path d="M 100 25 L 175 50 L 150 140 L 100 190 L 50 140 L 25 50 Z" fill="none" stroke="url(#goldGrad)" stroke-width="4.8" stroke-linejoin="round" opacity="0.8"/><path d="M 100 25 L 175 50 L 150 140 L 100 190 L 50 140 L 25 50 Z" fill="none" stroke="url(#platinumGrad)" stroke-width="3.5" stroke-linejoin="round" opacity="0.35"/><path d="M 100 25 L 175 50 L 150 140 L 100 190 L 50 140 L 25 50 Z" fill="url(#shieldInnerGrad)" stroke="url(#shieldGrad)" stroke-width="2" stroke-linejoin="round"/><path d="M 100 27 C 138 27, 168 36, 168 76 L 32 140 C 32 110, 58 27, 100 27 Z" fill="url(#specularGlint)" opacity="0.14"/><path d="M 100 37 L 160 57 L 139 128 L 100 174 L 61 128 L 40 57 Z" fill="none" stroke="url(#goldGrad)" stroke-width="0.75" stroke-dasharray="18 4 6 4" opacity="0.65"/><g opacity="0.09" stroke="#ff4c00" stroke-width="0.5"><line x1="70" y1="40" x2="70" y2="160"/><line x1="100" y1="30" x2="100" y2="170"/><line x1="130" y1="40" x2="130" y2="160"/><line x1="40" y1="100" x2="160" y2="100"/></g><g><g><rect x="65" y="68" width="70" height="10" rx="5" fill="none" stroke="url(#goldGrad)" stroke-width="0.85" opacity="0.8"/><rect x="66" y="69" width="68" height="8" rx="4" fill="url(#barsGrad)" style="filter:drop-shadow(rgba(255,255,255,0.98) 0px 0px 5px) drop-shadow(rgb(255,76,0) 0px 0px 7.5px);"/><rect x="67" y="70" width="66" height="1.5" rx="0.5" fill="#ffffff" opacity="0.7"/></g><g><rect x="69.667" y="86" width="60.667" height="10" rx="5" fill="none" stroke="url(#goldGrad)" stroke-width="0.85" opacity="0.8"/><rect x="70.667" y="87" width="58.667" height="8" rx="4" fill="url(#barsGrad)" style="filter:drop-shadow(rgba(255,255,255,0.98) 0px 0px 5px) drop-shadow(rgb(255,76,0) 0px 0px 7.5px);"/><rect x="71.667" y="88" width="56.667" height="1.5" rx="0.5" fill="#ffffff" opacity="0.7"/></g><g><rect x="74.333" y="104" width="51.333" height="10" rx="5" fill="none" stroke="url(#goldGrad)" stroke-width="0.85" opacity="0.8"/><rect x="75.333" y="105" width="49.333" height="8" rx="4" fill="url(#barsGrad)" style="filter:drop-shadow(rgba(255,255,255,0.98) 0px 0px 5px) drop-shadow(rgb(255,76,0) 0px 0px 7.5px);"/><rect x="76.333" y="106" width="47.333" height="1.5" rx="0.5" fill="#ffffff" opacity="0.7"/></g><g><rect x="79" y="122" width="42" height="10" rx="5" fill="none" stroke="url(#goldGrad)" stroke-width="0.85" opacity="0.8"/><rect x="80" y="123" width="40" height="8" rx="4" fill="url(#barsGrad)" style="filter:drop-shadow(rgba(255,255,255,0.98) 0px 0px 5px) drop-shadow(rgb(255,76,0) 0px 0px 7.5px);"/><rect x="81" y="124" width="38" height="1.5" rx="0.5" fill="#ffffff" opacity="0.7"/></g></g><g clip-path="url(#shineClip)"><rect x="-30" y="-10" width="60" height="220" fill="url(#shineGrad)" transform="skewX(-20)"><animateTransform id="shineAnim" attributeName="transform" type="translate" additive="sum" from="-180 0" to="340 0" dur="1.1s" begin="0s; shineAnim.end + 4.9s" fill="remove"/></rect></g></g></svg> 187 </div> 188 </div> 189 <div class="advantage-status"> 190 <span class="advantage-status-dot"></span> 191 <span class="advantage-status-text">ACTIVE · LOCAL</span> 192 </div> 193 </div> 194 </div> 195 </div> 196</section> 197 198<!-- How it works (pipeline) --> 199<section class="section section--snug-top-pad" id="how-it-works"> 200 <div class="container"> 201 <div class="section-header"> 202 <h2>How it works</h2> 203 <p>Three small steps. All of them in your browser.</p> 204 </div> 205 206 <div class="pipeline-flow"> 207 <!-- Single composite mockup: composer + warning panel. Numbered callouts 208 on the right annotate three targets within it; an SVG overlay draws 209 hairline connectors. Callouts stack inline above their targets on mobile. --> 210 <figure class="pipeline-figure" aria-labelledby="pipeline-flow-caption">
211 <figcaption id="pipeline-flow-caption" class="sr-only">An illustration of Redactopia intercepting a prompt that contains sensitive data.</figcaption> 212 213 <div class="pipeline-stage"> 214 <!-- Composer panel --> 215 <div class="pipeline-composer" id="pf-composer"> 216 <div class="pipeline-composer-head"> 217 <span class="pipeline-composer-eyebrow">Prompt</span> 218 </div> 219 <div class="pipeline-composer-body"> 220 Send the production key <mark class="pipeline-flag" id="pf-flag">sk_live_4eC39H</mark> to <mark class="pipeline-flag pipeline-flag--soft">[email protected]</mark> 221 <span class="pipeline-caret" aria-hidden="true"></span> 222 </div> 223 </div> 224 225 <!-- Warning panel â Redactopia's interception surface. Darker fill 226 and a "By Redactopia" mini-mark in the head row signal that this 227 is NOT another page UI element; it's the extension stepping in. --> 228 <div class="pipeline-warning" id="pf-warning"> 229 <div class="pipeline-warning-head"> 230 <span class="pipeline-warning-dot" aria-hidden="true"></span> 231 <span class="pipeline-warning-title">Sensitive data detected · 2 items</span> 232 </div> 233 <div class="pipeline-warning-actions" id="pf-actions"> 234 <span class="pipeline-btn pipeline-btn--primary">Redact all</span> 235 <span class="pipeline-btn">Send anyway</span> 236 </div> 237 </div> 238 </div> 239 240 <ol class="pipeline-callouts" role="list"> 241 <li class="pipeline-callout" style="--row: 1"> 242 <span class="pipeline-callout-num" aria-hidden="true">01</span> 243 <div class="pipeline-callout-body"> 244 <h3 class="pipeline-callout-title">Type normally.</h3> 245 <p>Redactopia watches the composer as you write. No interruptions, no slowdown.</p> 246 </div> 247 </li> 248 <li class="pipeline-callout" style="--row: 2"> 249 <span class="pipeline-callout-num" aria-hidden="true">02</span> 250 <div class="pipeline-callout-body"> 251 <h3 class="pipeline-callout-title">Get warned.</h3> 252 <p>Risky bits get outlined right in your prompt as you type, with a running count in the corner. Try to send with something sensitive still there and a warning steps in before it leaves.</p> 253 </div> 254 </li> 255 <li class="pipeline-callout" style="--row: 3"> 256 <span class="pipeline-callout-num" aria-hidden="true">03</span> 257 <div class="pipeline-callout-body"> 258 <h3 class="pipeline-callout-title">Decide.</h3> 259 <p>Redact each match to a clear label, edit yourself, or send the original anyway. Always your call.</p> 260 </div> 261 </li> 262 </ol> 263 </figure> 264 </div> 265 </div> 266</section> 267 268<!-- Feature rows: Detect / Review / Redact --> 269<section class="section section--no-top-pad">
270 <div class="container"> 271 272 <!-- Detect --> 273 <div class="feature-row"> 274 <div class="feature-text"> 275 <span class="label">Detect</span> 276 <h3>Spot sensitive data before it slips out</h3> 277 <ul> 278 <li>Catches emails, phone numbers, IDs, API keys, tokens, secrets, bank details, and sensitive URLs — 22 categories in all.</li> 279 <li>Fires the moment you press send. Not buried in a settings menu somewhere.</li> 280 <li>The warning shows up right where you were already working. No new tab, no context switch.</li> 281 <li><strong>Tune detection per site (Pro).</strong> Turn categories on or off for one AI site without touching the others — two tabs can even run different rules at once.</li> 282 </ul> 283 </div> 284 <div class="feature-visual"> 285 <div class="feature-mockup"> 286 <div class="mock-card"> 287 <div class="mock-eyebrow">Prompt scan</div> 288 <div class="mock-body"> 289 My email is <mark class="mock-mark">[email protected]</mark> and the token is <mark class="mock-mark">ghp_xxxxxxxxxxxx</mark> 290 </div> 291 <div class="mock-pills"> 292 <span class="pill pill-brand">Email</span> 293 <span class="pill pill-brand">Token</span> 294 </div> 295 <div class="mock-status"> 296 <span class="mock-status-bullet">!</span> 297 <span>2 sensitive items found. Review before sending.</span> 298 </div> 299 </div> 300 </div> 301 </div> 302 </div> 303 304 <!-- Review --> 305 <div class="feature-row reverse"> 306 <div class="feature-text"> 307 <span class="label">Review</span> 308 <h3>See what was flagged</h3> 309 <ul> 310 <li>Every match shows what was found and why, so you can decide quickly.</li> 311 <li>Review, redact, or send anyway, every single time. Your choice.</li> 312 <li>Nothing happens behind your back. No silent rewrites, no auto-anything.</li> 313 </ul> 314 </div> 315 <div class="feature-visual"> 316 <div class="feature-mockup feature-mockup--narrow"> 317 <div class="mock-card mock-card--lg"> 318 <div class="mock-head"> 319 <div class="mock-head-icon"> 320 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4 L22 20 H2 Z"/><line x1="12" y1="10" x2="12" y2="14"/><circle cx="12" cy="17" r="0.6" fill="currentColor"/></svg> 321 </div> 322 <div> 323 <div class="mock-head-title">Sensitive info detected</div> 324 <div class="mock-head-sub">2 items found in your prompt</div> 325 </div> 326 </div> 327 <div class="mock-list"> 328 <div class="mock-list-row"> 329 <div> 330 <span class="mock-bullet mock-bullet--amber"></span> 331 <span>Email address</span> 332 </div> 333 <span class="mock-list-value">[email protected]</span> 334 </div> 335 <div class="mock-list-row"> 336 <div> 337 <span class="mock-bullet mock-bullet--blue"></span> 338 <span>API token</span> 339 </div> 340 <span class="mock-list-value">ghp_xxxâ¦xxx</span> 341 </div> 342 </div> 343 <div class="mock-actions"> 344 <button class="btn btn-primary btn-sm">Redact all</button> 345 <button class="btn btn-ghost btn-sm">Send anyway</button> 346 </div> 347 </div> 348 </div> 349 </div> 350 </div> 351 352 <!-- Redact --> 353 <div class="feature-row"> 354 <div class="feature-text"> 355 <span class="label">Redact</span> 356 <h3>Replace private details with clean labels — or coherent tokens</h3> 357 <ul> 358 <li>Turns sensitive text into clean labels. The AI still understands the shape; the original never leaves your machine.</li> 359 <li>Need the AI to keep the thread? <strong>Coded mode (Pro)</strong> gives each value a consistent token — <code>[EMAIL_1]</code>, <code>[EMAIL_2]</code> —
359 so it can still tell two people apart while the real data stays with you.</li> 360 <li>Want to scan or redact something outside an AI chat? Right-click any text, pick "Redact selection with Redactopia," and the side panel handles the rest.</li> 361 <li>Or paste straight into the Redactor card in the side panel. Same result.</li> 362 </ul> 363 </div> 364 <div class="feature-visual"> 365 <div class="feature-mockup"> 366 <div class="mock-card mock-card--lg"> 367 <div class="mock-eyebrow">Compare two clients — same plan?</div> 368 <div class="mock-diff"> 369 <div class="mock-diff-row"> 370 <span class="mock-diff-tag">Original</span> 371 <span class="mock-body--soft"><span class="mock-underline">[email protected]</span> · <span class="mock-underline">[email protected]</span></span> 372 </div> 373 <div class="mock-diff-row"> 374 <span class="mock-diff-tag">Label</span> 375 <span class="mock-body--soft"><span class="mock-redact-label">[email redacted]</span> · <span class="mock-redact-label">[email redacted]</span></span> 376 </div> 377 <div class="mock-diff-row"> 378 <span class="mock-diff-tag mock-diff-tag--pro">Coded · Pro</span> 379 <span class="mock-body--soft"><span class="mock-redact-label mock-redact-label--coded">[EMAIL_1]</span> · <span class="mock-redact-label mock-redact-label--coded">[EMAIL_2]</span></span> 380 </div> 381 </div> 382 <p class="mock-diff-note">Labels protect the data. <strong>Coded</strong> protects it <em>and</em>
382 keeps the two people distinct — so the AI still reasons, while the originals never leave your machine.</p> 383 </div> 384 </div> 385 </div> 386 </div> 387 388 389 <!-- Visual Redactor --> 390 <div class="feature-row reverse"> 391 <div class="feature-text"> 392 <span class="label">Visual Redactor</span> 393 <h3>Hide anything on screen before a screenshot</h3> 394 <ul> 395 <li>Click an element to redact it. Or drag to redact a text selection or any rectangle on the page.</li> 396 <li>Or hit <strong>auto-redact</strong> â one click scans the whole page and redacts every detected value at once, the same detection that guards your AI prompts.</li> 397 <li>Not sure what's exposed? <strong>Review page</strong> scans the whole page and lists the sensitive values it finds, so you can redact them before you share your screen.</li> 398 <li>One permission upfront. After that the dock opens on any page, no site-by-site prompts.</li> 399 <li>Redactions come back on reload. The records are stored locally â never anywhere else.</li> 400 </ul> 401 </div> 402 <div class="feature-visual"> 403 <div class="feature-mockup feature-mockup--narrow"> 404 <div class="mock-card mock-card--lg"> 405 <div class="mock-eyebrow">Visual Redactor</div> 406 <div class="mock-list"> 407 <div class="mock-blur-row"> 408 <span class="mock-blur-label">Click to redact element</span> 409 <span class="mock-blur-target">username</span> 410 </div> 411 <div class="mock-blur-row"> 412 <span class="mock-blur-label">Drag to redact text</span> 413 <span class="mock-blur-target">confidential</span> 414 </div> 415 <div class="mock-blur-row"> 416 <span class="mock-blur-label">Drag to redact area</span> 417 <span class="mock-blur-target mock-blur-target--strong">ââââââââââââ</span> 418 </div> 419 <div class="mock-blur-row"> 420 <span class="mock-blur-label">Auto-redact detected</span> 421 <span class="mock-blur-target mock-blur-target--strong">ââââ ââââââââ</span> 422 </div> 423 </div> 424 <div class="mock-blur-foot">One broad permission · redactions stored locally</div> 425 </div> 426 </div> 427 </div> 428 </div> 429 430 <!-- Custom AI sites --> 431 <div class="feature-row" id="custom-ai"> 432 <div class="feature-text"> 433 <span class="label">Custom AI sites</span> 434 <h3>Works on AI sites we don't ship with</h3> 435 <ul> 436 <li>Add any AI site by hostname. Same scanner, same warning. With Visual Redactor on, no extra permission prompt; the broad grant already covers it.</li> 437 <li>The send is actually paused, not just warned about. If the auto-detect over-trips on a complex layout, one click on ⦠pins the real send button and the over-trapping goes away.</li> 438 <li>Many popular AI sites are pre-calibrated and apply automatically the moment you add them, so for most sites there's nothing to set up.</li> 439 </ul> 440 </div> 441 <div class="feature-visual"> 442 <div class="feature-mockup feature-mockup--narrow"> 443 <div class="mock-card mock-card--lg"> 444 <div class="mock-eyebrow">Custom AI sites</div> 445 <div class="mock-list"> 446 <div class="mock-blur-row"> 447 <span class="mock-blur-label">chat.mistral.ai</span> 448 <span class="mock-blur-target">Auto</span> 449 </div> 450 <div class="mock-blur-row"> 451 <span class="mock-blur-label">pi.ai</span> 452 <span class="mock-blur-target">Auto</span> 453 </div> 454 <div class="mock-blur-row"> 455 <span class="mock-blur-label">your-internal-llm.corp</span> 456 <span class="mock-blur-target mock-blur-target--strong">â¦</span> 457 </div> 458 </div> 459 <div class="mock-blur-foot">Auto-covered with Visual Redactor on · calibrate ⦠to pin send</div> 460 </div> 461 </div> 462 </div> 463 </div> 464 465 </div> 466</section> 467 468<!-- Detection table --> 469<section class="section section--soft-bg" id="detect"> 470 <div class="container"> 471 <div class="section-header"> 472 <h2>What it catches</h2> 473 <p>
473Built-in detection categories, each one a pattern with a validator where it matters. And if those don't cover what you need, add your own in the Custom Patterns card.</p> 474 </div> 475 <div class="detect-wrap"> 476 <div class="detect-legend" aria-hidden="true"> 477 <span></span> 478 <span>Category</span> 479 <span>Method</span> 480 <span class="detect-legend__ex"> 481 Example shape 482 <span class="detect-sev-key"> 483 <span class="detect-sev-key__item"><span class="detect-sev-key__dot detect-sev-key__dot--high"></span><span class="detect-sev-key__label">high risk</span></span> 484 <span class="detect-sev-key__item"><span class="detect-sev-key__dot detect-sev-key__dot--std"></span><span class="detect-sev-key__label">standard</span></span> 485 </span> 486 </span> 487 </div> 488 <div class="detect-body"> 489<!-- sync:detection-body --> 490 <div class="detect-row detect-row--high"> 491 <span class="detect-dot" role="img" aria-label="high risk"></span> 492 <div class="detect-row-content"> 493 <strong class="detect-cat-name">JWT</strong> 494 <span class="detect-meth">three-segment base64url, header decode</span> 495 <code class="detect-ex">eyJhbGciOiJIUzI1NiJ9â¦</code> 496 </div> 497 </div> 498 <div class="detect-row detect-row--high"> 499 <span class="detect-dot" role="img" aria-label="high risk"></span> 500 <div class="detect-row-content"> 501 <strong class="detect-cat-name">API keys (vendor prefix)</strong> 502 <span class="detect-meth">prefix table</span> 503 <code class="detect-ex">sk_live_⦠· ghp_⦠· xoxb-â¦</code> 504 </div> 505 </div> 506 <div class="detect-row detect-row--high"> 507 <span class="detect-dot" role="img" aria-label="high risk"></span> 508 <div class="detect-row-content"> 509 <strong class="detect-cat-name">AWS access keys</strong> 510 <span class="detect-meth">AKIA + 16 uppercase</span> 511 <code class="detect-ex">AKIAIOSFODNN7EXAMPLE</code> 512 </div> 513 </div> 514 <div class="detect-row detect-row--high"> 515 <span class="detect-dot" role="img" aria-label="high risk"></span> 516 <div class="detect-row-content"> 517 <strong class="detect-cat-name">PEM private keys</strong> 518 <span class="detect-meth">header line match</span> 519 <code class="detect-ex">-----BEGIN ⦠PRIVATE KEY-----</code> 520 </div> 521 </div> 522 <div class="detect-row detect-row--high"> 523 <span class="detect-dot" role="img" aria-label="high risk"></span> 524 <div class="detect-row-content"> 525 <strong class="detect-cat-name">Passwords</strong> 526 <span class="detect-meth">key-value heuristic</span> 527 <code class="detect-ex">password=⦠· pass: â¦</code> 528 </div> 529 </div> 530 <div class="detect-row detect-row--high"> 531 <span class="detect-dot" role="img" aria-label="high risk"></span> 532 <div class="detect-row-content"> 533 <strong class="detect-cat-name">Credentials in token-URLs</strong> 534 <span class="detect-meth">user:pass@host</span> 535 <code class="detect-ex">https://u:p@host/â¦</code> 536 </div> 537 </div> 538 <div class="detect-row detect-row--high"> 539 <span class="detect-dot" role="img" aria-label="high risk"></span> 540 <div class="detect-row-content"> 541 <strong class="detect-cat-name">Credit card numbers</strong> 542 <span class="detect-meth">Luhn-validated, 13â19 digits</span> 543 <code class="detect-ex">4242 4242 4242 4242</code> 544 </div> 545 </div> 546 <div class="detect-row detect-row--high"> 547 <span class="detect-dot" role="img" aria-label="high risk"></span> 548 <div class="detect-row-content"> 549 <strong class="detect-cat-name">SSN (US format)</strong> 550 <span class="detect-meth">###-##-#### with area-group rules</span> 551 <code class="detect-ex">123-45-6789</code> 552 </div> 553 </div> 554 <div class="detect-row detect-row--high">
555 <span class="detect-dot" role="img" aria-label="high risk"></span> 556 <div class="detect-row-content"> 557 <strong class="detect-cat-name">Database credentials</strong> 558 <span class="detect-meth">connection string scheme</span> 559 <code class="detect-ex">postgresql://u:p@host/db</code> 560 </div> 561 </div> 562 <div class="detect-row detect-row--high"> 563 <span class="detect-dot" role="img" aria-label="high risk"></span> 564 <div class="detect-row-content"> 565 <strong class="detect-cat-name">Discord tokens</strong> 566 <span class="detect-meth">three-part base64url</span> 567 <code class="detect-ex">MTIzâ¦.GcXx.abcâ¦</code> 568 </div> 569 </div> 570 <div class="detect-row detect-row--high"> 571 <span class="detect-dot" role="img" aria-label="high risk"></span> 572 <div class="detect-row-content"> 573 <strong class="detect-cat-name">National ID numbers</strong> 574 <span class="detect-meth">15 country formats</span> 575 <code class="detect-ex">AB 12 34 56 C · 123-456-789</code> 576 </div> 577 </div> 578 <div class="detect-row detect-row--high"> 579 <span class="detect-dot" role="img" aria-label="high risk"></span> 580 <div class="detect-row-content"> 581 <strong class="detect-cat-name">Crypto wallet addresses</strong> 582 <span class="detect-meth">BTC base58/bech32 + ETH 0x-hex</span> 583 <code class="detect-ex">0x52908400⦠· bc1qw508d6⦠· 1BvBMSEYâ¦</code> 584 </div> 585 </div> 586 <div class="detect-row detect-row--high"> 587 <span class="detect-dot" role="img" aria-label="high risk"></span> 588 <div class="detect-row-content"> 589 <strong class="detect-cat-name">IBAN (bank account)</strong> 590 <span class="detect-meth">ISO 13616 mod-97 checksum</span> 591 <code class="detect-ex">DE89 3704 0044 0532 0130 00</code> 592 </div> 593 </div> 594 <div class="detect-row detect-row--high"> 595 <span class="detect-dot" role="img" aria-label="high risk"></span> 596 <div class="detect-row-content"> 597 <strong class="detect-cat-name">Bank routing numbers (US)</strong> 598 <span class="detect-meth">ABA, context-anchored + mod-10</span> 599 <code class="detect-ex">routing number: 021000021</code> 600 </div> 601 </div> 602 <div class="detect-row detect-row--high"> 603 <span class="detect-dot" role="img" aria-label="high risk"></span> 604 <div class="detect-row-content"> 605 <strong class="detect-cat-name">Webhook URLs</strong> 606 <span class="detect-meth">Slack / Discord host + path secret</span> 607 <code class="detect-ex">https://hooks.slack.com/services/Tâ¦/Bâ¦/XXXX</code> 608 </div> 609 </div> 610 <div class="detect-row detect-row--std"> 611 <span class="detect-dot" role="img" aria-label="standard"></span> 612 <div class="detect-row-content"> 613 <strong class="detect-cat-name">Email addresses</strong> 614 <span class="detect-meth">RFC-ish</span> 615 <code class="detect-ex">[email protected]</code> 616 </div> 617 </div> 618 <div class="detect-row detect-row--std"> 619 <span class="detect-dot" role="img" aria-label="standard"></span> 620 <div class="detect-row-content"> 621 <strong class="detect-cat-name">Phone numbers (US)</strong> 622 <span class="detect-meth">10-digit, separator tolerant</span> 623 <code class="detect-ex">(555) 123-4567</code> 624 </div> 625 </div> 626 <div class="detect-row detect-row--std"> 627 <span class="detect-dot" role="img" aria-label="standard"></span> 628 <div class="detect-row-content"> 629 <strong class="detect-cat-name">International phone</strong> 630 <span class="detect-meth">E.164 +[country code][number]</span> 631 <code class="detect-ex">+44 7911 123456</code> 632 </div> 633 </div> 634 <div class="detect-row detect-row--std">
635 <span class="detect-dot" role="img" aria-label="standard"></span> 636 <div class="detect-row-content"> 637 <strong class="detect-cat-name">Private IP addresses</strong> 638 <span class="detect-meth">RFC 1918 + localhost</span> 639 <code class="detect-ex">192.168.1.1 · 10.0.0.50</code> 640 </div> 641 </div> 642 <div class="detect-row detect-row--std"> 643 <span class="detect-dot" role="img" aria-label="standard"></span> 644 <div class="detect-row-content"> 645 <strong class="detect-cat-name">Internal URLs</strong> 646 <span class="detect-meth">.internal · .local · localhost</span> 647 <code class="detect-ex">staging.internal</code> 648 </div> 649 </div> 650 <div class="detect-row detect-row--std"> 651 <span class="detect-dot" role="img" aria-label="standard"></span> 652 <div class="detect-row-content"> 653 <strong class="detect-cat-name">Secret-like strings (entropy)</strong> 654 <span class="detect-meth">Shannon entropy, alphabet-aware, context keywords</span> 655 <code class="detect-ex">Long random-looking values near âtokenâ, âkeyâ, âsecretâ</code> 656 </div> 657 </div> 658 <div class="detect-row detect-row--std"> 659 <span class="detect-dot" role="img" aria-label="standard"></span> 660 <div class="detect-row-content"> 661 <strong class="detect-cat-name">AWS ARNs</strong> 662 <span class="detect-meth">arn:aws:service:region:account:resource</span> 663 <code class="detect-ex">arn:aws:iam::123456789012:user/Bob</code> 664 </div> 665 </div> 666<!-- /sync:detection-body --> 667 </div> 668 </div> 669 <p class="detection-free-note">Every pattern above â including API keys, entropy-based secrets, and database credentials â is detected for <strong>free</strong>. No paywall, no account, no upgrade required.</p> 670 </div> 671</section> 672 673<!-- Four promises â was six. Promises 02 (Local-first) and 03 (No history) 674 were the cross-section redundancy holdouts: those claims already arrive in 675 the hero fineprint, How-it-works subhead, Advantage card body, Privacy 676 teaser, and FAQ. The remaining four are user-facing behaviors, not privacy 677 invariants. --> 678<section class="section section--soft-bg" id="promises"> 679 <div class="container"> 680 <div class="promises-head"> 681 <span class="promises-eyebrow">Four promises</span> 682 <h2>Each one verifiable.<br><span class="promises-head-em">Each one local.</span></h2> 683 </div> 684 685 <div class="promises-grid"> 686 <div class="promise-card"> 687 <span class="promise-num">01</span> 688 <div class="promise-name">Before-send protection</div> 689 <p class="promise-copy">Checks happen the instant you press send. You always get a chance to catch leaks before they leave the page.</p> 690 <span class="promise-pill"><span class="pulse" aria-hidden="true"></span> Active by default</span> 691 </div> 692 <div class="promise-card"> 693 <span class="promise-num">02</span> 694 <div class="promise-name">Per-site control</div> 695 <p class="promise-copy">Turn protection off on one site without touching the others. Settings save automatically; nothing global to remember to switch back.</p> 696 </div> 697 <div class="promise-card"> 698 <span class="promise-num">03</span> 699 <div class="promise-name">Hide what's on screen</div> 700 <p class="promise-copy">The Visual Redactor redacts any element, text, or screen region. One permission upfront, no per-site prompts. Redactions persist across reloads.</p> 701 </div> 702 <div class="promise-card"> 703 <span class="promise-num">04</span> 704 <div class="promise-name">Only the sites you allow</div> 705 <p class="promise-copy">No background access to unrelated tabs. AI-chat protection runs only on sites Redactopia ships with or ones you add.</p> 706 </div> 707 </div> 708 </div> 709</section> 710 711<!-- Privacy â short teaser; full policy lives at privacy.html. 712 This teaser is the canonical statement of the privacy invariants on the 713 landing. The Promises section above now stays in user-facing-behavior 714 territory and lets the teaser carry the no-history / no-telemetry beat. --> 715<section class="section section--soft-bg" id="privacy"> 716 <div class="container"> 717 <div class="privacy-teaser"> 718 <h2>Private by design.</h2> 719 <p>Nothing about your prompts leaves your browser. No history. No telemetry. No accounts. No identifiers.</p> 720 <a href="privacy.html" class="btn btn-ghost btn-sm">Read the full privacy policy →</a> 721 </div> 722 </div> 723</section> 724 725<!-- Pricing --> 726<!-- â SYNC: this pricing block is duplicated in web/pricing.html. If you change
727 prices, plan names, the toggle, or the feature matrix, edit BOTH files. --> 728<section class="section" id="pricing"> 729 <div class="container"> 730 <div class="section-header section-header--tight"> 731 <h2>Everything essential stays free</h2> 732 <p>Free forever for the protection that matters. Pro lifts the limits for power users.</p> 733 </div> 734 735 736 <!-- Billing toggle --> 737 <div class="pricing-toggle" role="group" aria-label="Billing period"> 738 <button type="button" class="pricing-toggle__btn is-active" data-billing="monthly">Monthly</button> 739 <button type="button" class="pricing-toggle__btn" data-billing="annual">Annual <span class="pricing-toggle__save">Save 22%</span></button> 740 </div> 741 742 <div class="pricing-cards"> 743 <div class="pricing-card"> 744 <div class="pricing-card__head"> 745 <span class="pricing-card__name">Free</span> 746 <span class="pricing-card__tag">For everyone</span> 747 </div> 748 <div class="pricing-card__price"> 749 <span class="pricing-card__amount">$0</span> 750 <span class="pricing-card__period">forever</span> 751 </div> 752 <p class="pricing-card__blurb">Essential privacy protection, free for good.</p> 753 <a href="https://chromewebstore.google.com/detail/redactopia-privacy-guard/jjlipfafeillppiimpgggkgglgefiiam" class="btn btn-ghost pricing-card__cta" target="_blank" rel="noopener">Install free</a> 754 </div> 755 756 <div class="pricing-card pricing-card--featured"> 757 <span class="pricing-card__badge">Most popular</span> 758 <div class="pricing-card__head"> 759 <span class="pricing-card__name">Pro</span> 760 <span class="pricing-card__tag">For power users</span> 761 </div> 762 <div class="pricing-card__price" data-price="monthly"> 763 <span class="pricing-card__amount">$3.99</span> 764 <span class="pricing-card__period">/mo</span> 765 </div> 766 <div class="pricing-card__price" data-price="annual" hidden> 767 <span class="pricing-card__strike">$47.88</span> 768 <span class="pricing-card__amount">$37.24</span> 769 <span class="pricing-card__period">/yr</span> 770 <span class="pricing-card__sub">less than $3.11/mo</span> 771 </div> 772 <p class="pricing-card__blurb">Unlimited everything.</p> 773 <a href="https://redactopia.lemonsqueezy.com/checkout/buy/b960135e-b00d-4431-bff0-bfb6cf31bf54" 774 class="btn btn-primary pricing-card__cta" 775 data-checkout="monthly">Get Pro</a> 776 <a href="https://redactopia.lemonsqueezy.com/checkout/buy/f81adbca-631b-4506-a593-ab2d0c1872e3" 777 class="btn btn-primary pricing-card__cta" 778 data-checkout="annual" hidden>Get Pro</a> 779 </div> 780 </div> 781 782 <div class="pricing-matrix"> 783 <div class="pricing-matrix__head"> 784 <span class="pricing-matrix__feature-label">What's included</span> 785 <span class="pricing-matrix__col">Free</span> 786 <span class="pricing-matrix__col">Pro</span> 787 </div> 788 <div class="pricing-row"> 789 <span class="pricing-row__feature">AI-chat protection on all supported sites</span> 790 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 791 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 792 </div> 793 <div class="pricing-row"> 794 <span class="pricing-row__feature">All 22 detection categories (entropy, API keys, secrets)</span> 795 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 796 <span class="pricing-row__val">
796<svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 797 </div> 798 <div class="pricing-row"> 799 <span class="pricing-row__feature">Per-finding selective redaction</span> 800 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 801 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 802 </div> 803 <div class="pricing-row"> 804 <span class="pricing-row__feature">Sidepanel Redactor + right-click redact</span> 805 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 806 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 807 </div> 808 <div class="pricing-row"> 809 <span class="pricing-row__feature">Visual Redactor â element redaction</span> 810 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 811 <span class="pricing-row__val"><svg class="pm-check" viewBox="0 0 16 16" aria-hidden="true"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 812 </div> 813 <div class="pricing-row"> 814 <span class="pricing-row__feature">Visual Redactor â text redaction</span> 815 <span class="pricing-row__val pricing-row__val--num">3 previews</span> 816 <span class="pricing-row__val pricing-row__val--num pricing-row__val--pro">Unlimited</span> 817 </div> 818 <div class="pricing-row"> 819 <span class="pricing-row__feature">Visual Redactor â area redaction</span> 820 <span class="pricing-row__val pricing-row__val--num">3 previews</span> 821 <span class="pricing-row__val pricing-row__val--num pricing-row__val--pro">Unlimited</span> 822 </div> 823 <div class="pricing-row"> 824 <span class="pricing-row__feature">Visual Redactor â auto-redact (wand)</span> 825 <span class="pricing-row__val pricing-row__val--num">3 previews</span> 826 <span class="pricing-row__val pricing-row__val--num pricing-row__val--pro">Unlimited</span> 827 </div> 828 <div class="pricing-row"> 829 <span class="pricing-row__feature">Custom detection patterns</span> 830 <span class="pricing-row__val pricing-row__val--num">Up to 5</span> 831 <span class="pricing-row__val pricing-row__val--num pricing-row__val--pro">Unlimited</span> 832 </div> 833 <div class="pricing-row"> 834 <span class="pricing-row__feature">Custom AI sites</span> 835 <span class="pricing-row__val pricing-row__val--num">Up to 3</span> 836 <span class="pricing-row__val pricing-row__val--num pricing-row__val--pro">Unlimited</span> 837 </div> 838 839 <div class="pricing-row"> 840 <span class="pricing-row__feature">Coded redaction — consistent tokens like [EMAIL_1]</span> 841 <span class="pricing-row__val pricing-row__val--num">—</span> 842 <span class="pricing-row__val pricing-row__val--pro"><svg class="pm-check" viewBox="0 0 16 16" aria-label="Pro only"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 843 </div> 844 845 <div class="pricing-row">
846 <span class="pricing-row__feature">Per-site detection rules — each AI site its own settings</span> 847 <span class="pricing-row__val pricing-row__val--num">—</span> 848 <span class="pricing-row__val pricing-row__val--pro"><svg class="pm-check" viewBox="0 0 16 16" aria-label="Pro only"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 849 </div> 850 851 <div class="pricing-row"> 852 <span class="pricing-row__feature">Custom redaction labels — edit inline on the page</span> 853 <span class="pricing-row__val pricing-row__val--num">—</span> 854 <span class="pricing-row__val pricing-row__val--pro"><svg class="pm-check" viewBox="0 0 16 16" aria-label="Pro only"><path d="M3.5 8.5l3 3 6-6.5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 855 </div> 856 </div> 857 </div> 858</section> 859 860<!-- FAQ --> 861<section class="section section--soft-bg" id="faq"> 862 <div class="container"> 863 <div class="section-header"> 864 <h2>Frequently asked</h2> 865 <p>The questions we hear most. Short answers.</p> 866 </div> 867 <div class="faq-wrap"> 868 <div class="faq is-open"> 869 <button class="faq-q" type="button">Does Redactopia send my prompts anywhere?</button> 870 <div class="faq-a"><p>No. The scan runs entirely in your browser. Your prompts aren't sent to us, aren't stored anywhere, aren't shared with anyone. The only network request the extension ever makes is an optional Pro license check, and it never includes your prompts.</p></div> 871 </div> 872 <div class="faq"> 873 <button class="faq-q" type="button">Which browsers does it work on?</button> 874 <div class="faq-a"><p>Chrome and Edge are both first-class and nearly identical. There's one Chrome-only AI site; the Copilot question below covers why. Firefox isn't supported yet â it uses a different extension API, so it needs its own build, which we haven't shipped. It's on the roadmap, with no firm date yet.</p></div> 875 </div> 876 <div class="faq"> 877 <button class="faq-q" type="button">What about AI sites you don't ship with?</button> 878 <div class="faq-a"><p>Add them yourself. Open the side panel â Custom AI sites â type a hostname. If the Visual Redactor is on, the broad permission already covers it and no extra prompt appears. If it is off, your browser asks for that site specifically. Once added, the same scanner and warning modal apply there too. If the warning fires on the wrong button (some sites have complex layouts), click the ⦠next to the site and pin the real send button. If a site later changes its layout and that calibration goes stale, Redactopia flags it â the on-page counter gets louder and a â appears on the site's side-panel row â so you can re-pin it instead of being falsely confident.</p></div> 879 </div> 880 <div class="faq"> 881 <button class="faq-q" type="button">Will it slow down typing?</button> 882 <div class="faq-a"><p>No. The scanner runs on a debounced check, not on every keystroke, so typing stays smooth in normal use.</p></div> 883 </div> 884 <div class="faq"> 885 <button class="faq-q" type="button">What happens when something sensitive gets detected?</button> 886 <div class="faq-a"><p>A warning modal pops up over the page with the matched items called out. Four buttons: redact every match to a clean label, review and edit yourself, open the Redactor side panel for deeper edits, or send the original anyway. You're never blocked, only paused.</p></div> 887 </div> 888 <div class="faq"> 889 <button class="faq-q" type="button">Is Copilot supported?</button> 890 <div class="faq-a"><p>Yes, on the Chrome build. Copilot is a Microsoft product, and Edge, also Microsoft, doesn't allow third-party extensions to run on Microsoft's own pages. That's a platform rule that applies to all extensions equally, not something Redactopia-specific. If you want Copilot coverage, use Chrome. Everything else works the same in both builds.</p></div> 891 </div> 892 <div class="faq"> 893 <button class="faq-q" type="button">Will Redactopia be open source?</button> 894 <div class="faq-a"><p>It's on the roadmap. The goal is to publish the source so anyone can verify the privacy claims and build their own copy. No firm date yet â we'll announce when it's ready. The built extension bundle is already inspectable in your browser's extension folder.</p></div> 895 </div> 896 <div class="faq"> 897 <button class="faq-q" type="button">Can I add my own detection patterns?</button> 898 <div class="faq-a"><p>Yes. Custom Patterns let you write your own regex-based checks, useful for org-specific stuff like internal ticket IDs or employee codes. They're stored locally â with an optional toggle to sync them across your own devices through your browser's own sync â and run alongside the built-in detectors. There's also a Browse library button with a growing set of starter patterns for common shapes if you don't want to start from scratch.</p></div> 899 </div> 900 </div> 901 </div> 902</section> 903 904<!-- Footer --> 905<footer class="footer" id="footer-root"><noscript><div class="footer-noscript"><strong>Redactopia</strong><nav aria-label="Footer"><a href="/">Home</a><a href="guide.html">Guide</a><a href="privacy.html">Privacy</a><a href="terms.html">Terms</a><a href="support.html">Support</a><a href="mailto:[email protected]">[email protected]</a></nav><p>© 2026 Redactopia · All rights reserved</p></div></noscript></footer> 906
907<script src="main.js?v=48" defer></script>
907 908</body> 909</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.