Zum Inhalt springen
Sealpixel
en

Klein bearbeiten. Groß rendern. Identisch.

Deine Nutzer bearbeiten eine Vorschau im Browser. Dein Server wendet dasselbe Edit-Log auf das 80-Megapixel-Original an und liefert dieselben Pixel. Per Hash belegt.

Umgestalten

Alles hier ist CSS. Kopieren und in deine App einfügen.

Preset
<sealpixel-editor theme="dark" locale="de">

Belege statt Versprechen

Zur Paritäts-DemoCI-Workflow lesen

  • 125

    Referenz-Renderings

    Edit-Logs und Pläne mit festgeschriebenen Hashes

  • 122

    CLI-Paritätsfälle

    natives Rust und Node liefern gleiche Bytes

  • 83

    Browser-Testläufe

    in 3 Engines bei jedem Commit

  • 383 KB

    komprimierter Kern

    1,3 MB unkomprimiert, eine Binary für jede Runtime

Läuft identisch in Chrome, Safari, Firefox, Node.js, Deno, Bun, AWS Lambda

Eine Komponente. Drei Produkte.

Dasselbe Element mit anderen Plugins, Themes und Sprachen. Kein Fork, kein Build-Schritt: Attribute und CSS.

Profilbild

Eine Registrierung: rund zuschneiden, aufhellen, fertig. Zwei Werkzeuge, helles Theme, kein Export-Knopf; der Export behält nur den Kreis.

Marketing-Studio

Ein Content-Team bereitet Kampagnenbilder vor: alle Werkzeuge, dunkles Graphit, runde Buttons.

Schwärzungsstelle

Ein Compliance-Team verpixelt personenbezogene Daten in gescannten Formularen. Schwärzen, Annotieren, Wasserzeichen, kontraststarkes Theme, deutsche Oberfläche.

Gebaut für Daumen, nicht nur für Cursor.

Dieselbe Komponente richtet sich auf dem Smartphone von selbst ein. Keine zweite Oberfläche, kein Mobile-Flag. Probier es im Rahmen aus.

  • Eine Komponente, zwei Layouts

    Unter 768 px Containerbreite wandert die Werkzeugleiste nach unten, die Einstellungen des offenen Werkzeugs sitzen darüber. Maßgeblich ist der Container, nicht der Viewport, deshalb bekommt auch eine schmale Seitenleiste das Smartphone-Layout.

  • Touch zuerst

    Zwei Finger zum Zoomen, ziehen zum Verschieben, ein Finger für Zuschnitt-Griffe, Schwärzungen und Anmerkungen. Mausrad und Trackpad tun auf dem Desktop dasselbe.

  • Nur die Vorschau reist

    Das Smartphone lädt und bearbeitet eine kleine Vorschau. Das Edit-Log geht an deinen Server, der es auf das Original in voller Auflösung anwendet. Dieselben Pixel, ein Bruchteil der Daten.

  • Notch und Home-Balken

    Safe-Area-Abstände werden eingehalten. show-history="buttons" lässt die Zeitleiste weg und show-export="never" blendet Export aus, damit das Wesentliche auf einen kleinen Bildschirm passt.

Live-Editor im Smartphone-Rahmen. Ziehen, zoomen, tippen.

Das Edit-Log ist das Bild

Ein Log, ein Kern

Jeder Zuschnitt, Filter und jede Anmerkung ist eine Operation in einem JSON-Log. Ein Rust-Kern, zu WebAssembly kompiliert, führt es im Web Worker, auf Node, Deno, Bun oder AWS Lambda aus. Gleiche Bytes rein, gleiche Bytes raus.

Byte-identisch, per Hash geprüft

Gleiche Quelle, gleiches Log, egal wo gerendert: der SHA-256 stimmt überein. Große Uploads werden auf dem Smartphone als Proxy bearbeitet; der Server rendert das Original aus demselben Log.

Aus JSON fortsetzen

Das Original einmal speichern, das Log daneben. Jeden Zustand auf jedem Gerät wieder öffnen, ohne Generationsverlust. Das Log kann im exportierten PNG, JPEG oder WebP mitreisen.

Jedes Werkzeug, das deine Nutzer erwarten

Zehn Plugins sind dabei. Jedes ist ein Paket, das du weglassen, ersetzen oder erweitern kannst.

  • Zuschneiden

    Frei drehen, spiegeln, Seitenverhältnisse, Griffe bleiben auf jedem Bildschirm 7 px groß.

    @sealpixel/plugin-crop
  • Feinabstimmung

    Helligkeit, Kontrast, Sättigung, Belichtung, Gamma, Klarheit und Vignette.

    @sealpixel/plugin-finetune
  • Filter

    Graustufen, Sepia, Vintage, Kalt, Warm und jede 4×5-Farbmatrix, mit Stärke.

    @sealpixel/plugin-filter
  • Schwärzen

    Rechtecke und Freiformen verpixeln oder weichzeichnen. Zellen rasten am Quellraster ein, damit Proxy und Original übereinstimmen.

    @sealpixel/plugin-redact
  • Annotieren

    Rechtecke, Ellipsen, Linien, Pfeile, Freihand und Text. Schriften sind gehashte Assets: überall identische Glyphen.

    @sealpixel/plugin-annotate
  • Sticker

    Logos und Bild-Assets mit Drehung, Spiegelung und Deckkraft platzieren.

    @sealpixel/plugin-sticker
  • Rahmen

    Voll-, Innen- und Polaroid-Rahmen.

    @sealpixel/plugin-frame
  • Wasserzeichen

    Bild oder Text, verankert oder gekachelt, auf dem Server identisch angewandt.

    @sealpixel/plugin-watermark
  • Skalieren

    Contain, Cover und Fill auf eine Zielgröße. Lanczos3 abwärts, Catmull-Rom aufwärts.

    @sealpixel/plugin-resize
  • Füllung

    Hintergrundfarbe für Flächen, die Drehung oder Zuschnitt freilegen.

    @sealpixel/plugin-fill

Eine Komponente für jeden Stack

Darunter eine Web Component, darüber dünne, typisierte Wrapper. Kontrollierte und unkontrollierte Edit-Logs überall.

Server-Rendering

Ein Fetch-Handler für Node, Deno, Bun und AWS Lambda.

In StackBlitz öffnen
import { createSealpixelHandler } from '@sealpixel/server';
import { defaultPlugins } from '@sealpixel/plugins';

// One fetch handler: Node (srvx), Deno.serve, Bun.serve, or toLambdaHandler().
export default createSealpixelHandler({
  plugins: defaultPlugins,
  limits: { maxMegapixels: 80 },
  idempotent: true, // same source + log + options → same job key, cached result
});

Von Entwicklern gebaut, für Entwickler dokumentiert

Headless-Kern, typisiertes Edit-Log, ein Plugin-SDK mit Test-Kit und eine Doku mit Live-Editoren auf jeder Seite.

Dasselbe Edit-Log, in deinem Framework

<script type="module">
  import '@sealpixel/element';
  const editor = document.querySelector('sealpixel-editor');
  editor.src = '/photo.jpg';
  editor.addEventListener('sealpixel:process', (e) => {
    const { bytes, hash } = e.detail; // same hash your server will produce
  });
</script>

<sealpixel-editor theme="auto" locale="en"></sealpixel-editor>

In StackBlitz öffnen

Ganz nach deinem Stil

CSS-Variablen für jede Farbe, jeden Radius und jede Größe. ::part() greift auf Buttons, Leiste und Stage zu. Fünf Themes und sechs Sprachen sind dabei.

  • 25

    Design-Tokens

  • 18

    Shadow-Parts

  • 5

    Themes

  • 6

    Sprachen

@import '@sealpixel/ui/themes/nocturne.css';

sealpixel-editor {
  --sealpixel-color-accent: #b48cff;
  --sealpixel-radius: 16px;
  --sealpixel-toolbar-size: 72px;
}

sealpixel-editor::part(export) { display: none; }
sealpixel-editor::part(button) { border-radius: 999px; }

Customizer öffnen

Der Server rendert, was der Browser gezeigt hat

Schick das Original und das Edit-Log an einen Fetch-Handler. Er validiert das Log, rendert mit derselben WebAssembly-Binary und liefert Bytes, Hash und einen Job-Schlüssel. Dieselbe Anfrage noch einmal liefert das gecachte Ergebnis.

  • Zod-validierte Anfrage, SSRF-Allowlist, Größenlimits vor dem Decode
  • Idempotente Job-Schlüssel: gleiche Quelle, gleiches Log, gleiche Optionen, gleiches Objekt
  • S3- oder URL-Quellen, S3- oder Inline-Ziele, Proxy-Modus für große Uploads
  • Speichertabelle von 12 bis 80 Megapixel
POST /render
{
  "source": { "kind": "s3", "bucket": "uploads", "key": "IMG_4821.jpg" },
  "editLog": { "version": 1, "source": { "id": "IMG_4821", "width": 8192, "height": 5461 }, "ops": [ … ] },
  "output": { "format": "image/jpeg", "quality": 0.92 },
  "destination": { "kind": "s3", "bucket": "renders" }
}

200 OK
{
  "key": "renders/3f9a…c1.jpg",
  "hash": "3f9a4e…b7c1",       ← equals the browser's hash for the same input
  "width": 6144, "height": 4096,
  "cached": false,             ← true on the second identical request
  "timings": { "decode": 412, "render": 1730, "encode": 388 }
}

Erweitern ohne Fork

Ein Plugin ist ein npm-Paket: Operationen mit zod-Schemas, ein Reducer, ein Kernel in JavaScript oder in Rust als eigenes WebAssembly-Modul, und optional ein Werkzeug mit Panel und Gizmo. Es läuft auf dem Client und dem Server, ohne den Kern neu zu bauen.

Plugin anlegen

npm create @sealpixel/plugin acme-spotlight -- --kernel wasm-rust
cd acme-spotlight && npm test   # parity: Node vs Chromium, WebKit, Firefox

Paritäts- und Fuzz-Test-Kit inklusive ·Plugin-SDK

Im Vergleich

Angaben von den öffentlichen Seiten der Anbieter, September 2026.

SealpixelPinturaIMG.LY CE.SDK
QuellcodeSource available: lesen, ändern, weitergebenGeschlossen, private npm-RegistryGeschlossen, Escrow für Enterprise
Server-RenderingNode, Deno, Bun, LambdaNeinNode.js
Byte-identische Ausgabe von Client und ServerJa, per Hash geprüftNeinGleiche Engine, nicht als Garantie veröffentlicht
Serialisierbarer BearbeitungszustandEdit-Log, typisiert und validiertimageState-ObjektScene-Datei
Plugin-SDK für DritteJS- und Rust-KernelNicht erweiterbarPlugin-API
React, Vue, Svelte, AstroJa, plus Web ComponentJa, plus Angular, jQueryJa, plus native Mobile
Preis unter 1 Mio. EUR UmsatzKostenlos169 € pro Jahr, ein ProduktNur auf Anfrage
Preis pro Entwickler und Jahr499 €749 €Nur auf Anfrage
Rückgabefrist30 Tage60 Tage30 Tage Testphase

Kostenlos für Menschen. Fair für Unternehmen.

Eine Regel: Unter einer Million Jahresumsatz zahlst du nichts. Darüber zahlst du pro Entwickler, der den Code anfasst.

Klein

Kostenlos

Für Einzelpersonen und für Unternehmen unter 1.000.000 EUR Jahresumsatz. Produktiveinsatz und kommerzielle Produkte eingeschlossen.

  • Alle Plugins, Wrapper und der Server-Handler
  • Jedes Release
  • Community-Support auf GitHub
Loslegen

Unternehmen

499 €

pro Entwicklerplatz und Jahr, zzgl. anfallender Steuern

Einstiegsstufe, 1 bis 4 Plätze. Ab 5 und ab 10 wird jeder Platz günstiger.

Ab 1.000.000 EUR Jahresumsatz. Plätze sind übertragbar und gelten für jedes Produkt, jede Domain und jede Umgebung.

  • Updates und E-Mail-Support für zwölf Monate
  • Jedes erhaltene Release für immer behalten
  • 30 Tage Geld-zurück-Garantie
  • Verkauf und Rechnung über Paddle, Steuern inklusive, wo sie anfallen
Plätze anfragen

Enterprise

Auf Anfrage

Ab 25 Plätzen, oder wenn der Einkauf mehr braucht als eine Rechnung.

  • Quellcode-Escrow
  • Individuelle Bedingungen und SLA
  • Bestellnummer, Rechnung und Überweisung
Kontakt aufnehmen

Mengenpreise

Die Stufe richtet sich nach deiner Gesamtzahl an Plätzen und ihr Preis gilt für jeden davon. Später gekaufte Plätze werden anteilig auf dein bestehendes Verlängerungsdatum abgerechnet. Erreicht die Gesamtzahl eine günstigere Stufe, gilt sie ab dem Tag des Nachkaufs für alle Plätze, anteilig für die Restlaufzeit und vollständig ab der nächsten Verlängerung. Die bereits abgelaufene Zeit wird nicht neu berechnet.

PlätzePro Platz und Jahr
1 bis 4499 €
5 bis 9449 €
10 bis 24399 €
ab 25Kontakt aufnehmen

Business Source License 1.1, nach vier Jahren Apache 2.0. Keine Lizenzprüfung zur Laufzeit: die Software telefoniert nie nach Hause. Lizenz lesen

Unsere Bestellabwicklung erfolgt über unseren Online-Reseller Paddle.com. Paddle ist Merchant of Record für alle unsere Bestellungen und wickelt Umsatzsteuer, GST und Sales Tax ab. Lizenzgeber der Software bleiben wir. Buyer Terms von Paddle

Fragen

Wer nutzt Sealpixel kostenlos?

Alle unter 1.000.000 EUR Bruttojahresumsatz: Einzelpersonen und Unternehmen unterhalb dieser Schwelle. Produktiveinsatz und kommerzielle Produkte sind eingeschlossen. Der Umsatz zählt für die gesamte Unternehmensgruppe, eine Tochter eines Konzerns ist also nicht frei. Bei Kundenarbeit entscheidet der Umsatz des Kunden: Ein Freelancer, der für ein kleines Startup baut, zahlt nichts, derselbe Freelancer für einen großen Kunden ist über dessen Plätze abgedeckt.

Ich bin eine Agentur. Was zahle ich?

Einen Platz pro Entwickler, der an Codebasen mit Sealpixel arbeitet, egal für wie viele Kunden oder Produkte. Der Platz deines Entwicklers deckt seine gesamte Kundenarbeit ab. Deine Kunden brauchen keine eigenen Plätze und keine, um die fertige Anwendung zu betreiben.

Wie funktionieren die Mengenstufen?

Sag uns, wie viele Plätze du brauchst. 1 bis 4 Plätze kosten je 499 EUR pro Jahr, 5 bis 9 je 449, 10 bis 24 je 399, und die Stufe gilt für jeden Platz, den du hältst. Später gekaufte Plätze werden anteilig auf dein bestehendes Verlängerungsdatum abgerechnet; erreicht die Gesamtzahl eine günstigere Stufe, gilt sie ab dem Tag des Nachkaufs für alle Plätze — anteilig für die Restlaufzeit und vollständig ab der nächsten Verlängerung. Die bereits abgelaufene Zeit wird nicht neu berechnet. Ab 25 Plätzen machen wir ein individuelles Angebot.

Darf ein Open-Source-Projekt Sealpixel nutzen?

Ja. Sealpixel selbst ist source available unter der Business Source License 1.1 und nicht Open Source, ein Projekt mit dieser Abhängigkeit erbt also diese Bedingungen: Beitragende unterhalb der Umsatzschwelle brauchen keine Plätze, ein Unternehmen, das das Projekt entwickelt, braucht Plätze für seine Entwickler, und Kopien und Forks bleiben unter der BUSL. Jedes Release wird vier Jahre nach Veröffentlichung Apache 2.0.

Ist Sealpixel Open Source?

Nein. Sealpixel ist source available unter der Business Source License 1.1. Der Quellcode ist öffentlich, du darfst ihn lesen, ändern, forken und weitergeben, und die produktive Nutzung ist unterhalb der Umsatzschwelle frei — aber die BUSL ist keine von der OSI anerkannte Lizenz, es Open Source zu nennen wäre also falsch. Vier Jahre nach Veröffentlichung wird eine Version Apache License 2.0, und diese Version ist dann Open Source im Sinne der OSI.

Was genau ist ein Entwicklerplatz?

Ein Platz gehört einer namentlich benannten Person, die Code in einem Projekt mit Sealpixel schreibt, prüft, testet oder integriert. Er kann übertragen werden, wenn die Person ausscheidet. Designer in der Codebasis und QA zählen mit. Endnutzer deiner Anwendung brauchen nie einen Platz, egal wie viele es sind, und Leute, die sie nur betreiben oder verwalten, ebenso wenig.

Darf ich ein SaaS auf Sealpixel bauen?

Ja. Die einzige Grenze ist ein Dienst, dessen Hauptwert der Bildeditor selbst ist, etwa ein gehostetes „Bearbeite dein Bild“-Produkt oder eine an Dritte verkaufte Bildbearbeitungs-API. Ein Fotobuch-Shop, ein CMS, ein Immobilienportal oder ein Support-Tool mit eingebauter Bearbeitung sind in Ordnung.

Bei wem kaufe ich eigentlich, und wer stellt die Rechnung?

Bei Paddle. Unsere Bestellabwicklung erfolgt über unseren Online-Reseller Paddle.com, der Merchant of Record für alle unsere Bestellungen ist: Du kaufst die Plätze von Paddle, Paddle stellt die Rechnung und berechnet, erhebt und führt Umsatzsteuer, GST oder Sales Tax für dein Land ab. Gib deine USt-IdNr. im Checkout an, damit die richtige Behandlung greift. Hersteller und Lizenzgeber von Sealpixel bleiben wir — die Softwarelizenz erteilen wir nach der Developer Seat License, nie Paddle.

Wie funktioniert die Rückerstattung?

Kündige innerhalb von 30 Tagen nach dem ersten Kauf, und du bekommst den vollen Betrag zurück, auf demselben Weg, auf dem die Zahlung kam. Die Rückerstattung wickelt Paddle als unser Merchant of Record ab; schreib uns oder Paddle, wir stimmen in beiden Fällen zu. Ohne Nachfragen.

Was genau ist byte-identisch?

Dieselben Quellbytes plus dasselbe Edit-Log, gerendert mit derselben Kernversion, ergeben dieselben Ausgabebytes und denselben SHA-256, in jedem Browser, auf Node, Deno, Bun und Lambda. Wenn ein Handy einen verkleinerten Proxy bearbeitet und der Server das Original rendert, ist die Komposition identisch (gleiche normalisierte Geometrie), die Bytes unterscheiden sich aber, weil die Eingaben andere sind. Die Doku erklärt das im Detail.

Wie groß ist der Download?

Der WebAssembly-Kern hat etwa 1,3 MB unkomprimiert und 390 KB mit Brotli und wird erst geladen, wenn der Editor erscheint. Lit-UI und Render-Worker kommen mit wenigen Dutzend Kilobyte dazu. In der CI gibt es einen Budget-Check.

Welche Browser werden unterstützt?

Aktuelle Versionen von Chrome, Edge, Safari und Firefox auf Desktop und Mobilgeräten. Jeder Commit lässt die Paritäts-Suite in Chromium, WebKit und Firefox laufen, die UI-Suite in Chromium und WebKit. Auf iOS Safari fällt der Download auf das Teilen-Menü zurück.

Kann ich ein eigenes Werkzeug schreiben?

Ja. npm create @sealpixel/plugin legt ein Paket mit Operationen, Reducer, JavaScript- oder Rust-Kernel und Werkzeug-Panel an. Das Test-Kit rendert dein Plugin in Node und drei Browsern und prüft gleiche Hashes. Zwei Beispiel-Plugins liegen im Repository.