This is a personal post-mortem analysis of a project that was mainly build to provide a REST API to...
Browsers come with a set of built-in elements like or . When we need a new component not covered by...
A while ago I tweeted a thread about how a small JavaScript snippet, one that can fit in a single...
There is a kind of features in web applications that hinder automated integration tests. Examples include cookie consent banners or...
The french Tilt Studio built a caniuse clone for email clients. Note that while checking styling support helps using (or...
ActiveSupport (since 4.1) includes test helpers to manipulate time, just like the Timecop gem: To travel a relative amount of...
Rails uses a CSRF token in forms and AJAX requests to verify a user request. Internally it compares the injected...
This collection contains some useful design resources for developers. Many of them were mentioned in the Refactoring UI tutorials.
As an application exists, data accumulates. While you'll be loosely monitoring the main models' record count, some supportive database...
There are a few ways to access view helpers from the Rails console. The easiest way is the helper shortcut...
You can use constraints in your routes.rb to avoid getting errors when wrong routes are called. Instead, the user will...
When a user shares your content, a snippet with title, image, link and description appears in her timeline. By default...
When an AJAX request raises an exception on the server, Rails will show a minimal error page with only basic...
Inspecting the source of an email does not always reveal the plain HTML source, but some encoded byte mess. In...
Jasmine has long standing support for writing asynchronous specs. In days gone by we used the done callback to achieve...
The goal is to get Jasmine specs running in a Rails project using Webpacker, with the browser based test runner...
With ActiveType 1.2 you can modify associations (has_many etc.) after they have been defined. One common use case for...
If you get requests with values for formats like this: {:locale=>[:de], :formats=>["../../../../../../../../../../etc/services{{"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby...
Until Capybara 2, node finders that accept a text option were able to find nodes based on rendered text, even...
Over the years we have tried several solution to have vector icons in our applications. There are many ways to...
Download buttons can be difficult to test, especially with Selenium. Depending on browser, user settings and response headers, one of...
TL;DR Most web applications do not require action on this. SameSite=None (old browser default) will continue to work...
When delivering non-public uploaded files (images, documents etc), one has to decide whether and how to do authorization. The...