shadertown

The credit

The small link a canvas draws, why it is there, and the one call that removes it.

<ShaderCanvas /> draws a small link in the bottom-right corner of the canvas. It points at the page for the shader on screen, it is a plain visible anchor, and it is in the server-rendered HTML.

Turning it off

One call, at module scope, for the whole app:

import { setBadge } from "shadertown";

setBadge(false);

Put it in a module the server and the browser both load — your root layout, or a file that layout imports. Calling it inside useEffect renders a badge on the server and none in the browser, which is a hydration mismatch, not a hidden badge.

For one canvas:

<ShaderCanvas shader="aurora" badge={false} />

Moving it

The credit sits bottom-right. Name another corner and it goes there instead — "bottom-right", "bottom-left", "top-right", "top-left".

<ShaderCanvas shader="aurora" badge="top-left" />

Page-wide, beside setBadge:

import { setBadgePosition } from "shadertown";

setBadgePosition("top-left");

Four corners is the whole option. There is no offset, no opacity and no class to restyle it with, because every one of those is a way to hide the credit while claiming it is on — and there is already an honest switch for turning it off. Moving it out of the way of your own controls is fine and always will be.

When you may turn it off

That is a licence question, not a technical one, and the answer is in the LICENSE file that ships beside the shader.

What you haveThe credit
A Free shader, taken without payingLeave it on
Any shader under a paid planTurn it off

A Free shader is paid for with that link. Keeping it visible is the whole price: no account, no payment, no expiry, and a source you can read, modify and ship commercially. Buy a plan and the condition is lifted on everything, Free shaders included.

Why it works this way

Nothing enforces the credit. setBadge(false) is one call, it always will be, and the runtime never checks a licence or contacts a server — it stays MIT and stays offline. The obligation lives in the licence text, not in the code.

The credit is also plainly visible rather than hidden in the markup. A link a reader cannot see earns nothing: search engines do not follow links in source comments, and they treat hidden ones as spam.

Under the Free licence

Leave the credit visible and working: do not cover it, crop it, reduce its size or opacity, change its text or destination, or set badge={false}. Moving it between corners is fine. Everything else about the source is yours.

The full wording is in clause 5 of the licence, and in the LICENSE file beside the shader.