Zum Hauptinhalt springen
Erstelle und initialisiere eine neue Sandbox-Umgebung in der KI-generierter Code mit Live-Vorschau läuft. Die Sandbox beinhaltet ein komplettes React + Vite + Tailwind Setup.

Endpunkte

Es gibt zwei Versionen je nach Sandbox-Provider:
EndpunktProviderBeschreibung
/api/create-ai-sandboxVercelErstellt eine Vercel Sandbox-Instanz
/api/create-ai-sandbox-v2ModalErstellt eine Modal Cloud-Sandbox (empfohlen)

Sandbox erstellen (Vercel)

POST /api/create-ai-sandbox
Kein Request Body erforderlich. Erstellt eine Vercel-Sandbox mit automatischem Vite React Setup.

Antwort

{
  "success": true,
  "sandboxId": "sbx_abc123xyz",
  "url": "https://sbx-abc123xyz.vercel.run:3000",
  "message": "Vercel-Sandbox erstellt und Vite React App initialisiert"
}

Sandbox V2 erstellen (Modal)

POST /api/create-ai-sandbox-v2
Erstellt eine Sandbox mit dem Modal Cloud-Backend mit Seemodo AI-Integration.

Request Body

forceNew
boolean
Standard:"false"
Erstellung einer neuen Sandbox erzwingen auch wenn bereits eine existiert.

Antwort

{
  "success": true,
  "sandboxId": "modal-sandbox-1234",
  "url": "https://seemodo--sandbox-1234.modal.run",
  "apiUrl": "https://seemodo--sandbox-backend.modal.run",
  "message": "Modal-Sandbox erfolgreich erstellt"
}

Sandbox-Initialisierung

Wenn eine Sandbox erstellt wird, wird automatisch eingerichtet:
1

Projektstruktur

Erstellt ein komplettes Vite React-Projekt mit TypeScript-Unterstützung.
2

Dependencies

Installiert React, Tailwind CSS und gängige UI-Dependencies.
3

Vite-Konfiguration

Konfiguriert HMR (Hot Module Replacement) für Live-Updates.
4

Dev Server

Startet den Vite Dev-Server und gibt die Vorschau-URL zurück.

Projekt-Template

Die erstellte Sandbox beinhaltet:
/
├── package.json          # Dependencies und Scripts
├── vite.config.js        # Vite mit React und HMR
├── tailwind.config.js    # Tailwind-Konfiguration
├── postcss.config.js     # PostCSS Setup
├── index.html            # HTML-Einstiegspunkt
└── src/
    ├── main.jsx          # React-Einstieg
    ├── App.tsx           # Haupt-App-Komponente
    ├── index.css         # Tailwind-Imports
    └── pages/            # Generierte Seiten kommen hierhin

Beispiel-Verwendung

// Neue Sandbox erstellen
const response = await fetch('/api/create-ai-sandbox-v2', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ forceNew: false })
});

const { sandboxId, url } = await response.json();

// Jetzt Sandbox für Generierung nutzen
await fetch('/api/generate-screen', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    prompt: 'Eine schöne Landing Page',
    sandboxId: sandboxId
  })
});

// Vorschau ist unter zurückgegebener URL verfügbar
console.log('Vorschau:', url);

Sandbox-Lebenszyklus

Bestehende Sandboxes wiederverwenden

Die API verwendet automatisch bestehende Sandboxes wenn möglich:
// Erster Aufruf erstellt neue Sandbox
await fetch('/api/create-ai-sandbox-v2', { method: 'POST' });

// Zweiter Aufruf gibt bestehende Sandbox zurück
await fetch('/api/create-ai-sandbox-v2', { method: 'POST' });

// Neue Sandbox erzwingen
await fetch('/api/create-ai-sandbox-v2', {
  method: 'POST',
  body: JSON.stringify({ forceNew: true })
});

Fehlerbehandlung

FehlerUrsacheLösung
Sandbox-Erstellung läuft bereitsGleichzeitige Erstellungs-AnfragenAuf bestehende Erstellung warten
Sandbox-Erstellung fehlgeschlagenProvider-FehlerProvider-Credentials prüfen
npm install fehlgeschlagenDependency-ProblemeErneut versuchen oder Template prüfen

Fehler-Antwort

{
  "error": "Sandbox-Erstellung fehlgeschlagen",
  "details": "Modal-Backend antwortet nicht"
}

Konfiguration

Sandbox-Verhalten wird in config/app.config.ts konfiguriert:
modal: {
  enabled: true,
  timeoutMinutes: 60,
  defaultPort: 5173,
  workDir: '/root/vite-app'
},
vercelSandbox: {
  timeoutMinutes: 30,
  devPort: 3000,
  runtime: 'nodejs20'
}

Umgebungsvariablen

VariableBeschreibung
MODAL_BACKEND_URLURL zum Modal Backend-API
VERCEL_TOKENVercel API-Token (für Vercel-Provider)
VERCEL_TEAM_IDVercel Team-ID
VERCEL_PROJECT_IDVercel Projekt-ID

Hinweise

  • Sandboxes haben Timeout nach konfigurierter Dauer (Standard 60 Minuten)
  • Modal-Sandboxes beinhalten Seemodo AI für intelligente Code-Generierung
  • Vercel-Sandboxes sind leichter aber ohne Seemodo AI
  • Typisch ist nur eine Sandbox pro Session aktiv