fucking-awesome-wpo
📝 A curated list of Web Performance Optimization. Everyone can contribute here! With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-wpo
Last synced: 11 days ago
JSON representation
-
Image Optimizers
-
Meetups
- Exexif - Pure elixir library to extract tiff and exif metadata from JPEG files.
- Imagemin - Minify images seamlessly with Node.js.
- Gm - GraphicsMagick and ImageMagick for Node.js.
- Sharp - The typical use case for this high-speed Node.js module is to convert large images of many formats to smaller, web-friendly JPEG, PNG, and WebP images of varying dimensions.
- Grunt-contrib-imagemin - Minify PNG and JPEG images for Grunt.
- Grunt-imageoptim - Make ImageOptim, ImageAlpha, and JPEGmini part of your automated build process.
- Grunt-WebP - Convert your images to WebP format.
- mozjpeg - Improved JPEG encoder.
- ZopfliPNG - A command-line program to optimize PNG images.
- Jpegoptim - Utility to optimize/compress JPEG files.
- ImageOptim-CLI - Automates ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch optimization of images part of your automated build process.
- Gulp-imagemin - Minify PNG, JPEG, GIF and SVG images with imagemin for Gulp.
- Leanify - Lightweight lossless file minifier/optimizer.
- Gulp-WebP - Convert images to WebP for Gulp.
- Grunt-smushit - Grunt plugin to remove unnecessary bytes of PNG and JPG using Yahoo Smushit.
- Gulp-smushit - Gulp plugin to optimize PNG and JPG using Yahoo Smushit. Made on top of smosh.
- Optimizt - CLI image optimization tool. It can compress PNG, JPEG, GIF and SVG lossy and lossless, and also create AVIF and WebP versions for raster images.
- Tapnesh-CLI - Tapnesh is a CLI tool that will optimize all your images in parallel easily and efficiently!
- AdvPNG - Recompress PNG files to get the smallest possible size.
- Smush it - Smush it uses optimization techniques specific to image format to remove unnecessary bytes from image files. It is a "lossless" tool, which means it optimizes the images without changing their look or visual quality.
-
-
Source
-
Meetups
-
-
Web server Modules
-
Meetups
- bayandin/awesome-awesomeness
- sindresorhus/awesome
- iamakulov/awesome-webpack-perf - A curated list of webpack tools for web performance
- imteekay/web-performance-research - Research in Web Performance
- WebP-detect - WebP with Accept negotiation.
- Resource Hints - This specification defines the dns-prefetch, preconnect, prefetch, and prerender relationships of the HTML Link Element (<link>). These primitives enable the developer, and the server generating or delivering the resources, to assist the user agent in the decision process of which origins it should connect to, and which resources it should fetch and preprocess to improve page performance.
- Web Performance Working Group - The mission of the Web Performance Working Group, part of the Rich Web Client Activity, is to provide methods to measure aspects of application performance of user agent features and APIs.
- Page Visibility - This specification defines a means for site developers to programmatically determine the current visibility state of the page in order to develop power and CPU-efficient web applications.
- User Timing - This specification defines an interface to help web developers measure the performance of their applications by giving them access to high-precision timestamps.
- Performance Timeline - This specification defines a unified interface to store and retrieve performance metric data. This specification does not cover individual performance metric interfaces.
- Resource Timing - This specification defines an interface for web applications to access the complete timing information for resources in a document.
- HTTP Archive - It's a permanent repository of web performance information such as size of pages, failed requests, and technologies utilized. This performance information allows us to see trends in how the Web is built and provides a common data set from which to conduct web performance research.
-
-
Benchmark - JavaScript
-
Meetups
- JSPerf - jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks. `Temporarily out, follow this issue for updates: https://github.com/jsperf/jsperf.com/issues/537`
- Stats.js - This class provides a simple info box that will help you monitor your code performance.
- Timing.js - Timing.js is a small set of helpers for working with the Navigation Timing API to identify where your application is spending its time. Useful as a standalone script, DevTools Snippet, or bookmarklet.
- Memory-stats.js - minimal monitor for JS Heap Size via performance memory.
- Matcha - Matcha allows you to design experiments that will measure the performance of your code. It is recommended that each bench focus on a specific point of impact in your application.
- JSlitmus - JSLitmus is a lightweight tool for creating ad-hoc JavaScript benchmark tests.
- PerfTests - Performance tests of JavaScript inheritance models.
-
-
Metrics Monitor
-
Meetups
- WebPageTest - Run a free site speed test from multiple locations around the globe using real browsers (IE and Chrome) and at real consumer connection speeds. You can run simple tests or perform advanced testing including multi-step transactions, video capture, content blocking and much more. Your results will provide rich diagnostic information including resource-loading waterfall charts, Page Speed optimization checks and suggestions for improvements.
- New Relic Browser Monitoring - Monitor your browser-side applications in real time, with a focus on real end users’ experiences.
- Phantomas - PhantomJS-based web performance metrics collector and monitoring tool.
- Grunt-phantomas - Grunt plugin wrapping phantomas to measure frontend performance.
- Bench - Using Phantomas (a PhantomJS-backed client performance metrics scrapper). Benchmark a page, store results in MongoDB, and display results via the built-in server.
- Keepfast - Tool to monitor indicators related to the performance of a web page.
- Pingdom site Speed Test - Test the load time of that page, analyze it, and find bottlenecks.
-
-
Minifiers - JS & CSS
-
Meetups
- CSSmin.js - cssmin.js is a JavaScript port of YUICompressor's CSS minifier.
- Django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
- CSSshrink - Because CSS is ospon the critical path to rendering pages. It must be small! Or else!
- CSSO - CSS minimizer unlike others. In addition to usual minification techniques, it can perform structural optimization of CSS files, resulting in smaller file size compared to other minifiers.
- Gulp-uncss - A gulp task for removing unused CSS from your projects.
- JShrink - JShrink is a PHP class that minifies JavaScript so that it can be delivered to the client quicker.
- Grunt-contrib-uglify - A Grunt plugin to concatenate and minify JavaScript files.
- Grunt-contrib-concat - A Grunt plugin to concatenate files.
- YUI Compressor - JavaScript compressor which, in addition to removing comments and white-spaces, obfuscates local variables using the smallest possible variable name. This obfuscation is safe, even when using constructs such as 'eval' or 'with' (although the compression is not optimal is those cases) Compared to jsmin, the average savings is around 20%.
- Grunt-contrib-cssmin - CSS Minifier for Grunt.
- Prettyugly - Uglify (strip spaces) or prettify (add consistent spaces) CSS code.
- UglifyJS2 - UglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit, written in JavaScript.
- Clean-css - A fast, efficient, and well-tested CSS minifier for node.js.
- Grunt-cssshrink - This is just a grunt wrapper for CSS Shrink.
- Gulp-cssshrink - Shrinks CSS files using cssshrink for Gulp.
- Django-pipeline - Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript template support, and optional data-URI image and font embedding.
- Grunt-uncss - A grunt task for removing unused CSS from your projects.
- JSCompress - The most minimalistic online JS Compress tool.
-
-
Web Components
-
Meetups
- Polymer Bundler - Polymer-bundler is a library for packaging project assets for production to minimize network round-trips.
- Gulp-vulcanize - Concatenate a set of Web Components into one file that use Vulcanize.
-
-
Analyzers
-
Meetups
- Lighthouse - Auditing and performance metrics tool for Progressive Web Applications.
- YSlow - YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high-performance web pages.
- Confess - Uses PhantomJS to headlessly analyze web pages and generate manifests.
- Yandex.Tank - An extensible open-source load testing tool for advanced Linux users which is especially good as a part of an automated load testing suite.
- Web Tracing Framework - Web Tracing Framework is a set of libraries, tools, and visualizers for the tracing and investigation of complex web applications
- Grunt-perfbudget - A Grunt.js task for enforcing a performance budget 🌎 [more on performance budgets](timkadlec.com/2013/01/setting-a-performance-budget/)).
- Grunt-WebPageTest - Grunt plugin for continuous measurement of WebPageTest. ([Demo](http://sideroad.github.io/sample-wpt-page/))
- Grunt-yslow - Grunt task for testing page performance using PhantomJS, a headless WebKit browser.
-
-
Generators
-
Meetups
- Sprite Factory - The sprite factory is a ruby library that can be used to generate CSS sprites. It combines individual image files from a directory into a single unified sprite image and creates an appropriate CSS style sheet for use in your web application.
- Glue - Glue is a simple command-line tool to generate sprites:
- Assetgraph-sprite - Assetgraph transform for auto-generating sprites based on the CSS dependency graph.
- Sprity - A modular image sprite generator with a lot of features: supports retina sprites, supports different output formats, generates sprites and proper style files out of a directory of images, etc...
- AtBuild - JavaScript code generation tool that lets you write JavaScript that outputs JavaScript. Good for unrolling loops and writing libraries that compile away the runtime
- Gulp-sprite - gulp task for creating an image sprite and the corresponding style sheets for Gulp.
- Pitomba-spriter - Spriter is a simple and flexible dynamic sprite generator for CSS, using Python. It can process CSS both synchronous and asynchronous as it provides classes to be used in your Python code and also a watcher that listens to your filesystem and changes CSS and sprite as soon as a static is changed.
- Gulp-svg-sprites - gulp task for creating SVG sprites.
- SvgToCSS - Optimizes and renders SVG files in CSS / Sass sprites.
- Sprite Cow - Sprite Cow helps you get the background-position, width, and height of sprites within a spritesheet as a nice bit of copyable CSS.
- ZeroSprites - ZeroSprites is a CSS sprites generator aimed at area minimization using algorithms used in the field of VLSI floorplanning.
-
-
Bundle Analyzer
-
Meetups
- Webpack bundle analyzer - webpack plugin and CLI utility that represents bundle content as a convenient interactive zoomable treemap.
- Bundlesize - Keep your bundle size in check.
- BundleStats - Generate bundle report(bundle size, assets, modules, packages) and compare the results between different builds
- source-map-explorer - Analyze and debug bundle space usage through source maps.
- Compression webpack plugin - Prepare compressed versions of assets to serve them with Content-Encoding.
- Disc - Visualise the module tree of browserify project bundles and track down bloat.
- Lasso-analyzer - analyze and Visualise project bundles created by Lasso.
-
-
Miscellaneous
-
Meetups
- Lazysizes - High-performance lazy loader for images (responsive and normal), iframes, and scripts, that detects any visibility changes triggered through user interaction, CSS or JavaScript without configuration.
- TMI - TMI (Too Many Images) - discover your image weight on the web.
- Critical - Extract & Inline Critical-path CSS in HTML pages (alpha).
- uCSS - uCSS is made for crawling (large) sites to find unused CSS selectors, but not remove unused CSS.
- HTTPinvoke - A no-dependencies HTTP client library for browsers and Node.js with a promise-based or Node.js-style callback-based API to progress events, text, and binary file upload and download, partial response body, request and response headers, status code.
- Csscolormin - Utility that minifies CSS colors, example: min("white"); // minifies to "#fff".
- Socialite.js - Socialite provides a very easy way to implement and activate a plethora of social sharing buttons — any time you wish. On document load, on article hover, on any event.
- Perf-Tooling - Perf Tooling is a shared resource to keep track of new and existing performance tools.
-
-
Lazyloaders
-
SVG
-
Meetups
- Grunt-svgmin - Minify SVG using SVGO for Grunt.
- SVGO - SVGO is a Nodejs-based tool for optimizing SVG vector graphics files.
- Scour - Scour is an open-source Python script that aggressively cleans SVG files, removing a lot of 'cruft' that certain tools or authors embed into their documents.
- SVG Cleaner - SVG Cleaner could help you to clean up your SVG files from unnecessary data. It has a lot of options for cleanup and optimization, works in batch mode, and provides threaded processing on multicore processors.
-
-
Web server Benchmarks
-
Meetups
- beeswithmachineguns - A utility for arming (creating) many bees (micro EC2 instances) to attack (load test) targets (web applications).
- wrk - A HTTP benchmarking tool (with optional Lua scripting for request generation, response
- HTTPerf - httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance.
- Autoperf - Autoperf is a ruby driver for httperf, designed to help you automate load and performance testing of any web application - for a single endpoint, or through log replay.
- HTTPerf.rb - Simple Ruby interface for httperf, written in Ruby.
- HTTPerf.py - Python Port of HTTPerf.rb.
- HTTPerf.js - JS Port of HTTPerf.rb.
- PHP-httperf - PHP Port of HTTPerf.rb.
- Gohttperf - Go Port of HTTPerf.rb.
-
-
CDN
-
Loaders
-
Meetups
- InstantClick - InstantClick makes the following links in your site instant.
- HeadJS - The only script in your HEAD. for Responsive Design, Feature Detections, and Resource Loading.
- Defer.js - Async Everything: Make the meat of your pages load faster with this JS morsel.
- JIT - A JIT (Just In Time) plugin loader for Grunt. The load time of Grunt does not slow down even if there are many plugins.
- Labjs - is an open-source (MIT license) project supported by Getify Solutions. The core purpose of LABjs is to be an all-purpose, on-demand JavaScript loader, capable of loading any JavaScript resource, from any location, into any page, at any time.
-
-
CDN - Utilities
-
Meetups
- Gulp-google-cdn - Replaces script references with Google CDN ones.
-
-
Minifiers - HTML
-
Meetups
- HTMLMinifier - HTMLMinifier is a highly configurable, well-tested, Javascript-based HTML minifier, with lint-like capabilities.
- Django-htmlmin - django-html in an HTML minifier for Python with full support for HTML 5. It supports Django, Flask and any other Python web framework. It also provides a command-line tool that can be used for static sites or deployment scripts.
- Minimize - Minimize is an HTML minifier based on the node-htmlparser,currently, HTML minifier is only usable server-side. Client-side minification will be added in a future release.
- Koa HTML Minifier - Middleware that minifies your HTML responses using html-minifier. It uses html-minifier's default options which are all turned off by default, so you have to set the options otherwise it's not going to do anything.
- Gulp-htmlmin - A gulp plugin to minify HTML that uses HTMLMinifier.
- HTML_press - Ruby gem for compressing html, that removes all whitespace junk, and leaves only HTML.
- HTML_minifier - Ruby wrapper for kangax html-minifier.
- Grunt-contrib-htmlmin - A grunt plugin to minify HTML that uses HTMLMinifier.
- Grunt-htmlcompressor - Grunt plugin for HTML compression, using htmlcompressor.
- HTML Minifier Online - A HTML min tool by kangax (HTMLMinifier Creator).
- Html-minifier - A simple Windows command-line tool to minify your HTML, Razor views & Web Forms views
- HTML Minifier Online - A HTML min tool by kangax (HTMLMinifier Creator).
-
-
Bookmarklets
-
Meetups
- PerfMap - A bookmarklet to create a frontend performance heatmap of resources loaded in the browser using the Resource Timing API.
- Performance-Bookmarklet - Analyze the current page through the Resource Timing API, Navigation Timing API and User-Timing - Sort of a light live WebPageTest. As 🌎 [Chrome Extension](chrome.google.com/webstore/detail/performance-analyser/djgfmlohefpomchfabngccpbaflcahjf?hl=en) and 🌎 [Firefox Add-on](addons.mozilla.org/en-us/firefox/addon/performance-analyser/?src=cb-dl-created) under the name Performance-Analyser.
- DOM Monster - A cross-platform, cross-browser bookmarklet that will analyze the DOM & other features of the page you're on, and give you its bill of health.
-
-
Benchmark - PHP
-
Analyzers - API
-
Meetups
- Node-yslowjs - YSlow.js on Node.js is a simple Node.js wrapper for programmatically running phantomjs yslow.js.
- PSI - PageSpeed Insights for Node.js - with reporting.
-
-
Metrics Monitor - API
-
Meetups
- WebPageTest API Wrapper for Node.js - WebPageTest API Wrapper is an npm package that wraps WebPageTest API for Node.js as a module and a command-line tool.
-
-
Books
- High Performance Web Sites: Essential Knowledge for frontend Engineers - Steve Souders
- Even Faster Web Sites: Performance Best Practices for Web Developers - Steve Souders
- High Performance JavaScript - Nicholas C. Zakas
- High Performance Browser Networking: What every web developer should know about networking and web performance - Ilya Grigorik
- High Performance Responsive Design: Building Faster Sites Across Devices
- Time Is Money: The Business Value of Web Performance
- Using WebPagetest - Rick Viscomi, Andy Davies, Marcel Duran
- Web Performance Tuning - Patrick Killelea
-
Benchmark - CSS
-
Meetups
- CSS-perf - Completely unscientific way of testing CSS performance. Most of these tests will revolve around methodologies and techniques for determining effective CSS architecture. Put another way, I want to know what works best given a particular comparison of CSS strategies.
-
-
Events
-
Conferences
-
-
Extensions
-
Meetups
- Browser Calories - The easiest way to measure your performance budget.
-
Programming Languages
Categories
Image Optimizers
20
Minifiers - JS & CSS
18
Minifiers - HTML
12
Web server Modules
12
Generators
11
Web server Benchmarks
9
Miscellaneous
8
Analyzers
8
Books
8
Metrics Monitor
7
Bundle Analyzer
7
Benchmark - JavaScript
7
Loaders
5
SVG
4
Bookmarklets
3
Lazyloaders
2
Benchmark - PHP
2
CDN
2
Web Components
2
Analyzers - API
2
CDN - Utilities
1
Events
1
Source
1
Metrics Monitor - API
1
Benchmark - CSS
1
Extensions
1
Sub Categories
Keywords
javascript
13
performance
7
nodejs
7
svg
5
webperf
4
gulp-plugin
4
css
4
optimization
4
png
4
image-optimization
3
webp
3
jpeg
3
webpack
3
minification
3
minify
3
minifier
3
web-performance
2
mozjpeg
2
libjpeg
2
dom
2
jpegoptim
2
webpack-plugin
2
html-minifier
2
jpeg-encoder
2
framework
2
html
2
lazyload
2
image-processing
2
image
2
avif
2
treemap
2
imagemin
2
gif
2
web
2
performance-metrics
2
developer-tools
2
webperformance
2
awesome-list
2
awesome
2
lazy-loading
1
images
1
zopfli
1
gulp
1
responsive-images
1
lazysizes
1
gulpplugin
1
lazy-evaluation
1
min
1
tiff
1
sharp
1