Upgrading from floating annotations to dynamic explanations rooted in specific UI elements.
From Static to Dynamic
The initial transparency implementation was a separate panel — a sidebar or overlay that listed the psychological tactics in use. Honest, but architecturally separate from the interface it was describing. The explanations existed alongside the UI rather than within it.
This separation created an ironic problem: to understand how the interface was influencing you, you had to stop looking at the interface. The transparency mechanism competed with the very thing it was trying to illuminate.
Dynamic Anchoring
The upgraded system queries the DOM for elements carrying data-annotation-target attributes, computes their positions, and renders annotation labels anchored to those coordinates. As the user scrolls, annotations reposition. As the viewport resizes, they recalculate. The explanations move with the interface rather than floating above it.
This required solving several technical challenges: scroll synchronization, viewport edge detection, z-index management, and graceful degradation when elements aren't in view. Each problem had conventional solutions — the unusual constraint was that these solutions needed to be applied to a transparency system, not a standard annotation tool.
The Philosophical Upgrade
There's a meaningful philosophical difference between transparency that floats abstractly and transparency that anchors concretely. Abstract transparency says: "We use social proof." Anchored transparency says: "This specific sentence — 'Join 47 observers' — is social proof, and here's why it works." The former is disclosure. The latter is education.
Project Nothing's thesis is that fully informed participation changes the nature of the transaction. When users understand exactly which mechanism is operating on exactly which element, the psychological tactic transforms from an invisible lever into a visible choice. You can be influenced, knowingly, by something you've identified and named. That's a different kind of commerce.
Experiment Context
- Commit
- 738dafd
- Mutation rationale
- feat(transparency): upgrade to element-anchored dynamic annotation system
- Last reviewed
- February 21, 2026