URL mode
Route: Spread → URL tab (default)
How it works
- Paste a URL and press Run spread. Any public http(s) page.
- Tostada fetches the page and scans it — no AI yet, nothing spent.
- The checkpoint. Spread stops and shows you what it found before it costs anything. See below.
- Continue. The rebuild streams; you can cancel at any point with the button or the Esc key, and nothing is charged for a cancelled run beyond what was already generated.
- Compare and download. Drag the slider to wipe between original and spread. Download HTML gives you a standalone file with the report inside it.
The checkpoint
The step that exists so nothing is spent on your behalf without you seeing it first. It shows:
- What to keep "legacy". Logos, maps, videos and third-party widgets Spread detected. Tick anything you want left exactly as it is — the original element is embedded verbatim rather than rebuilt. Default is to spread everything.
- The estimate, in euros, on your key.
- A size verdict, if the page is big enough to be trimmed or too big to rebuild honestly.
- A JavaScript warning, if the page turns out to be an empty shell.
If the page is a JavaScript app
Modern apps render in the browser, so fetching one over HTTP returns a shell — often just "You need to enable JavaScript to run this app". Spread detects this and says so rather than charging you to rebuild a loading screen.
The fix is HTML file mode: open the page yourself, save the rendered HTML, and upload that. It is also how you spread a page behind a login — your credentials never go anywhere near Tostada.
The page fetcher
A browser cannot fetch another site's HTML directly; the same-origin policy forbids it. So Tostada fetches on your behalf, and that fetcher deliberately refuses a lot:
- http(s) only
- no private networks — loopback, internal ranges, and cloud metadata addresses, re-checked after every redirect
- HTML only, and 1 MB maximum
- signed-in users only, on the hosted app
Running locally with npm run dev, the dev server does the same job with the
same refusals; the difference is who is allowed to ask.
When a fetch fails
Some sites block automated requests. The error says so and offers file mode, which always works because you have already loaded the page yourself.