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
Voice recorder
Record from your mic and download as MP3 / WAV. Everything runs in your browser.
audiorecordingmedia
PDF to PNG
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)
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
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
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
PDF merge
Drag and drop multiple PDFs, reorder them, and merge into a single PDF. Runs entirely in your browser.
pdfmerge
PDF unlock
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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