makandra dev

Rails log files rotate automatically when they reach approx. 100MB: $ ls -lh log/ -rw-r--r-- 1 user group 55M...

When RSpecs runs the first feature spec, you may see log output like this: Capybara starting Puma... * Version 6.5.0, codename...

In Rails 7.2 the new default for config.action_dispatch.show_exceptions is rescuable. :rescuable: It will show a Rails error page in...

Frontend performance and user experience are orthogonal to feature development. If care is not taken, adding features usually degrades frontend...

We usually ship applications that self-host webfonts to comply with GDPR. Many popular web fonts are available as NPM...

Even if you don't make any beginner mistakes like N+1 queries or missing DB indices, some requests can...

Why Rails has multiple schema formats When you run migrations, Rails will write your current database schema into db/schema.rb. This...

ActiveStorage does not provide any built-in way of implementing authentication for the available DirectUpload endpoint in Rails. When using...

Given there is a user with an attachable avatar: class User < ApplicationRecord has_one_attached :avatar end

Here is a bash script that I use to auto-configure displays on Ubuntu 24.04 with Xorg. Background

Hint If you are using our opscomplete.com hosting we can set all environment variables mentioned below for your deployment on...

tl;dr When a cookie includes an Expires attribute or an HTTP response includes caching headers like Expires or Cache...

makandra dev

Capistrano 3 has a doctor task that will print information about Environment: Ruby, Rubygems and Bundler versions List of Capistrano...

makandra dev

YJIT is Ruby's default just-in-time compiler. It is considered production-ready since Ruby 3.2 (source).

When using Rails credentials, you will edit the encrypted credentials for staging or production environments from time to time. To...

The ActiveSupport::BroadcastLogger allows you to log to multiple sinks. You know this behavior from from the rails server command...

I recently stumbled upon the Rails feature composed_of. One of our applications dealt with a lot of addresses and...

Rails' default logger prefixes each log entry with timestamp and tags (like request ID). For multi-line entries, only the...

Reacting on a class getting added can be done with a mutation observer. Example: const items = document.querySelectorAll('.item') const expectedClass...

Using Capistrano, we usually have some array configurations in the config/deploy.rb file, like set :linked_files, %w[config/database.yml], so in...

When you mocked method calls in RSpec, they are mocked until the end of a spec, or until you explicitly...

What is makandra cards? We are makandra, a team of 60 web developers, DevOps and UI/UX experts from Augsburg, Germany...

Raising errors for required and permitted attributes makes it easier to find errors in your application during development and in...

Why do we migrate? Due to a change in licensing, we cannot provide Elasticsearch versions >= 8.0. Version 7.17.x will...