lighthouse
Turbolinks
DISCONTINUED
Our great sponsors
- Klotho - AWS Cloud-aware infrastructure-from-code toolbox [NEW]
- Appwrite - The Open Source Firebase alternative introduces iOS support
- Sonar - Write Clean JavaScript Code. Always.
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- InfluxDB - Access the most powerful time series database as a service
lighthouse | Turbolinks | |
---|---|---|
149 | 27 | |
26,599 | 12,722 | |
0.6% | - | |
9.7 | 0.9 | |
2 days ago | almost 2 years ago | |
JavaScript | TypeScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lighthouse
-
7 Proven Practices to Boost Development Speed and Project Quality
When we implemented the MVP of the fintech app, we had a quite complicated form. At that time, I was still young and inexperienced. And eventually, we realized that our project was slowing down. We had to spend additional hours figuring out the reason. We had many unnecessary re-renders because we ignored basic rules related to props in React. I wanted to do everything possible to avoid such situations in the future. So, I added to the project linters like this and an additional starting configuration to package.json to run why-did-you-render. In short, this plugin issues a warning if something is re-rendered unnecessarily and suggests how to avoid it. Also, we included running Lighthouse in headless mode. Some people say that premature optimizations are bad, but for me, it's a principle: do it right from the start.
-
Performance scores for Google Lighthouse/Insights seem to be very inaccurate
There's a link to what they mean by mobile network there (https://github.com/GoogleChrome/lighthouse/blob/main/docs/throttling.md) and it says:
-
How to store your app's entire state in the url
Here's the non-psuedo code equivalent that can leverage CompressionStream rather than using a browserified-gzip-library: https://github.com/GoogleChrome/lighthouse/blob/437eb4d757c5...
We use it in Lighthouse for the exact same purpose, a URL #hash full of state. We found that modern browsers support 10mb of data in the hash. https://github.com/GoogleChrome/lighthouse/pull/12509#discus...
-
Nightmare on Dev Street: Terrifying Situations to Make Your Spine Tingle
You can find out if your SaaS app is slowing down with Google Chrome Lighthouse. Lighthouse should be a staple in your monitoring because it lets you see the performance, accessibility, and SEO metrics related to your app's performance.
- Why your website should be under 14kb in size
-
Benchmarking Bun & Next against Deno and Fresh
Lighthouse: A tool developed by Google to measure a website’s performance using an average of six metrics.
- Top 25 Tips for Building an EXTREMELY FAST Website!!!
-
Stop delaying. Share knowledge on a blog built with Eleventy.
Performance Using Lighthouse as a measurement tool, the blog should score 100 on all criteria.
-
How do you test a website?
For implementation testing (e.g. WCAG 2.1 compliance, performance, best sec practices) there are checkers like webhint, lighthouse, and Pa11y.
-
Improving performance in a hierarchical SQL table structure with column propagation
The website should score 80+ in performance, SEO, and accessibility in Google Lighthouse tests. Plus, the load time should always be less than 2 seconds and ideally in the order of a few hundreds of milliseconds. The real challenge lies here, since the website consists of more than 2 million pages, and pre-rendering them all will take weeks. Also, the content shown in most of the pages is not static. Thus, we opted for an incremental static regeneration approach. When a visitor hits a page no one ever visited, Next.js generates it with the data retrieved from the APIs exposed by the backend. Then, Next.js caches the page for 30 or 60 seconds, depending on the importance of the page.
Turbolinks
-
A Comprehensive Guide to Rails Internationalization
// app/javascript/src/helpers/price.js // Turbolinks are enabled by default in Rails, // we need to process our script on every page load // https://github.com/turbolinks/turbolinks#full-list-of-events document.addEventListener("turbolinks:ready", () => { // Get language from html tag const lang = document.documentElement.lang; // Find all span tags with data-localize="price" const pricesOnPage = document.querySelectorAll("[data-localize=\"price\"]"); if (pricesOnPage.length > 0) { // Iterate all price span tags [...pricesOnPage].forEach(priceOnPage => { // Modify text in span tag according to current language priceOnPage.textContent = priceOnPage.textContent.toLocaleString( lang, { style: "currency", currency: "USD" } ); }) } });
-
How is this website so fast?
Because it feels fast, it actually is not. It is using Turbolinks. https://github.com/turbolinks/turbolinks And Laravel Wrapper for Turbolinks: https://github.com/frenzyapp/turbolinks
-
An SPA Alternative
https://github.com/turbolinks/turbolinks
It provides a smooth UX by fetching next page's HTML in background, then replace the DOM by compareing the diff in HTML. So you won't see a blank page while navigating between pages.
-
Get Started with Hotwire in Your Ruby on Rails App
If you have used Turbolinks in the past, you will feel right at home with Turbo Drive. At its core, some JS code intercepts JavaScript events on your application, loads HTML asynchronously, and replaces parts of your HTML markup.
-
A Look at Rails Hotwire: Turbo Drive
When the Turbolinks technology first came out in Rails 4, some people did not understand what it was really about. I happened to get it right away only because I personally implemented my own version of Turbo Drive for one of my client projects before Turbolinks was released (around 2012), so I really appreciated Turbolinks when it was released. With the latest updates in Rails 7, the Turbolinks technology has been renamed to Turbo Drive (now part of Hotwire) since it not only accelerates hyperlinks anymore, but also form submissions too.
-
Migrating From Turbolinks To Turbo
Turbolinks, a great tool to make navigating your web application faster, is no longer under active development. It has been superseded by a new framework called Turbo, which is part of the Hotwire umbrella.
-
Unable to build and deploy Rails 6.0.4.1 app on heroku - Throws gyp verb cli error
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.7.3' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 6.0.3', '>= 6.0.3.7' gem 'mongoid', git: 'https://github.com/mongodb/mongoid.git' # Use Puma as the app server gem 'puma', '~> 4.1' # Use SCSS for stylesheets gem 'sass-rails', '>= 6' # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker gem 'webpacker', '~> 4.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.7' # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 4.0' # Use Active Model has_secure_password # Use Active Storage variant # gem 'image_processing', '~> 1.2' gem 'axlsx' gem 'caxlsx_rails' #Bootstrap for UI gem 'bootstrap', '~> 5.1.0' gem 'bootstrap-timepicker-rails', '~> 0.1.3' gem 'bootstrap-select-rails', '~> 1.6', '>= 1.6.3' #JQuery Rails gem 'jquery-rails' gem 'rails_12factor', group: :production # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.2', require: false group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] end group :development do # Access an interactive console on exception pages or by calling 'console' anywhere in the code. gem 'web-console', '>= 3.3.0' gem 'listen', '~> 3.2' gem 'pry' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end group :test do # Adds support for Capybara system testing and selenium driver gem 'capybara', '>= 2.15' gem 'selenium-webdriver' # Easy installation and use of web drivers to run system tests with browsers gem 'webdrivers' gem 'cucumber-rails', require: false gem 'database_cleaner' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] #HTTParty for RESTful API calls gem 'httparty' #Paperclip for storing files gem 'paperclip' gem "mongoid-paperclip", :require => "mongoid_paperclip" gem "letter_opener", :group => :development r
- How to Build a Low-Tech Website?
-
Doing the Impossible — Building a Persistent Audio Player in Ruby on Rails
We’ll use Ruby on Rails and Turbo to accomplish this, but we could use Turbo’s predecessor, Turbolinks to achieve the same result, and Rails is only incidental to the finished project. We could just as easily use Turbo with any other "multi-page" framework and deliver the same experience.
-
I've learned a little bit of python. Now what?
Check out StimulusJs and Turbolinks their whole purpose is to add only a tiny bit of js to a server side rendered website, to give a feel similar to that of client-side rendered web pages.
What are some alternatives?
axe-core - Accessibility engine for automated Web UI testing
htmx - </> htmx - high power tools for HTML
InstantClick - InstantClick makes following links in your website instant.
turbo - The speed of a single-page web application without having to write any JavaScript
vite - Next generation frontend tooling. It's fast!
webpack-bundle-analyzer - Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap
Vue Storefront - The open-source frontend for any eCommerce. Built with a PWA and headless approach, using a modern JS stack. We have custom integrations with Magento, commercetools, Shopware and Shopify and total coverage is just a matter of time. The API approach also allows you to merge VSF with any third-party tool like CMS, payment gateways or analytics. Newest updates: https://blog.vuestorefront.io. Always Open Source, MIT license.
turbo-rails - Use Turbo in your Ruby on Rails app
Slide and swipe - :zap: A sliding swipe menu that works with touchSwipe library.
lighthouse-ci - Automate running Lighthouse for every commit, viewing the changes, and preventing regressions
unlighthouse - Scan your entire site with Google Lighthouse in 2 minutes (on average). Open source, fully configurable with minimal setup.
sveltekit-blog-mdx - SvelteKit MDX starter blog with MDsveX (Svelte in markdown)