Skip to content

Instantly share code, notes, and snippets.

@sachinraja
sachinraja / browser.ts
Created July 18, 2025 21:53
browser-in-sandbox
import { Sandbox } from "@vercel/sandbox";
import z from 'zod';
import { chromium } from 'playwright'
export async function retryWithBackoff<T>(fn: () => Promise<T>, retries = 3) {
let delay = 1000;
for (let i = 0; i < retries; i++) {
try {
return await fn();
} catch {
@sachinraja
sachinraja / browser-sandbox.ts
Last active July 18, 2025 22:55
browser-in-sandbox
import { Sandbox } from "@vercel/sandbox";
import z from "zod";
import { retryWithBackoff } from "./utils";
import { chromium } from 'playwright'
const cdpVersionSchema = z.object({
webSocketDebuggerUrl: z.string(),
});
const BROWSERS_DIR = "browsers";
// view at: https://stackblitz.com/edit/vitejs-vite-8s3guc?file=src%2FEditor.tsx&terminal=dev
import React, { useRef, useEffect } from 'react';
import { EditorView, ViewUpdate } from '@codemirror/view';
import { EditorState, Extension } from '@codemirror/state';
import { basicSetup } from '@codemirror/basic-setup';
import { javascript } from '@codemirror/lang-javascript';
import { oneDark } from '@codemirror/theme-one-dark';
interface EditorProps {
value?: string;