Work05Browser application

Transmute

Files in. Other files out. A local-first file converter. Images to PNG, JPG, WebP, GIF or PDF; DOCX to HTML, Markdown or text; CSV, TSV and JSON between each other. Every conversion runs in the tab, and the app works offline after first load.

Type
Browser application
Role
Design & development
Year
2026
Live at
convert.madebygio.dev
Transmute file converter on a dark grid: "Drop files anywhere" with a Browse files button, format groups for Images, Word and Data, and a side panel with a quality slider and a Convert file button
Transmute file converter on a dark grid: "Drop files anywhere" with a Browse files button, format groups for Images, Word and Data, and a side panel with a quality slider and a Convert file button
  1. 01 /

    Why

    Online converters ask you to upload the file to find out what you will get back. Transmute does the work with the Canvas API and a few well-chosen libraries in the browser, then explains exactly what it did with GIF palettes, JPG transparency and PDF page sizes instead of guessing on your behalf.

02 / Details

What it actually does.

  • 01

    Three families

    Images (PNG, JPG, WebP, GIF, BMP, AVIF, SVG), Word documents (DOCX) and tabular data (CSV, TSV, JSON).

  • 02

    Honest edge cases

    JPG has no alpha, so transparency is painted onto a colour you pick. PDF embeds opaque images as JPEG and transparent ones as PNG. Unsupported or broken files are reported per file, with the reason.

  • 03

    Loads only what it needs

    The PDF, DOCX and CSV libraries are dynamic imports, so the first paint carries only the image path.

  • 04

    No network after load

    No analytics, no telemetry, no upload endpoint. Disconnect and convert anyway.

03 / Stack

Built with.

A React 19 application built with Vite and Tailwind CSS. Everything runs in the browser; the build is a static folder deployed to Vercel on its own subdomain.

  • 01React 19
  • 02Vite
  • 03Tailwind CSS
  • 04Canvas API
  • 05pdf-lib