Keep the React app responsive even during large screen updates with startTransition API introduced in React 18

The newly introduced startTransition API helps to improve the user interactions by categorizing the state updates as urgent and non-urgent.

Rails 7 adds ActiveRecord::Relation#structurally_compatible?

Rails 7 adds ActiveRecord::Relation#structurally_compatible? to provide an easy way to check if two relations are structurally compatible before running `or` or `and` query on it.

Rails 7 adds attributes_for_database to return attributes as they would be in the database

Before this update, serializing an ActiveRecord object led to funny outcomes. Let's dive in!

Rails 7 allows anything that responds to `#to_str` into redirect_to

Rails 7 adds support for redirecting using any arguments that respond_to `#to_str`.

ECMAScript 2021 introduces replaceAll method and numeric separators

ECMAScript 2021 introduces the replaceAll() method to replace all occurrences of a substring in a string with another string and numeric separators to allow a separator character between digits.

Rails 7 optimizes remove_columns to use a single SQL statement when supported

Rails 7 remove_columns will now trigger a single SQL statement to remove all columns if the database supports it, instead of querying multiple SQL statements for removing individual columns.

Rails 7 now consistently renders button_to

Rails 7 introduced a config that helps button_to consistently render out to the button HTML tag.

Starting with Rails 7, retry failed jobs indefinitely

Pass `:unlimited` symbol to `attempts` parameter of ActiveJob's `retry_on` method, which allows a developer to specify that a job should retry forever until it succeeds.

ActiveStorage now raises a PreviewError when previews fail to generate

Before this update, a failed preview generation would result in a 0-byte file being created – leading to disastrous outcomes in the views.

Rails 7 moves ActiveRecord::Base.logger to a class_attribute leading to a 7x speed improvement

Rails 7 utilized Ruby's cache for cvars to improve ActiveRecord::Base.logger performance 7x. Let's deep dive into this!