photocn
GPU photo editing for shadcn/ui

A photo editor you own, one component at a time.

photocn is a WebGL photo editor distributed the shadcn way. Install the complete editor with one command, or pick the pieces you need and compose them like Lego. Rendering runs off the main thread, so sliders stay smooth on 24-megapixel photos.

pnpm dlx shadcn@latest add https://photocn.dev/r/image-editor.json

Drop in the whole editor

One command gives you the full editor: canvas, curves, filters, crop, blur, blend, EXIF and export. It uses your theme and your primitives.

<ImageEditor src={file} />

Snap the pieces together

Every panel, button and canvas is a separate component that reads the nearest provider. Arrange them however you like.

<ImageEditorProvider>
  <ImageEditorCanvas />
  <ImageEditorFilters />
</ImageEditorProvider>

Go fully headless

useImageEditor() exposes params, history, crop, filters and export. Build any UI you want on top of it.

const editor = useImageEditor()
editor.filters.select("juno")

Build a different editor with the same parts

This phone-style filter picker is the canvas component plus a dozen lines of your own JSX on top of useImageEditor().

See more compositions