DocsDemo a site you can't record
Docs

Crawl a site into a sandbox

Turn a URL into a browsable replica Rendemo hosts, with no recording — including pages behind a login, by sharing your browser session from the extension.

What a sandbox is

A sandbox is a browsable copy of a real site that Rendemo builds by visiting it with a headless browser and keeping the markup of each page. No recording, no extension, no access to the source: you give it a URL and get back a replica hosted at a Rendemo address.

It exists so you can build a tour of a product you cannot instrument — a prospect's site, a competitor's, your own marketing pages — and so a viewer can click through it without touching the real thing. A sandbox tour writes no markers into anybody's source; each step records what its target element looks like and a build pass finds it again every time the sandbox is rebuilt.

A sandbox is a still, not a film

The crawler visits each page and keeps what it finds. It does not click, type or open menus, so anything that only exists after an interaction — a dialog, a dropdown, an expanded row — is not in the replica. Record with the extension when you need those.

Crawling a site

From an agent, rendemo_crawl_site takes the URL and returns a job to poll. The crawl takes a few minutes and the sandbox build takes several more, so expect to wait — 40 pages took about four minutes in production.

json
{ "url": "https://example.com/" }

By default it discovers pages from the site's sitemap.xml. The URL you pass is always visited too, path and all. To crawl an exact set of pages instead — which skips discovery entirely — name them:

json
{
  "url": "https://example.com/dashboard",
  "urls": [
    "https://example.com/dashboard/settings",
    "https://example.com/dashboard/billing"
  ]
}

Naming URLs is the only way to reach a signed-in area, because no product lists its dashboard in a sitemap. The page budget is raised to fit the list, so a page you named is never dropped in favour of one the crawler found.

The sandbox is not published

A finished crawl is a draft. Authoring and checking a tour work on it as it is; publishing is a separate, deliberate step that makes every page in the replica world-visible to anyone with the URL.

Pages behind a login

The crawler is a fresh browser with no account, so behind a login it sees the login page and nothing else. Sharing a session hands it the one you are already signed in with, for a single site.

  • Open the site in Chrome and sign in as you normally would.
  • Open the Rendemo extension and expand Advanced, then choose Share this site's session.
  • Read the disclosure it shows and confirm. The first share also asks Chrome for the cookies permission, which is optional at install time.
  • Crawl as normal. The crawl reports authenticated: true when it used the session, and lists any pages it dropped as login walls.

A shared session is a credential

It is stored per workspace, not per person: anyone in your workspace can crawl that site as you until it expires. Sessions expire after 14 days at the latest, whatever the site's own cookies say, and you can revoke one at any time.

What sharing sends

SentWhy
Cookies for that site, including httpOnly onesThe credential itself. Most real session auth is httpOnly, which a page script cannot read — this is why the extension needs Chrome's cookies permission rather than reading document.cookie.
localStorage and sessionStorage for that originMany apps keep the token there instead of in a cookie.
Your user agent, languages and timezoneSo crawled pages look the way they do for you. Without it the crawl renders as headless Chrome in the server's locale, and any site that varies its markup by those is captured wrong — a mobile layout, an untranslated page, dates in the wrong zone.

It is scoped to the one origin you shared it from, and sending it anywhere else is refused. Nothing about other sites you are signed in to leaves your browser.

When a crawl comes back wrong

What you seeWhat it usually means
No sitemap found, or refusedThe site rate-limits or blocks automated requests. It often serves the sitemap fine to a real browser, so check it yourself before believing the error — then crawl with an explicit urls list, which needs no sitemap.
Every page is the same 'verifying your browser' pageA bot check challenged the crawler and every page captured the challenge instead. These are usually rate-based: wait, then crawl again, and space crawls of that site out rather than retrying immediately.
Pages came back but the signed-in ones are login screensNo session, an expired one, or one shared from a different origin. Re-share it and check the crawl reports authenticated: true.
Fewer pages than you asked forPages whose markup is identical collapse into one, since two copies of the same screen are not two pages. A page missing entirely was either dropped as a login wall or never reachable from the sitemap.

A crawl can be re-run against the same project, which keeps the sandbox's id and address so tours already pointing at it keep working. It replaces the pages, so re-crawl into a new project instead when the current replica is still the best copy you have.