For the developer of a site that carries a credit
Read exactly what nods adds to your site.
The studio that built your site has asked to credit its work in the footer. This page lists what that puts in your HTML and every request it can cause.
The credit is plain HTML and a stylesheet.
One element and one style block, about 1 kB gzipped together. It inherits the font and colour of the footer it sits in. Your page loads it with zero requests to nods.
<span
class="nods"
data-nods="kiln"
data-nods-instance="in_8f2c41"
aria-describedby="nods-summary">
<span class="nods-label">Designed by </span>
<a
class="nods-name"
href="https://nods.to/kiln/marigold"
rel="author nofollow noopener"
target="_blank">Marigold</a>
<span
class="nods-sr"
id="nods-summary">Kiln, 2026. Design: Marigold.</span>
</span>Each name links through nods.to.
A credited name points at nods.to/project/name, which answers with a 302 to that party’s own site. The redirect records the time, the project, the name, your site’s host as the referrer, a two-letter country and a device class. It stores no IP address and no user agent, and it sets no cookie.
The Full tier adds under 600 bytes of script.
At load the script attaches three event listeners to the credit and makes no request. When a visitor first points at the credit or focuses it, the script imports a module from nods.to that draws the panel. Each time the panel opens, the module sends nods one empty POST with credentials omitted, so the studio can count it.
The credit tells your page when its card opens.
The credit dispatches nods:open, nods:close and nods:closed as its card opens and leaves. The events bubble, so your page can listen on its footer or on document. Call preventDefault() on nods:beforeopen to keep the card shut.
The credit still works when scripts are blocked.
With scripts off, or under a content security policy that refuses inline script, the control stays an ordinary link to the record page on nods.to.
A strict content security policy needs three entries.
| Directive | Allow | Tier |
|---|---|---|
| style-src | The inline style block, by hash | Text and link, Full |
| script-src | The inline script, by hash, and https://nods.to | Full |
| connect-src | https://nods.to | Full |
The agreed tier decides what is added.
| Agreed | Added to your HTML |
|---|---|
| No credit | Nothing. |
| In the code only | One JSON-LD script element in the page source. |
| Text and link | The credit: one element and one style block. The JSON-LD record is optional. |
| Full | The credit, and an inline script of under 600 bytes that loads the panel on demand. |
nods looks for the credit once a week.
The credit carries a data-nods-instance attribute. It names the installation and is the same for every visitor. Once a week nods fetches the page with a single GET, from the user agent nods-check/1, and looks for that attribute to confirm the credit is still there.