Loading tool...
Format, validate, minify JSON with JSONPath queries, tree view explorer, schema validation, diff comparison, and sort keys. Multiple indent styles
Format, validate XML with XPath queries, interactive tree view, XML-to-JSON conversion, and multiple color themes
Format, validate, and convert between YAML and JSON formats. Live validation, syntax highlighting, and bidirectional conversion.
Minify code to reduce file size for production or beautify for readability with comprehensive support for JavaScript, TypeScript, CSS, HTML, JSON, XML, and SQL. Every byte of file size matters in web applications, as larger files load slower, consume more bandwidth, and provide worse user experience, making minification a critical optimization step in production deployment. Minification removes whitespace, comments, and unnecessary characters while maintaining code functionality, typically achieving 30-60% file size reductions. Conversely, beautifying minified code restores readability with proper indentation and formatting, essential for code review, debugging, and development work. Comprehensive statistics show exact compression achieved, helping you understand optimization impact and identify further optimization opportunities.
Minify code before deployment to reduce file sizes, improve page load times, and decrease bandwidth usage for better user experience.
Beautify and format minified or poorly formatted code to restore readability for debugging, code review, and understanding third-party libraries.
Format minified code from error logs and stack traces to identify exact locations of errors and understand code flow during debugging.
Measure compression statistics to understand file size reduction and identify opportunities for further optimization beyond basic minification.
Format code before review to ensure consistent formatting and readability across the codebase, focusing reviewers on logic rather than formatting.
Automate code minification as part of build processes, integrating with CI/CD pipelines for consistent, reproducible optimization.
Code minification and compression are distinct but complementary optimization techniques, and understanding how each works reveals the layered approach modern web applications use to minimize file sizes and maximize performance.
Minification operates at the source code level, removing characters that are meaningful to humans but irrelevant to interpreters and compilers. Basic minification strips whitespace, newlines, and comments. Advanced JavaScript minifiers go further: they shorten local variable names (a process called "mangling"), remove unreachable code (dead code elimination), inline simple functions, fold constant expressions at build time, and convert property access patterns to shorter equivalents. For example, a minifier might replace `object["property"]` with `object.property` (saving 2 bytes) or convert `true` to `!0` (saving 2 bytes). These transformations require understanding the language's Abstract Syntax Tree (AST) — the hierarchical representation of code structure that compilers use internally.
AST-based minification works by parsing source code into a tree structure, applying transformations to tree nodes, and then regenerating source code from the modified tree. Tools like Terser (the successor to UglifyJS and the default JavaScript minifier in webpack) parse JavaScript into an AST using a full JavaScript parser, apply dozens of optimization passes, and emit minimal code. This is fundamentally different from naive text-based minification that simply removes whitespace — AST-based tools understand scope, variable references, and control flow, enabling safe transformations that text processing cannot achieve.
Tree shaking, a related optimization, eliminates unused exports from JavaScript modules. The term was popularized by Rich Harris (creator of Rollup and Svelte) and works by analyzing the static import/export graph of ES modules to determine which exported values are actually imported elsewhere. Code that is exported but never imported can be safely removed. Tree shaking depends on ES module syntax (import/export) because CommonJS (require/module.exports) is dynamically resolved at runtime, making static analysis impossible.
Compression algorithms like gzip (used since HTTP/1.1) and Brotli (developed by Google and standardized in RFC 7932) operate at the byte level, finding repeated patterns and encoding them efficiently using techniques like LZ77 sliding window compression and Huffman coding. Brotli achieves 15-25% better compression than gzip for text content because it includes a built-in dictionary of common web content strings (HTML tags, CSS properties, JavaScript keywords), allowing it to compress these frequent patterns more efficiently. Importantly, minification and compression are complementary: minified code compresses well because removing comments and standardizing variable names increases the ratio of repeated patterns.
Modern bundlers like webpack, Rollup, Vite, and esbuild combine multiple optimization strategies: module bundling (combining files to reduce HTTP requests), tree shaking (removing unused code), minification (shortening code), code splitting (creating separate bundles loaded on demand), and source map generation (enabling debugging of minified code in production). Understanding this pipeline helps developers make informed decisions about build configuration and performance optimization.
Typical savings vary by language: JavaScript and CSS usually see 30-60% reduction, HTML around 15-30%, and JSON 10-40% depending on formatting. The tool displays exact compression statistics after processing.
No. Minification removes only whitespace, comments, and unnecessary characters. The code remains functionally identical. For JavaScript, variable names in the local scope may be shortened, but behavior is preserved.
The tool supports 7 languages: JavaScript, TypeScript, CSS, HTML, JSON, XML, and SQL. Each language has specific minification rules tailored to its syntax.
Minify removes all unnecessary whitespace and formatting to produce the smallest possible file. Beautify does the opposite, adding proper indentation, line breaks, and spacing to make code readable and easy to debug.
All processing happens directly in your browser. Your files never leave your device and are never uploaded to any server.