Open-source image processing in the browser: quick tools for converting, compressing, resizing, cropping, rotating and stripping metadata, and a node-based Studio for batch pipelines. Images never leave your device.
Requires Node.js 24 and pnpm 11.
git clone git@github.com:pixelactstudio/hexlode.git
cd hexlode
pnpm install
pnpm devOpen http://localhost:3000. No .env.local is needed; copy
.env.example to .env.local only to enable analytics or error reports.
Hexlode processes images in the browser's Origin Private File System, which browsers turn on only
over HTTPS or at localhost. To open the dev server from another device, serve it over HTTPS,
for example with tailscale serve --bg --https=8443 http://127.0.0.1:3000. Over plain HTTP the
tools explain this instead of running.
| Command | What it does |
|---|---|
pnpm test |
Unit tests in Node and browser tests in Chromium. |
pnpm test:scale |
500 images of 12 megapixels through a template, checking memory. Takes minutes. |
pnpm validate |
Biome, TypeScript, pnpm test and a production build. |
Browser tests use the Chromium at PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH, or the one
pnpm exec playwright install chromium downloads.
CI publishes ghcr.io/pixelactstudio/hexlode for x86 and ARM on every push to main.
docker run -p 3000:3000 ghcr.io/pixelactstudio/hexlode:latestSettings come from the container's environment, for example -e VITE_POSTHOG_KEY=… and
-e VITE_SENTRY_DSN=… to enable analytics and error reports. DEPLOY.md covers
Dokploy, every variable, zero-downtime updates and deploying on each push.
idea.md describes the product, implementation.md the plan and engine, CONTEXT.md the vocabulary and docs/adr/ the decisions.
Apache License 2.0. Copyright 2026 Dev Talan. The jSquash codecs keep their own
licences, listed in node_modules/@jsquash/*/LICENSE and bundled with the app.