---
title: "Double opt-in"
description: "The visitor gets one confirmation email and is counted only after using its link."
group: concept
terms:
  - "double opt-in"
  - "email confirmation"
sources:
  - url: https://github.com/joelhooks/rat-stack/blob/main/.brain/projects/tokenmaxx-interest-form.svx
    title: "The tokenmaxx page and its double opt-in interest form"
    publisher: "GitHub joelhooks/rat-stack"
    note: "Source of the confirmation-link definition and the mail-scanner rationale."
    accessed: "2026-10-01"
  - url: https://github.com/joelhooks/rat-stack/blob/main/apps/mischief/test/interest.test.ts
    title: "rat-stack/apps/mischief/test/interest.test.ts at main · joelhooks/rat-stack · GitHub"
    publisher: "GitHub joelhooks/rat-stack"
    note: "Interest tests, including the approved confirmation response."
    accessed: "2026-10-01"
---

# Double opt-in

Free workshop: [how to burn a trillion tokens and get good results](/tokenmaxx#interested).

The [interest form's project note](https://github.com/joelhooks/rat-stack/blob/main/.brain/projects/tokenmaxx-interest-form.svx) describes double opt-in: the visitor gets one confirmation email and is counted only after using its link.

The same note records why the link opens a page with a button rather than confirming on GET:

> Mail scanners follow links, and a GET that confirms would count a scanner as a person.


## Sources

1. [The tokenmaxx page and its double opt-in interest form](<https://github.com/joelhooks/rat-stack/blob/main/.brain/projects/tokenmaxx-interest-form.svx>)
   GitHub joelhooks/rat-stack. Source of the confirmation-link definition and the mail-scanner rationale. Accessed 2026-10-01.

2. [rat-stack/apps/mischief/test/interest.test.ts at main · joelhooks/rat-stack · GitHub](<https://github.com/joelhooks/rat-stack/blob/main/apps/mischief/test/interest.test.ts>)
   GitHub joelhooks/rat-stack. Interest tests, including the approved confirmation response. Accessed 2026-10-01.


## Linked from

- Agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](<https://ratstack.sh/llms.txt>)
- Change log → What changed in the files served here, newest first. → [Read page](<https://ratstack.sh/log>)
- Full agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](<https://ratstack.sh/llms-full.txt>)
- HATEOAS → Links in a representation tell its reader what to do next; rat-stack applies that idea to agent surfaces. → [Read page](<https://ratstack.sh/lore/hateoas>)
- Interest signup → Browser signup starts email confirmation; delivery stays behind job-shaped ports outside core. → [Read page](<https://ratstack.sh/systems/interest>)
- log.md → The generated change log as Markdown. → [Read page](<https://ratstack.sh/log.md>)
- Rat Stack lore | rat-stack → Short, source-grounded notes on the ideas and decisions behind rat-stack. → [Read page](<https://ratstack.sh/lore>)
- Rat Stack systems | rat-stack → The systems rat-stack ships, the standard each keeps, and how to check it. → [Read page](<https://ratstack.sh/systems>)
- VISION.md → What this starter is for and what a useful copy should keep. → [Read page](<https://ratstack.sh/VISION.md>)
