2026-10-06 19:34:11 +05:00
2026-09-09 04:13:13 +05:00
2026-10-04 07:18:50 +05:00
2026-10-06 11:27:01 +00:00
2026-09-01 15:20:28 +05:00
2026-10-06 11:27:01 +00:00
2026-09-09 04:13:13 +05:00
2026-10-04 07:18:50 +05:00

easy-png-tools

Browser-based image utility toolkit — no server, no data upload, everything runs locally in your browser.

Inspired by online services like onlinepngtools.com, but fully offline-capable and open source.

Features

  • A full set of image tools across categories: conversion, transparency/alpha, color, channel decomposition, geometry, filters, pixel-property masks, generation, text/watermarks, analysis & verdicts — the current list lives in docs/tools-map.md
  • Web Worker execution — heavy operations run off the main thread with automatic fallback to direct calls
  • i18n — full Russian and English localization
  • Dark/Light themes — persisted to localStorage
  • Pure TypeScript core — lib/core/ operates on ImageData/Uint8ClampedArray with no DOM dependency
  • Fully static — no backend; the image never leaves your browser. The only third-party request is a Google Analytics page-view counter — it never sees the file or its contents; the boundary and its limits are in docs/plan-seo.md §0

Tech Stack

  • SvelteKit (Svelte 5, runes mode) with static adapter — pure static export, no server
  • Vite + TypeScript (strict)
  • Vitest for unit tests, Playwright for e2e
  • ESLint (incl. local plugins) + Stylelint + Prettier
  • pnpm (required, ^11.20.0)
  • Lucide icons, IBM Plex fonts (self-hosted)

Getting Started

Prerequisites

Install & Run

pnpm install
pnpm dev

Build

pnpm build

Static output is written to web/build/.

Commands

Run from the repository root; pnpm --dir web … targets the app package.

pnpm install
pnpm dev        # dev server
pnpm verify     # full fast quality gate — the pre-review gate
pnpm build      # static production export → web/build/

For the full command list and the "which checks to run for which change" matrix, see AGENTS.md and docs/quality-gates.md.

Architecture

Everything is built around the two-layer registry (web/src/lib/registry/): a tool is a self-contained implementation {id, schema, input, result, run} (registry/tools/), and a page is {slug, title, description, category, steps} (registry/pages/) that names the address and the tools to run — one tool can back several pages. Pages and forms are generated from it, and all execution goes through a single executor.execute entry point.

Core image processing lives in web/src/lib/core/ and operates directly on ImageData, with no browser API dependencies.

Layering, data flow, and the recipe for adding a tool or a field kind: docs/architecture.md.

Roadmap

See docs/roadmap.md for phases and docs/plan-platform.md for the API/PWA direction. The current focus is SEO/GEO (docs/plan-seo.md) plus the product tasks in docs/backlog.md.

For AI agents

Read AGENTS.md first — it is the mandatory short contract.

License

MIT

S
Description
No description provided
Readme
5.4 MiB
Languages
HTML 100%