What survives between two browser sessions?
A profile is saved browser state. A reconnectable session is a browser that is still running. A managed authentication connection can establish or verify a login. These mechanisms preserve different things and need separate tests.
A restored cookie can still refer to an expired website session. The success check should inspect the signed-in account and a protected page, rather than treating a successful profile API response as proof of login.
Compare saved state
Notte: Profiles save cookies, local storage and session storage. Sessions start with fresh state by default. Persisting a profile writes state back when the session ends; a running session can also save its state explicitly.
Browserbase: Contexts preserve browser data between sessions. Associate the intended Context with each user's browser and decide which sessions may update it; a Context is distinct from a live running session.
Compare the login path
Notte: Vaults substitute credential placeholders in supported browser actions outside the model context. Managed Auth checks requested saved connections before automation. Personas supply an inbox and optional phone number for verification workflows.
Browserbase: The identity documentation covers website authentication and reuse of login state. Contexts and Function Secrets serve different roles: retained browser state versus values available to executing code.
Compare the browser lifecycle
Notte: Create an owned browser session, connect Playwright or Puppeteer over CDP, and stop the session when the work finishes. Browser lifecycle management remains necessary even when the control socket disconnects.
Browserbase: Create a managed browser session and connect a supported browser library to its connection URL. The session API and the browser connection have separate lifecycles.
How to evaluate this choice
Choose saved profiles for repeatable state restoration, a live session for work that must continue in the same browser, and managed authentication when readiness needs more than loading cookies.
- List the exact stores the workflow needs: cookies, local storage, other site data or open pages.
- Save state explicitly using the selected provider's profile contract.
- Start a second session and verify the expected account on the website.
- Test expiry and concurrent writers instead of assuming state can be shared freely.
- Keep downloaded files separate from browser login state.
Requirements side by side
| Requirement | Notte | Browserbase |
|---|---|---|
| Saved browser state | Documented | Contexts |
| Credential handling | Documented | Identity / Secrets |
| Website sign-in | Documented | Website auth tools |
Sources: docs.notte.cc [1] ↗docs.notte.cc [2] ↗docs.notte.cc [3] ↗docs.notte.cc [4] ↗docs.notte.cc [5] ↗docs.notte.cc [6] ↗docs.browserbase.com [7] ↗docs.browserbase.com [8] ↗docs.browserbase.com [9] ↗docs.browserbase.com [10] ↗docs.browserbase.com [11] ↗
Which approach fits?
Choose Notte when your browser workflow needs saved logins, credential fill or scheduled Python code alongside the browser.
Notte tradeoff: A saved profile restores browser state; it does not prove that a website still considers the user signed in. Use Managed Auth when the workflow needs connection readiness before it starts.
Choose Browserbase when you want to deploy TypeScript browser logic or already use Browserbase's browser and Stagehand tooling.
Browserbase tradeoff: An identity feature, a persisted Context and a Function secret solve different problems. Select the required combination instead of treating all three as automatic login.
A useful acceptance check
Write a pass/fail result for the real task before running the evaluation. Record the account, configuration and code version next to that result. Repeat failures need an explanation, not an automatically different browser configuration.