About Stayput
Stayput is a small collection of file tools that run entirely inside your web browser. Convert an iPhone photo, shrink a PDF, remove the location data from a picture before posting it. The kind of chores that usually send you to a site that uploads your file to a server, makes you wait, and then asks you to sign up or pay after the second one.
How it works
Modern browsers can run real programs. Stayput uses JavaScript libraries and WebAssembly builds of well-known open-source code (libheif for HEIC photos, pdf-lib and pdf.js for PDFs) to do the work on your device. The website is just static files served from a CDN. There is no backend and there is nothing to upload to.
That has three consequences. Your files are private because they never leave your computer or phone. There is no file size cap set by us, because no server handles your files; the main limit is your device’s memory (phones hold less), and a few tools limit frames or output pixels and say so on the page. And after one visit and a short wait it works offline, because the page and its code are cached in your browser (tools that download a model or engine, such as captions, background removal, MP3 export, archives and PDF unlock, need one online run first).
Funding
Stayput is free and has no ads, no accounts and no cross-site tracking, only a self-hosted, cookie-free usage counter described on the privacy page. A static site is cheap to run. If it becomes expensive, the plan is to ask for donations, not to add uploads or ads. If it saved you a subscription and you want to say thanks, the repository has a sponsor link; that money helps cover running costs.
If a tool saved you time, you can support StayPut on Ko-fi.
Open source
The code is published under the MIT license at github.com/keenanlk/stayput. Bug reports, feature requests and pull requests are welcome. If you want to verify the privacy claim, the repository is the place to look.
Credits
Stayput is built on the work below. The complete list, with versions, licenses, links to the exact source and the source offer for the LGPL parts, is on the open-source licenses page.
- libheif and libde265 via heic-to (LGPL-3.0) for HEIC decoding
- pdf-lib (MIT) for editing PDFs
- pdf.js (Apache-2.0) for rendering PDFs
- fflate (MIT) for zip downloads
- UTIF.js (MIT) with pako (MIT) for reading TIFF files
- ag-psd (MIT) for reading Photoshop PSD files
- Mediabunny (MPL-2.0) for reading and writing video files when compressing
- mp4-muxer (MIT) and gifuct-js (MIT) for GIF to MP4
- gifenc (MIT) for making GIFs
- tesseract.js (Apache-2.0), with Tesseract (Apache-2.0) and Leptonica, for reading text in images and scanned PDFs
- MediaPipe (Apache-2.0) for finding faces to blur and people in videos
- imagetracerjs (public domain, Unlicense) for tracing images into SVG
- jSquash (Apache-2.0) with libavif and libaom (BSD-2-Clause) and libjxl (BSD-3-Clause) for opening AVIF and JPEG XL images
- qpdf (Apache-2.0) via qpdf-wasm (ISC) for compressing, locking and unlocking PDFs
- ONNX Runtime (MIT) for running the AI models in your browser
- ISNet from the DIS project (code Apache-2.0; weights’ license not stated upstream, see licenses) for removing photo backgrounds
- Whisper (MIT) run by Transformers.js (Apache-2.0) for turning speech into text
- Ultimate Vocal Remover’s MDX-Net Inst HQ 3 model (MIT) for separating vocals from music
- 7-Zip (LGPL, with the unRAR restriction for its RAR code) via 7z-wasm for opening password-protected 7z and RAR archives
- LAME (LGPL-2.0 or later) via wasm-media-encoders (MIT) for MP3 encoding
- FFmpeg's libavformat and libavcodec (LGPL-2.1 or later) via libav.js, for opening AVI, FLV and WMA files. Most video runs on your browser's WebCodecs through Mediabunny. For old formats the browser cannot read, the page loads a decoder built from FFmpeg's libraries (LGPL) only when you convert such a file.
- RNNoise (BSD-3-Clause) via rnnoise-wasm (Apache-2.0) for removing background noise
- Real-ESRGAN (BSD-3-Clause) for the AI image upscaler
- MI-GAN (MIT) for removing objects from photos
- pdfmake (MIT) with the Roboto font (OFL-1.1) for turning EPUB books into PDFs
- libarchive (BSD-2-Clause) via libarchive.js (MIT), which also contains OpenSSL, for opening ZIP, RAR and 7z archives
- @noble/ciphers (MIT) for AES-256 password-locked ZIPs
- Astro (MIT) for building the site