OmniTools: A 28MB Self-Hosted Toolbox That Keeps Your Files on Your Device
Self-hosted collection of powerful web-based tools for everyday tasks. No ads, no tracking, just fast, accessible utilities right from your browser!
At a glance
- What is it?
- OmniTools is a self-hosted web app that bundles image, PDF, text, date, math, and data utilities into a single lightweight Docker image. All processing happens client-side, which makes it a privacy-friendly alternative to online tool sites, though its breadth comes with some rough edges.
- Who is it for?
- Adopt OmniTools if you want a single, self-hosted utility site that runs in Docker with a 28MB image and processes files entirely in the browser, which is ideal for privacy-conscious individuals or small teams. Do not adopt it if you need deep, production-grade tooling like full video editing or advanced PDF manipulation, because the feature list is broad but shallow and the project is young.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 29 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What OmniTools Solves and Who It Targets
OmniTools addresses a common annoyance: the web is full of single-purpose utility sites that track you, show ads, and upload your files to a server. This project bundles a wide range of everyday tools into one self-hosted web app, and the README states that all files are processed entirely on the client side, so nothing ever leaves your device. The target user is someone who already runs Docker and wants a private, ad-free alternative to random online converters. It is not aimed at professionals who need specialized software; it is aimed at people who occasionally resize an image, split a PDF, or convert a timestamp. The demo site at omnitools.app gives a hosted preview, but the real value is in deploying it yourself.
How the Client-Side Architecture Works
The core design choice is that every tool runs in the browser. The README does not detail the internal data flow, but the client-side claim implies that files are read into memory via browser APIs, processed with JavaScript or WebAssembly, and then downloaded as new files. No upload endpoint is involved, so the server only serves static assets. This has a direct consequence: performance depends on the user's hardware and browser. Large video files, for example, could exhaust memory or freeze the tab, though the README lists a Video Trimmer and Video Reverser as features. The architecture also means the Docker image is static, which explains the 28MB size. For a self-hoster, that is a small footprint, but it also means no backend logic to scale or secure, which is both a simplification and a limitation.
Getting It Running: Docker and Compose
Deployment is straightforward. The README gives a one-liner: docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest. That maps host port 8080 to container port 80, so you can access the app at http://localhost:8080. A Docker Compose alternative is also provided, with the same image, container name, restart policy, and port mapping. There is no mention of environment variables, persistent volumes, or configuration files, which suggests the app is stateless and stores nothing server-side. That makes upgrades trivial: pull the new image and recreate the container. The project uses semantic versioning, with releases like v0.6.0 from October 2025, so you can pin a specific tag if you want stability.
The Tool Catalog: Breadth Over Depth
The feature list is long. Categories include Image/Video/Audio, PDF, Text/List, Date and Time, Math, and Data tools. Examples given are an Image Resizer, Video Trimmer, PDF Splitter, Case Converters, Time Zone Converters, Prime Number Generator, and JSON/CSV/XML tools. That breadth is the selling point: one URL covers many small tasks. But the README does not specify how many tools exist, their exact capabilities, or their quality. The phrase 'And more...' appears repeatedly, which is honest but vague. For an engineer evaluating this, the risk is that a tool name sounds capable but turns out to be minimal. The project is still in early versions (v0.6.0), so expect rough edges and missing options compared to mature single-purpose tools.
A Real Limitation: Translation Coverage and Contribution Friction
The README includes an i18n coverage table that reveals a concrete limitation. Ukrainian is at 100%, but Chinese is at 72%, and most other languages (Hindi, Russian, German, Spanish, French, Japanese, Dutch, Portuguese) sit around 70%. That means a significant portion of the interface is untranslated for many users. The README also warns that translation files under public/locales should only be edited by developers, and non-developers are directed to a Locize project. That is a sensible split, but it adds friction for contributors. Another limitation is the tool creation script: npm run script:create:tool my-tool-name folder1. It requires knowing the folder structure, and Windows users must use backslashes (folder1\folder2). This is a developer-facing constraint, not a user-facing one, but it affects how quickly the toolset can grow.
Comparing to the Alternative: Single-Purpose Tools vs. a Suite
The obvious alternative is to use dedicated online services or standalone desktop tools for each task. For example, instead of OmniTools' PDF Splitter, you might use a purpose-built PDF utility that offers merge, split, rotate, and compress with fine-grained controls. The difference in approach is that those tools are optimized for one workflow, often with batch processing, advanced options, and server-side handling for large files. OmniTools trades that depth for convenience and privacy. Another alternative is a self-hosted suite like Stirling PDF, which focuses specifically on PDFs and runs server-side, meaning it can handle larger files but also stores them temporarily on the server. OmniTools' client-side model avoids that storage, but it puts the processing burden on the client. For a quick, private conversion, OmniTools wins. For heavy, repeatable work, a specialized tool is likely better.
Maintenance, Upgrade Cost, and License
The project is MIT licensed, which means you can use, modify, and redistribute it freely, with no copyleft obligations. The maintenance cost is low if you just run the Docker image: there are no databases to back up, no config files to track, and no state to migrate. Upgrades are a matter of pulling a new image, and the release cadence (v0.4.0 in June, v0.5.0 in July, v0.6.0 in October 2025) suggests active development. However, the README's contribution section shows that adding a new tool requires running a script and understanding the folder hierarchy, so if you want to customize the toolset, you will need to work with the React and TypeScript codebase. The project also relies on Iconify for icons and Material UI, which are standard dependencies. Overall, the upgrade path is simple, but the feature set is not guaranteed to be stable across versions.
Editorial conclusion
Adopt OmniTools if you want a single, self-hosted utility site that runs in Docker with a 28MB image and processes files entirely in the browser, which is ideal for privacy-conscious individuals or small teams. Do not adopt it if you need deep, production-grade tooling like full video editing or advanced PDF manipulation, because the feature list is broad but shallow and the project is young. Before deploying, verify that the specific tools you rely on are present and functional in the current release, check the i18n coverage for your language (Ukrainian is complete, but many others are around 70%), and confirm the client-side processing approach meets your performance expectations for large files.
Community notes