Personal web tools
A small collection of tools I built for my own day-to-day use. They're public, but tailored to how I work rather than meant as a general-purpose toolkit. Everything runs entirely inside your browser.
Your input never leaves your browser
Tags:
Sort:
All tools
37 / 37

Voice recorder
Record from your mic and download as MP3 / WAV. Everything runs in your browser.
audiorecordingmedia

PDF to PNG
Upload a PDF and convert each page to PNG. Save pages individually or download all as ZIP. Runs entirely in your browser.
pdfimageconversion

Japan tax estimator (for sole proprietors)
Annual tax & social-insurance estimator for Japanese sole proprietors. Covers income tax, resident tax, consumption tax, business tax, and furusato-nozei cap. Runs entirely in your browser.
taxfinancecalculator

Real-time transcription
Live transcribe your mic with Whisper running inside your browser. Segments split on silence, displayed as chat bubbles, click to copy. No audio or model data leaves your device. Performance and supported model size depend on your hardware (CPU / GPU / RAM).
audiotranscriptionAI

Audio file transcription
Upload an MP3 / WAV / M4A file and transcribe it with Whisper running inside your browser. Long files are chunked automatically. No audio or model data leaves your device. Performance and supported model size depend on your hardware (CPU / GPU / RAM).
audiotranscriptionAI

PDF merge
Drag and drop multiple PDFs, reorder them, and merge into a single PDF. Runs entirely in your browser.
pdfmerge

PDF unlock
Remove encryption from a PDF using qpdf (WASM) running inside your browser. Owner-only restricted PDFs unlock with an empty password; user-password-protected PDFs need the correct password. Text and layout are preserved. Runs entirely in your browser.
pdfunlock

PDF split
Split a PDF using one of three modes: page ranges, every N pages, or one PDF per page. Download all parts as a ZIP. Runs entirely in your browser.
pdfsplit

PDF reorder / delete pages
Drag pages of a PDF to reorder them, remove unwanted pages, and generate a new PDF with thumbnail previews. Runs entirely in your browser.
pdfreorder

Image EXIF strip
Remove EXIF, XMP and other metadata from JPEG / PNG / WebP files. For JPEG, only the metadata bytes are stripped — image quality is preserved exactly. Inspect embedded GPS or capture date before sharing. Runs entirely in your browser.
imageEXIF

Image resize
Resize JPEG / PNG / WebP images by specifying the longer side in pixels — aspect ratio is preserved. Batch process multiple files and download individually or as a ZIP. Runs entirely in your browser.
imageresize

Image compress
Shrink image file sizes without changing dimensions. JPEG / WebP are re-encoded via a quality slider; PNG is losslessly optimised with oxipng (WASM). Batch process multiple files and download individually or as a ZIP. Runs entirely in your browser.
imagecompress

World clock
Show the current time across multiple cities live, side by side. Pin one city's time as the base and the rest update to the matching local time. Cities can be added or removed freely.
time

JWT decoder
Paste a JWT and break it down into Header / Payload / Signature. Numeric claims like exp / iat / nbf are translated into human-readable timestamps. No signature verification — purely for inspection. Runs entirely in your browser.
developerJWT

JWT signature verify
Verify a JWT signature using WebCrypto — supports HS / RS / PS / ES with SHA-256/384/512. Paste an HMAC secret for HS*, or an SPKI PEM / JWK public key for RSA / ECDSA. exp / nbf are checked alongside the signature. Nothing leaves your browser.
developerJWT

Text diff viewer
Compare two texts line by line. Supports inline and side-by-side views, word-level highlighting, and ignoring surrounding whitespace. Runs entirely in your browser.
developerdiff

JSON structural diff viewer
Compare two JSON documents structurally. Walks nested objects and arrays recursively and highlights added / removed / modified / moved entries. Runs entirely in your browser.
developerdiff

Regex tester
Type a pattern and flags to highlight matches in the test string in real time. Capture groups and named groups are listed for every match, and there's a replace preview using $1 etc. Runs entirely in your browser.
developerregex

Kanji → Hiragana
Convert Japanese text to hiragana using kuromoji morphological analysis. Choose between fully hiragana output, or a furigana mode that keeps kanji and adds hiragana ruby above. The dictionary downloads once and is then offline. Runs entirely in your browser.
japanese

Kanji → Rōmaji
Convert Japanese text to Hepburn romaji using kuromoji morphological analysis. Switch between full romaji and a ruby view, and choose macron long vowels (ō, ū) or literal doubled vowels (ou, uu). The dictionary downloads once and is then offline. Runs entirely in your browser.
japanese

HEIC → JPEG / PNG
Decode iPhone HEIC / HEIF photos inside the browser via libheif-js (WASM) and re-encode them as JPEG or PNG. Supports batch conversion and a single ZIP download. Nothing leaves your device.
image

Background remover
Run the BRIA RMBG-1.4 segmentation model in your browser via transformers.js + ONNX Runtime Web to cut the subject out and export a transparent PNG. The model downloads once and works offline afterwards. Supports batch processing with a ZIP download. Images never leave your device.
image

Video EXIF strip
Strip metadata (EXIF / GPS / capture date / etc.) from video files entirely in your browser using ffmpeg.wasm. Uses stream copy so the codec, quality and file extension are preserved (no re-encoding). Supports batch processing and a single ZIP download. Videos never leave your device.
videoEXIF

Video mute
Drop the audio track from a video using ffmpeg.wasm, keeping the original video codec and quality intact (stream copy, no re-encoding). Supports batch processing and a single ZIP download. Videos never leave your device.
videoaudio

PDF metadata strip
Remove the PDF Info dictionary (Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate) and the XMP metadata stream entirely in the browser via pdf-lib. The page content is untouched. Supports batch processing and a single ZIP download.
pdfEXIF

Audio metadata strip
Drop ID3, Vorbis comment, iTunes and other tags from audio files using ffmpeg.wasm — entirely in your browser. Uses stream copy so the codec, quality and file extension are preserved. Supports batch processing and a single ZIP download.
audioEXIF

Video format convert
Change the video container (e.g. mov → mp4) without re-encoding by using ffmpeg.wasm stream copy. Works for codec-compatible combinations only. Supports batch processing and a single ZIP download.
videoconversion

Audio format convert
Convert audio files to mp3 / wav / m4a / ogg / flac. ffmpeg.wasm picks an encoder based on the chosen extension and re-encodes the file entirely in your browser. Supports batch processing and a single ZIP download.
audioconversion

Extract audio from video
Pull just the audio track out of a video and save it as mp3 / wav / m4a / ogg. ffmpeg.wasm drops the video stream and re-encodes the audio in the chosen format. Supports batch processing and a single ZIP download.
videoaudio

Image format convert
Convert images between JPEG / PNG / WebP using the browser canvas — no network. A quality slider is available for JPEG and WebP. Supports batch processing and a single ZIP download.
imageconversion

Video cut
Trim a video to a chosen range with ffmpeg.wasm using stream copy — no re-encoding, no quality loss, original codec and extension preserved. Cut points snap to the nearest keyframe so the start may shift slightly. Supports batch processing and a single ZIP download.
video

Video merge
Concatenate multiple video files via the ffmpeg.wasm concat demuxer. Reorder by drag. Stream copy keeps the codec untouched, but all inputs must share the same codec / resolution / frame rate (great for stitching segments produced by the video cut tool).
videomerge

Video → GIF
Convert videos to GIFs in your browser. Uses ffmpeg.wasm's two-pass palettegen + paletteuse for better color fidelity and lets you set fps, width and a trim range. Supports batch processing and a single ZIP download.
videoconversion

Audio cut
Trim an audio file to a chosen range with ffmpeg.wasm stream copy — no re-encoding, original codec and extension preserved. Cut points snap to the nearest keyframe. Supports batch processing and a single ZIP download.
audio

Audio merge
Concatenate multiple audio files via the ffmpeg.wasm concat demuxer. Reorder by drag. Stream copy keeps codec untouched, but all inputs must share the same codec and sample rate.
audiomerge

Video resize
Resize a video to a target width with the height inferred from the aspect ratio. Re-encodes with libx264 (CRF adjustable) and outputs mp4. Supports batch processing and a single ZIP download.
videoresize

Video compress
Re-encode a video with libx264 at the chosen CRF to shrink the file size while keeping the resolution. Pick a preset to trade speed for compression. Output is mp4. Supports batch processing and a single ZIP download.
videocompress