Articles that I have been reading

Week 2024-40

The habits of effective remote teams

Lessons from GitLab, Doist, PostHog, and more.

Consulting Soft Skills
Added: 04 Oct 2024
Building the Perfect Logo Strip - 9elements

We've all been there: you're working on a website and need to display a row of logos—clients, partners, sponsors—you name it. However, logos come in all shapes and sizes, and making them look good together can be quite challenging. How do you get...

CSS Frontend
Added: 04 Oct 2024
Practical Accessibility Tips You Can Apply Today

Kevin Andrews shares some useful snippets of markup with handy explainers to help you deliver more accessible components.

Frontend
Added: 03 Oct 2024
ActiveStorage Direct Upload with Stimulus

ActiveStorage’s DirectUpload feature allows files to be directly uploaded to your Cloud’s storage without touching your app’s server.

Backend Frontend HOTWire Ruby on Rails
Added: 03 Oct 2024
The Decide, Evolve, React pattern in Ruby

The Decide, Evolve, React pattern in Ruby, explained step by step

Consulting Design Ruby Staff Engineer
Added: 03 Oct 2024

Ruby is a language that consistently evolves to make code more expressive, concise, and readable. With the release of Ruby 3.4, one of the exciting new features introduced is the use of it as a shortcut for the first parameter in a block. This enhancement aims to simplify code, especially in situations where blocks are used extensively, reducing the need to explicitly declare block parameters.

Ruby
Added: 03 Oct 2024
Rails Thruster 101

While we are waiting for the Rails World 2024 conference to start and Kamal 2 to be released, I decided to make some preparations for the upcoming changes in the Rails ecosystem.

Backend DevOps Ruby on Rails
Added: 30 Sep 2024
How Propshaft Works: A Rails Asset-Pipeline (Visual) Breakdown

A from-scratch breakdown of how Rails' Propshaft system serves up static assets automagically and quickly, with graphics and stories to boot!

Ruby on Rails
Added: 30 Sep 2024
Leveraging Turbo 8: Best Additions to Implement in Rails 8 Projects

Morphs, Presence and Typing Indicators

Frontend HOTWire Ruby on Rails
Added: 30 Sep 2024
Drag & Drop Images with Preview using Stimulus Outlets

Explore an easy way to drag & drop images using Stimulus while using the Outlets API to preview the dropped image.

Frontend HOTWire Ruby on Rails
Added: 30 Sep 2024
Migrating from Devise to Rails Auth before you can say “Rails World keynote”

Radan here: this is another guest post by Miha. He was so excited about it that he interrupted my weekend with a brand new post to review. I still found it interesting, so I hope you enjoy it as much as I did! Back to Miha now.

Backend Ruby on Rails
Added: 30 Sep 2024

Week 2024-39

Why I prefer rebase over merge (and everything else) - ShiftMag

A question as old as human civilization - when developing on a feature branch, should I rebase or should I merge changes to keep it in sync with the main branch?

Consulting
Added: 27 Sep 2024
Design Patterns in Ruby

The catalog of annotated code examples of all design patterns, written in Ruby.

Consulting Ruby
Added: 27 Sep 2024

Why we are excited about PostgreSQL 17 for our Rails applications.

Database Ruby on Rails
Added: 26 Sep 2024
How to Build a Twitter Clone with Rails 8 and Turbo 8

An update to How to Build a Twitter Clone with Rails and Hotwire

Frontend HOTWire Ruby on Rails
Added: 24 Sep 2024
Turbo Morphing in Practice | Jon Sully

How two lines of code made everything smooth

Frontend HOTWire Ruby on Rails
Added: 24 Sep 2024
Your company needs Junior devs

Junior engineers are foundational to whether a team can collaborate and innovate

Consulting
Added: 24 Sep 2024
2024 Ruby on Rails Community Survey Results

Over 2,700 members of the Rails community from 92 countries kindly contributed their thoughts on tools, frameworks, and workflows in their day to day development lives. From these responses we hope to get an understanding of where Rails stands as a framework in 2024.

Consulting Ruby on Rails
Added: 24 Sep 2024

Week 2024-38

A brief look at the new Kamal Proxy replacing Traefik

Kamal 2 is coming with a brand new custom proxy that’s replacing Traefik. Let’s have a look at why is that and what it means.

Backend DevOps Ruby on Rails
Added: 22 Sep 2024
Add your Rails app to the Home Screen - the Ultimate Guide

Rails 8 will support Progressive Web Apps (PWA) out-of-the-box but you have all the tools you need to make your Rails app installable today.

Frontend Ruby on Rails
Added: 22 Sep 2024
Rails Security: Action Policy & Rabarber

Secure your Rails app with Action Policy and Rabarber for effective user roles and authorization. Simplify admin access and permissions

Ruby on Rails
Added: 21 Sep 2024

This article demonstrates a short-coming with using RSpec mocks in code which accesses objects out of a database.

Ruby on Rails Testing
Added: 21 Sep 2024
Shrinking Big PostgreSQL tables: Copy-Swap-Drop

In this post, you’ll learn a recipe that you can use to “shrink” a large table. This is a good fit when only a portion of the data is accessed, the big table has become unwieldy, and you don’t want a heavier solution like table partitioning.

Database
Added: 21 Sep 2024
How I build a button component

A button is arguably the most likely component to find itself in your codebase so I’m going to show you how I approach building one.

CSS Frontend
Added: 18 Sep 2024

Designing Web Components For Morphing and techniques to deal with reflecting attributes

Frontend
Added: 16 Sep 2024
The Rails Renaissance

The power of Rails with Turbo and Stimulus.

Consulting Ruby on Rails
Added: 16 Sep 2024

Week 2024-37

Ruby on Rails 7.1: Partial Strict Locals and Their Gotchas | AppSignal Blog

Rails partials have been around for years, but now strict locals have entered the scene to make things easier for us.

Frontend Ruby on Rails
Added: 13 Sep 2024

cache_key_with_version is a method used in Ruby on Rails to generate a cache key for a model object that includes its version number. This method is helpful for ensuring cache consistency, as it combines the object’s unique ID, updated timestamp, and a version number to create a unique cache key.

Backend Ruby on Rails
Added: 12 Sep 2024

Explore the key differences between sprockets and propshafts in rail systems. Understand their functions, applications, and how they contribute to the efficiency of rail operations.

Ruby on Rails
Added: 12 Sep 2024
Implementing Filtered Semantic Search Using Pgvector and JavaScript

Explore semantic search with filters and learn how you can implement it with pgvector and JavaScript.

AI Database Javascript
Added: 12 Sep 2024
Building a complex filtering system with Ruby on Rails

Embracing the digital experience

Backend Ruby on Rails
Added: 10 Sep 2024
Ruby on Rails Boilerplate: Vite, Tailwind, Stimulus

Embracing the digital experience

Consulting Ruby on Rails
Added: 10 Sep 2024
Upgrade Ruby using dual boot

Upgrade Ruby using dual boot

DevOps Ruby on Rails
Added: 10 Sep 2024

Automate your next workflow.

AI
Added: 10 Sep 2024
Betterstimulus | Targetless Controllers

Avoid mixing targetless controllers with those attached to a target.

Frontend HOTWire Ruby on Rails
Added: 10 Sep 2024

Week 2024-36

Making a simple React microphone component

The browser has some nice built-ins for building a microphone recording component, so you don't have to use third-party libraries!

Frontend Javascript
Added: 07 Sep 2024
Building a breakout element with container units

Learn how to use container units and container queries to enhance an already flexible sidebar layout with some extra design control and full width breakout elements.

CSS Frontend
Added: 07 Sep 2024
Authenticating with OmniAuth and OpenID Connect (OIDC) in Ruby on Rails applications

What is OpenID Connect?

Backend Ruby on Rails
Added: 06 Sep 2024
Even Better Specs

Guidelines for Maintainable Tests

Ruby on Rails Testing
Added: 06 Sep 2024
Structure Your ERb and Partials for more Maintainable Front-end Code in Rails

It's not always clear how to make the most of partials and helpers in Rails and know when to put what code where. Regardless of the methods, we all still...

Frontend Ruby on Rails
Added: 05 Sep 2024
Mention users with TributeJS | SupeRails #186

In episode #95 we focused on parsing text and converting hashtags and mentions into links. Now let's add an @ mentions dropdown to any text field, so that you can select a user that you want to men...

Backend Frontend Javascript Ruby on Rails
Added: 05 Sep 2024
Routing Concerns in Rails

You must have used concerns in Rails. Did you know you can also use concerns for your routes? They allow you to declare common routes to be reused in other resources and routes. This post covers the basics of routing concerns, including what they are, how they work, and when you might need them.

Backend Ruby on Rails
Added: 04 Sep 2024

Week 2024-35

Six Degrees of Kevin Bacon - Postgres Style | Crunchy Data Blog

Paul Ramsey has some great examples of Postgres network analysis and graph theory in this sample code for playing the Kevin Bacon game. Both pgRouting and recursive CTE are used to solve graphing relationships.

Database
Added: 28 Aug 2024
Software estimates have never worked and never will

Since the dawn of computing, humans have sought to estimate how long it takes to build software, and for just as long, they've consistently failed. Estimating even medium-sized projects is devilishly difficult, and estimating large projects is virtually impossible. Yet the industry keeps insisting that the method that hasn't worked for...

Consulting
Added: 28 Aug 2024
Redirect and return in Rails controllers

Premature returning from a controller action is a common idiom in Rails applications. I asked my followers in Twitter about whether they know or know how to do this correctly, and I am glad to see that most of them gave the correct answer. Let’s dive into the details.

Backend Ruby on Rails
Added: 28 Aug 2024

As Rails developers, we often focus on writing clean, efficient Ruby code. However, as the application grows optimizing database performance is equally crucial for creating responsive applications. One of the most powerful tools in our arsenal for database optimization is indexing. Here I will talk about PostgreSQL indexing from a Rails developer’s perspective. The query plan generated by EXPLAIN will help us to make informed decisions about index creation, ensuring our database queries run as efficiently as possible.

Backend Database Ruby on Rails
Added: 28 Aug 2024
Easy to Overlook PostgreSQL Performance Issues in Rails Apps

Performance issues in the PostgreSQL layer usually start to manifest only when your app reaches a certain scale. In this blog post, I'll discuss easy-to-miss database config tweaks and common problems that I've encountered in multiple Rails projects.

Database Ruby on Rails
Added: 28 Aug 2024

Week 2024-34

Squash Your Ruby and Rails Bugs Faster | AppSignal Blog

Let's look at a few readily available techniques and tools to gather and investigate issues in your Ruby or Rails app.

Consulting Ruby on Rails
Added: 22 Aug 2024
Sidekiq To SolidQueue Migration

Migrating the Miru app from Sidekiq to SolidQueue eliminated the dependency on Redis, reducing costs by utilizing database for job storage.

Backend DevOps Ruby on Rails
Added: 21 Aug 2024
Building a better bin/dev script

Rails 7.2 uses the foreman gem for process management, which has serious limitations when it comes to interactive debugging. The run-pty Node package is an excellent alternative.

Consulting Ruby on Rails Staff Engineer Tools
Added: 21 Aug 2024
An Introduction to HTTP Caching in Ruby On Rails | AppSignal Blog

We'll explore the basics of HTTP caching, cache layers, configuration, and how to cache in Rails.

Backend Ruby on Rails
Added: 20 Aug 2024
TestProf: a good doctor for slow Ruby tests—Martian Chronicles, Evil Martians’ team blog

This article introduces the Ruby test profiling toolbox called TestProf.

Ruby on Rails Testing
Added: 20 Aug 2024
Nested Forms With Turbo (without dependencies)

Nested forms with Rails can now be done without using any third-party gem! Turbo Stream’s is all you need to add nested fields to any form you want.

Frontend HOTWire Ruby on Rails
Added: 19 Aug 2024

Week 2024-33

How to get the most out of staff+ engineers

Staff+ engineers have years of technical knowledge stored away, but often have their skills overlooked or undermined.

Consulting Soft Skills Staff Engineer
Added: 15 Aug 2024
Build a modal form with Rails, Turbo, and the dialog element

I’ll explain the differences and benefits of Turbo Streams vs Turbo Frames in this HTML-first, test-driven tutorial. Only one line of JavaScript needed!

Frontend HOTWire Ruby on Rails
Added: 15 Aug 2024
I made a Snake clone with RxJS | Devin Jameson

Snake was one of my favorite games to play on my Nokia cell phone circa 2007, so I decided to rebuild it with modern frontend web tooling.

Frontend Javascript
Added: 15 Aug 2024
Upgrade Rails From 7.1 to 7.2 - FastRuby.io | Rails Upgrade Service

How to upgrade Ruby on Rails from 7.1 to 7.2, including the deprecations, required configurations, application code changes, and webpacker API changes.

Backend Ruby on Rails
Added: 15 Aug 2024
From Code to Compliance: Accessibility Testing in Rails Applications - FastRuby.io | Rails Upgrade Service

Find out how to test accessibility in your Rails app to make it usable for everyone. Learn simple tools and methods to improve your app’s inclusivity and user experience.

Frontend Ruby on Rails Testing
Added: 15 Aug 2024
Serializers in Ruby on Rails

A place to learn Ruby on Rails

Backend Ruby on Rails
Added: 14 Aug 2024
Railing against time: tools and techniques that got us 5X faster tests—Martian Chronicles, Evil Martians’ team blog

Read about the tools, techniques, mindset that got our client 5X faster tests.

Ruby on Rails Testing
Added: 14 Aug 2024
Conditionally render a Turbo Frame shared between multiple views

We explore several solutions to a common Hotwire problem.

Backend Frontend HOTWire Ruby on Rails
Added: 14 Aug 2024
Fixing a footgun in ActiveRecord::Core#inspect

The inspect method on Active Record models returns a string including the model’s class and a list of all its attributes and their values. In Rails 7.2, you can configure which attributes are included in the output of inspect. In this post, I’ll discuss the performance issue that led me to implement this feature. I’ll also talk about how this feature can be used to improve developer experience.

Backend Ruby on Rails
Added: 14 Aug 2024
A useful pattern for handling remote data in React apps | Devin Jameson

Handling remote data state is one of the most common things we do in React apps, so it makes sense to carefully consider how we model it.

Frontend Javascript Typescript
Added: 12 Aug 2024

Week 2024-32

Preview an Image Before Upload with Hotwire/Stimulus

Learn about JavaScript’s FileReader interface to preview user images before they are upload with Hotwire/Stimulus.

Frontend HOTWire Ruby on Rails
Added: 11 Aug 2024
Generating Documentation for Your Rails API: I Build My Own Tool.

After searching for a simple, interactive, and easy-to-use tool to document the APIs I build with Rails, and not finding the right one, I decided to create my own: OasRails.

Packages Ruby on Rails
Added: 10 Aug 2024
Should the daily stand-up die?

The daily stand-up was intended to help teammates remove any blockers to commitments. But at many companies, stand-ups have devolved into tedious one-sided status reports.

Consulting
Added: 10 Aug 2024
Rails Added Filter Option On in_order_of Method

Rails added the filter option to in_order_of to prioritize the specified values without filtering the results

Backend Database Ruby on Rails
Added: 10 Aug 2024
Rails 8 introduces a basic authentication generator

Rails 8.0 adds a generator that streamlines the process of adding basic authentication to Rails applications

Backend Ruby on Rails
Added: 10 Aug 2024
Introduction to Minitest Mocks

Test doubles likes mocks and stubs can help us with isolating code under test with the rest of the system. Here’s how to mock in Minitest.

Ruby on Rails Testing
Added: 10 Aug 2024
Why CTOs are choosing Hotwire and Ruby on Rails

A conversation with the CTO and Co-founder of Clara, a recent thoughtbot client, about the strategy behind their decision to build their startup product with Rails and Hotwire.

Consulting Frontend HOTWire Ruby on Rails
Added: 10 Aug 2024
Automate Your Ruby Gem Releases

Discover how to automate the releases and publication of your gems on RubyGems using release-please and GitHub Actions.

Packages Ruby
Added: 06 Aug 2024

The convenience and power of Active Record allows you to interact with your database in a more Ruby-like way, making it easier to write efficient and readable code. However, as with any complex system, performance can sometimes take a hit when using Active Record. One common scenario where performance may suffer is when counting records in your database. In any Rails app, A simple count method call can quickly become a bottleneck, especially for larger datasets. In this post, we’ll dive into some optimization techniques for using Active Record’s count method in your Rails app.

Database Ruby on Rails
Added: 06 Aug 2024
Betterstimulus | Open-Closed Principle

Good software design is - in part - realized by the capability to introduce changes in a way that isn’t painful. (If you’d like to read up on code smells that violate this principle, take a look at this list of change preventers.)

Consulting Javascript
Added: 06 Aug 2024
Secure Your Kamal App Deployments with Let's Encrypt

Do you have a web application deployed with Kamal, but want to know how to set up secure HTTPS connectivity to it? In this video, you’ll learn how easy it is...

Backend DevOps Ruby on Rails
Added: 06 Aug 2024
Supercharge your Rails logs with tags

A hidden Rails feature that can level up your debugging game.

Backend DevOps Ruby on Rails
Added: 05 Aug 2024

Week 2024-31

From Partials (and Helpers) to Embracing ViewComponent in Rails

The first professionally designed UI components for Rails. Built with ViewComponent, designed with Tailwind CSS and enhanced with Hotwire.

Frontend Ruby on Rails
Added: 03 Aug 2024
Semantic search with Ruby on RailsFireHydrant LogoChevron down iconChevron down iconChevron down iconLinkedIn logo iconTwitter logo iconFireHydrant LogoTwitter logo iconLinkedIn logo iconGitHub logo icon

Learn how to implement semantic search in Ruby on Rails using the Neighbor gem, Anthropic's Claude API for summarization, and OpenAI for text embeddings. Enhance your app's search capabilities with meaning-based results.

AI Ruby on Rails
Added: 03 Aug 2024
Inline Save and Add Another with Rails and Hotwire

Learn how to implement a Todoist-style task creation feature in your Rails app using Hotwire and Stimulus. This step-by-step guide shows you how to create a seamless, JavaScript-free UX for adding new tasks with auto-focus functionality. Perfect for Rails developers looking to enhance their app’s user experience.

Frontend HOTWire Ruby on Rails
Added: 03 Aug 2024

Week 2024-30

How to review code effectively: A GitHub staff engineer’s philosophy

GitHub Staff Engineer Sarah Vessels discusses her philosophy of code review, what separates good code review from bad, her strategy for finding and reviewing code, and how to get the most from reviews of her own code.

Soft Skills Staff Engineer
Added: 25 Jul 2024
GitHub - GeorgeKaraszi/ActiveRecordExtended: Adds additional postgres functionality to an ActiveRecord / Rails application

Adds additional postgres functionality to an ActiveRecord / Rails application - GeorgeKaraszi/ActiveRecordExtended

Database Gem Ruby on Rails
Added: 25 Jul 2024
Row pattern recognition feature for PostgreSQL

What is row pattern recognition feature? Row pattern recognition (RPR) is a feature defined in the SQL standard. It allows to search for a s...

Database
Added: 25 Jul 2024
Navigating the new web accessibility ruling in the U.S.

A practical guide to understand the new accessibility requirements and get started with your plan to comply.

Consulting Frontend
Added: 23 Jul 2024
Event sourcing for smooth brains: building a basic event-driven system in Rails

Event sourcing is a jargon filled mess, but we can build a lean version with just ActiveRecord, callbacks, and a bit of boring code. Learn how to create simple, yet powerful event-driven systems in Rails.

Backend Consulting Ruby on Rails
Added: 22 Jul 2024
Exercise: Minesweeper in 100 lines of clean Ruby

Ruby is such an expressive language. You can often do surprisingly much with just a few lines of code. It’s why I find it so satisfying to think about how to accomplish the same thing in fewer lines of Ruby1. If we accept the claim that that number of bugs correlates with number of lines of code this is not just a fun exercise. There’s real business value in accomplishing a feature with less lines of code. ↩

Frontend Ruby
Added: 22 Jul 2024

Week 2024-29

Ruby on Rails - July 2024

The only Ruby on Rails newsletter you will ever need!

Ruby on Rails
Added: 16 Jul 2024
What's new in Web Dev this month?

Hello Devs 👋 I hope everyone's doing great. The landscape of web development is constantly...

Frontend
Added: 16 Jul 2024

This post explores where to access request headers by looking at the Rails source code after unexpectedly accessing the response headers.

Backend Ruby on Rails
Added: 15 Jul 2024

Week 2024-28

Ruby on Rails Snippets I Find Helpful at the Start of a Project

When I'm starting a new Ruby on Rails project, these are few snippets that I find helpful

Consulting Ruby on Rails
Added: 08 Jul 2024
Highlighting Blogging on Mastodon · Matthias Ott – User Experience Designer

Matthias Ott is an independent user experience designer and developer from Stuttgart, Germany. Besides design practice he teaches Interface Prototyping at the Muthesius Academy of Fine Arts and Design, Kiel.

Frontend
Added: 08 Jul 2024

This post details a proof-of-concept for optimistic UI. If you want to just browse the source, check out the optimistic-ui-hotwire-rails GitHub repository.

Frontend HOTWire Ruby on Rails
Added: 08 Jul 2024

Week 2024-27

Sebastian Rollén's Blog

If you want to try this at home, here's a GitHub link to a demo application that follows the blog post below. Each commit corresponds to a section in the post.

Frontend Ruby on Rails
Added: 04 Jul 2024
TIL custom order with .in_order_of

Sometimes you need a custom, semantic order for things, usually statuses, types. Oftentimes this is...

Ruby on Rails
Added: 04 Jul 2024
Easy Postgres backups

How to use Kamal to backup and restore your Postgres database

Database DevOps Ruby on Rails
Added: 04 Jul 2024
Rails Adds ActiveRecord::Base.with_connection To Optimize Database Operations.

Efficiently manages database connections by promptly returning them to the pool after use, enabling immediate reuse rather than holding onto connections until the end of the request cycle.

Ruby on Rails
Added: 04 Jul 2024
Add comments to your tables columns - Remi Mercier - Ruby on Rails Developer

By default, Rails adds comments to some attributes like `id` (`not null, primary key` for instance.) But now, I can add comments to my own attributes.

Database Ruby on Rails
Added: 04 Jul 2024
The Productivity apps I use in 2024

Cassidy's current "stack" of task-tracking, calendar, and note-taking apps

Consulting
Added: 02 Jul 2024

Week 2024-26

A pragmatic guide for adding React to an existing Rails application (and still use Hotwire)

For a long time, I thought that using React with Rails was an “all-or-nothing” proposition. I’m now realizing that the two can be integrated on a spectrum.

Frontend Javascript Ruby on Rails
Added: 28 Jun 2024
How to add “Save and add another” feature to Rails apps

Learn how to add the “Save and add another” feature in your Rails app

Frontend Ruby on Rails
Added: 27 Jun 2024
API versioning in Ruby on Rails

Got a Rails API that needs some love? Learn how to version your API endpoints so that you can introduce new features while maintaining backward compatibility!

Backend Consulting Ruby on Rails
Added: 27 Jun 2024
How to Deal with 1,000 Failing Specs in a Rails App

A few months ago, Planet Argon kicked off a Rails 2.1 to Rails 3.0 / Ruby 1.8.7 to Ruby 1.9.3 upgrade for one of our clients. The monolithic Rails app contai...

Ruby on Rails Testing
Added: 26 Jun 2024
Hotwire Tutorial: How Do I Drag and Drop Items in a List? - Blogging On Rails

If you’ve been following the changes in Turbo 8, it looks incredibly promising for improving the perception of speed and interactivity on our web apps. A lot of the Stimulus Tutorials could use an update since they were first written, so I thought it would be good to over existing tutorials and rethink them withContinue reading "Hotwire Tutorial: How Do I Drag and Drop Items in a List?"

Frontend HOTWire Ruby on Rails
Added: 25 Jun 2024
How to Create an Undo Action with Rails

Undoing an action, like archiving, deleting or even sending an email, is straightforward with Rails and Turbo. Let’s learn how to do it.

HOTWire Ruby on Rails
Added: 25 Jun 2024

Week 2024-25

Documenting Software Architectures

The Architects Choice

Consulting
Added: 22 Jun 2024

Week 2024-24

Async Ruby on Rails

Ruby and Rails have several features to make your code more performant using async programming. Here’s a list of these tools and how to use them.

Consulting Ruby on Rails
Added: 14 Jun 2024
Exploring Rails Applications With Multiple Databases - FastRuby.io | Rails Upgrade Service

Unlock the potential of Rails with multi-database configurations, exploring setup for multiple database settings, whether horizontally or vertically.

Database Ruby on Rails
Added: 14 Jun 2024
Replacing system tests with unit tests |
    
    Everyday Rails

Is your testing strategy too top-heavy? Here are some techniques to spread coverage down the testing pyramid.

Consulting Ruby on Rails Testing
Added: 14 Jun 2024

Week 2024-23

Tips for Using Less JavaScript

Practical tips to optimize your web performance by using HTML and CSS instead of JavaScript for common tasks like state management, responsive design, and UI elements.

Frontend Javascript
Added: 06 Jun 2024
Web Components Can Now Be Form Controls

Modern Web Weekly #18 One area in which developers have always wanted to customize elements is forms. Historically, it has often been hard to style form controls to give them the look and feel you want. The styling options are often limited and to this day, form controls like date

Frontend Javascript
Added: 06 Jun 2024

Week 2024-22

Top SQL Queries for Data Scientists

SQL seems like a data science underdog compared to Python and R. However, it’s far from it. I’ll show you here how you can use it as a data scientist.

Database
Added: 31 May 2024
Production-Grade (ish) Rails deployment on Hetzner with Kamal

I've been toying around with Kamal for some time now, and I believe I have come up with a nice setup for a reasonably robust deployment. It includes two servers, one for the application and another for database and caching, a firewall to expose only the ports we need (e.

DevOps Ruby on Rails
Added: 30 May 2024

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Consulting Ruby on Rails
Added: 30 May 2024
N+1 in Ruby on Rails - Blog - Visuality

The N + 1 problem is common performance issue. Ruby on Rails provides tools and methodology for preventing it from happening in you applications.

Backend Ruby on Rails
Added: 30 May 2024
Set Up a Rails Development Environment with Docker + VS Code Dev Containers

I will walk through the steps my team followed to set up a pretty nice Rails development environment using Docker and VS Code Dev Containers.

Consulting Ruby on Rails
Added: 28 May 2024
Manifesto for a Humane Web

We need to build a better web. A web by and for humans.

Consulting
Added: 28 May 2024
Full text search for Litestack Ruby apps with Litesearch

Mandatory AI generated image Introduction Litestack, and its Litedb component in particular, provides powerful and flexible full text search capability via the Litesearch module. Any context that u…

Backend Database Ruby on Rails
Added: 27 May 2024
Planning your Sidekiq queues

Judoscale's guide to architecting a perfect Sidekiq setup, easily!

Backend Ruby on Rails
Added: 27 May 2024

Week 2024-21

AWS Platform Guide: A complete guide on how to build your infrastructure on AWS

If you’re migrating to AWS from another cloud like Heroku, or starting a new project and want to build your infrastructure on AWS, this guide is for you!

DevOps Ruby on Rails
Added: 23 May 2024
A Deep Dive Into Prompt Engineering Techniques: Part 1 - The Lean Software Boutique

Large Language Models (LLMs) are widely available and easily accessible and are increasingly a part of business. Whether you’re interacting with an LLM via the provided interface or connecting via an API and integrating it into other systems, it’s helpful to understand how to get the best possible results out...

AI
Added: 23 May 2024
Prefer Multiple Compositions | Kyle Shevlin

The flexibility of JavaScript and React means there are lots of ways to achieve the same result. Let's consider why we might choose one way over another when it comes to React. Specifically, when to choose a more verbose solution with composition over the DRYest code possible.

Consulting Javascript
Added: 21 May 2024
Creating Forms in Ruby on Rails with Simple Form | AppSignal Blog

Simple Form helps you to build and manage forms in Rails. Let's examine what Simple Form is, why we might need it, and some real use cases.

Frontend Ruby on Rails
Added: 21 May 2024
How to RSpec a Jbuilder response from a Rails JSON API

Want to write a Rails API controller test and make sure it includes exactly what your Jbuilder serializer returns? Set `render_views`. Learn why in this post.

Ruby on Rails Testing
Added: 21 May 2024
A new version of Suspenders has been released!

We took our Suspenders to the tailor and made some alterations.

Consulting Ruby on Rails
Added: 20 May 2024
Ruby on Rails Code Audits: 8 Steps to Review Your App

Check the health and security of your Rails app with these quick guide to Ruby on Rails Code audits. These are the steps to take to review your ruby on rails...

Consulting Ruby on Rails
Added: 20 May 2024

Week 2024-20

Ruby class pattern to work with API requests with built-in async approach

Ruby pattern to connect multiple APIs to your project more easily with async requests approach

Backend Ruby Ruby on Rails
Added: 17 May 2024
Rails 8 adds Kamal by default.

All new applications using Rails 8 will have Kamal by default.

DevOps Ruby on Rails
Added: 17 May 2024
Tips for Using Slack

In order to master our craft we need to master our tools. Slack is one of those tools. Here are my tips for Slack.

Consulting
Added: 17 May 2024
Making a Postgres query 1,000 times faster

Learn how we discovered what was slowing down large database queries, and what we did to make Postgres queries 1000x faster.

Consulting Database
Added: 15 May 2024

Note: This is part of the Production vs Tutorial Code Series.

Consulting Ruby on Rails
Added: 13 May 2024

Week 2024-19

How we’re building more inclusive and accessible components at GitHub

We're making improvements to the way users of assistive technology can interact with and navigate lists of issues and pull requests and tables across GitHub.com.

Consulting Frontend
Added: 10 May 2024
Running Thruster with Rails and Kamal

Thruster is a new zero config proxy from 37signals. Here’s how to add it to an existing Rails projects deployed with Kamal.

DevOps Ruby on Rails
Added: 10 May 2024
How to build a Cmd+k search modal with Hotwire

Many applications feature cmd+k search modals. This includes documentation websites like Bootstrap or Tailwind CSS, as well as applications I use every day, such as GitHub and Basecamp. I recently had to build one, and it was so easy thanks to Hotwire that I wanted to share how I built it with you. Imagine we have a documentation websi...

Frontend HOTWire Ruby on Rails
Added: 06 May 2024

Week 2024-18

Rails Adds GitHub CI Workflow By Default To New Applications

All new applications using Rails 7.2 will have GitHub CI workflow by default.

Backend DevOps Ruby on Rails
Added: 04 May 2024
Why you need a

There's a very specific reputation I want to have on a team: "Nat helps me solve my problems. Nat get things I care about done."

Consulting
Added: 03 May 2024
Tips for Database Design (Part 1)

The database is often the bottleneck in our application, both in terms of performance and developer velocity. Changing the database is a lot harder than changing the code.

Backend Consulting Database Ruby on Rails
Added: 03 May 2024
Choosing the Right Audit Trail Approach in Ruby

The Ruby ecosystem offers a wide range of tools for building an audit trail, each with its pros and cons. So, which one is the best choice?

Backend Ruby on Rails
Added: 03 May 2024
Nightly Postgres Backups via GitHub Actions

Recently I wanted to set up nightly backups of my Postgres databases hosted on Neon.tech. Yes, they have backups and PITR but I knew I’d feel better if I had backups just in case. My business…

Backend Database DevOps
Added: 03 May 2024
One engineer company with Ruby on Rails

All slide content and descriptions are owned by their creators.

Consulting Ruby on Rails
Added: 30 Apr 2024
Refactoring for Readability in Ruby: a Showcase

The problem Within my 10 years of developer experience, over and over again I see an...

Consulting Ruby on Rails
Added: 30 Apr 2024
Ruby on Rails: Native route constraint for authentication

Since Rails 7, there's more and more tooling that enables us, developers, to roll our own...

Backend Ruby on Rails
Added: 30 Apr 2024
HotwireCombobox

HotwireCombobox is at an early stage of development. It's nearing a beta release, but the API might change and bugs are expected. Please continue to use the library and report any issues in the GitHub repo.

Frontend HOTWire Packages
Added: 30 Apr 2024
Generate magic tokens in Rails with generates_token_for

For a long time, and probably still today, the reference for authentication in Rails is using a gem like Devise. Thing is, you’ll probably end up customizing it a lot: views, emails, onboarding flow, etc. Since Rails 7.1, we have access to several new features that make it easier to...

Backend Ruby on Rails
Added: 29 Apr 2024

Week 2024-17

Turbo Refreshes, Frames, and Streams

Turbo Refreshes update the entire current page in place while keeping some UI state e.g. the page’s scroll position. This might seem like overkill in some cases and they’re slower that Turbo Streams, but they can really simplify response code (and the performance hit may not matter anyway).

Frontend HOTWire Ruby on Rails
Added: 27 Apr 2024

Week 2024-16

authenticate_by: Prevent timing-based enumeration of users. | a-chacon

With the introduction of authenticate_by in Rails 7.1, we can now prevent enumeration attacks based on response times.

Backend Ruby on Rails
Added: 20 Apr 2024
Delegated types in Rails: I tried them, and I'm not sure I really understood them. - Remi Mercier - Ruby on Rails Developer

Delegated types are a modelization pattern introduced in Rails in 2020. And developers have mostly been scratching their head for a few years trying to use them in their applications. Today, I want to share a real-world use case. I'll walk you through my pre-existing domain architecture, my initial requirements, my mistakes, how I eventually used delegated types, what I learned and my open questions.

Backend Ruby on Rails
Added: 18 Apr 2024
Dual-Boot Ruby on Rails Using Docker - FastRuby.io | Rails Upgrade Service

How can we use the Dual-Boot technique efficiently to upgrade our Ruby or Rails application when the workflow involves using Docker? Let's see 2 approaches.

Backend DevOps Ruby on Rails
Added: 17 Apr 2024
How to Set Up a Custom Email with Cloudflare and Mailgun

As a software engineer, you may consider having a professional email account along with your own website, like "[email protected]". But this may cost a certain amount that you'll not be willing to pay. But do you know you can do it for free? There is actually a way to do

Consulting Tools
Added: 16 Apr 2024

Week 2024-15

Rails: Environment Configuration (Magical) Instance

After instantiating your rails application, we have codes generated for us. Let’s focus on a particular section. Focus on the environments…

Ruby on Rails
Added: 13 Apr 2024
Let there be docs! A documentation-first approach to Rails API development—Martian Chronicles, Evil Martians’ team blog

We examine approaches to API documentation, with a case for why the documentation-first approach is beneficial, plus, we'll not only introduce a new Ruby gem, Skooma, that will be a revelation for those who are ready to follow this path, you can also read on for practical tips and advice for jumping in.

Ruby on Rails Testing Tools
Added: 09 Apr 2024
Work around Rails schema noise with one weird trick

The Rails robots that comprise Active Record do their best to be helpful by keeping your db/schema.rb file up to date — and tend to create pesky unwanted changes in your schema. Here’s an easy fix.

Database Ruby on Rails
Added: 09 Apr 2024

Week 2024-14

Optimized Model Auditing with PaperTrail

Learn how to optimize model auditing in your Rails application using the PaperTrail gem by setting up separate audit tables for each model, enhancing performance and organization in the auditing process

Backend Gem Ruby on Rails
Added: 07 Apr 2024
How I improved our CI build time from 24mins to 8mins and reduced costs by 50% | Owais

If you like fast CI builds, hate having to wait for an eternity for CI to complete a build after you open a PR, and love reducing infra costs, read on.

DevOps Ruby Ruby on Rails
Added: 06 Apr 2024
Table partitioning in Rails, part 1 - Postgres Stories - Blog - Visuality

In this part, I want to shortly explain, what partitioning actually is and how you can implement this mechanism for newly created table as partitioned table in Rails application. In the second part, I'll demonstrate an approach to migrate an existing table. So, let’s dive into the topic.

Backend Database Gem Ruby on Rails
Added: 03 Apr 2024
🍌The Banana Rule 🍌

A whimsical (but useful!) code style guideline

Consulting
Added: 01 Apr 2024

Week 2024-13

Pick a standard and move on - Remi Mercier - Ruby on Rails Developer

Why would you spend your cognitive capacity on useless choices?

Consulting
Added: 27 Mar 2024
The Complete Guide to Working With Cookies in Rails

This post covers almost everything you need to know about HTTP cookies in the context of Rails. We'll explore what a cookie is, why we need it, how to set & get a cookie, how to restrict cookies to a particular domain/path, prevent JavaScript access, how to sign & encrypt cookies, and much more.

Backend Ruby on Rails
Added: 27 Mar 2024
Start Using Docker Today - Hands On Examples for Developers

In this video, CJ shows hands on examples of when and where you can start using docker in your apps. He shows usage of the docker CLI, Docker Desktop, docker...

Consulting DevOps
Added: 26 Mar 2024
Why you need fewer developers than you think you do

It's a myth that more developers will speed up delivery. You can achieve more with less with simpler processes, simpler communication and fewer cross-team dependencies – which is why smaller teams …

Consulting
Added: 25 Mar 2024
How to enable reusability for `ActiveRecord::Base::normalizes` - Tobias L. Maier

This article reviews the new normalizes feature in Ruby on Rails 7.1 and shows how to increase reusability by creating normalizer modules.

Backend Ruby on Rails
Added: 25 Mar 2024
Rollup vs Esbuild for Rails
 | saaslit

Rollup and Esbuild can both handle JavaScript files in a Rails app. I made some little experiments, both locally and in-production.

Frontend Javascript Ruby on Rails
Added: 25 Mar 2024

Week 2024-12

Building a sortable table with Turbo 8’s page refreshes

Using Ruby on Rails and Turbo 8 to create a sortable table that maintains scroll position and page content as it sorts

Frontend HOTWire Ruby on Rails
Added: 24 Mar 2024
Why legacy code rewrites are the hardest job in software

Legacy codebases are often like tangled mazes, with convoluted logic, outdated practices, and patches upon patches. Here's what you need to know about rewriting vs. refactoring a legacy codebase.

Consulting
Added: 22 Mar 2024
Migrating from Sidekiq to Solid Queue with Scheduling

A short post where I share how I migrated Visualizer from Sidekiq to Solid Queue now that the latter supports scheduling.

Backend DevOps Ruby on Rails
Added: 22 Mar 2024
Automated Database Backups with Kamal

Intro

Backend DevOps Ruby on Rails
Added: 19 Mar 2024

Week 2024-11

Flash Messages (notifications) in Rails Apps

This article was originally published at Rails Designer. Flash has been a feature of Rails since...

Frontend HOTWire Ruby on Rails
Added: 17 Mar 2024

Exploring Turbo 8’s morphing page refreshes and refresh broadcast Turbo Stream actions in a Ruby on Rails application

Frontend HOTWire Ruby on Rails
Added: 17 Mar 2024
How Figma's Databases Team Lived to Tell the Scale | Figma Blog

Our nine month journey to horizontally shard Figma’s Postgres stack, and the key to unlocking (nearly) infinite scalability.

Database DevOps
Added: 17 Mar 2024
Creating and Uploading Huge Archive Files Swimmingly with Ruby | Ruby, Internet, and Programming

Posted on 19 September, 2020 at 00:00 UTC by Gentaro "hibariya" Terada

Backend Ruby on Rails
Added: 16 Mar 2024
Turbo Streaming Modals in Ruby on Rails | AppSignal Blog

In the second and final part of our series, let's turn to another method used to make modals accessible in Rails: Turbo Streams.

Frontend HOTWire Ruby on Rails
Added: 14 Mar 2024
Notes from migrating from Minitest to RSpec, with help from GitHub Copilot |
    
    Everyday Rails

Artificial intelligence hasn't replaced us yet, but how does it handle the boring parts of our jobs?

Consulting Ruby on Rails Testing
Added: 14 Mar 2024

Week 2024-10

Why Am I Talking?

As I am always on the look out for useful mental models, protocols and habits to improve the quality of dialogue, I spotted this little…

Consulting Soft Skills
Added: 06 Mar 2024
Honeybadger Now Supports Logging and Event Monitoring

Honeybadger recently added support for logging and event monitoring. It's one feature that I've been waiting for a while now, and I recently stumbled upon it randomly yesterday. This post shows how you can log events from your Rails apps to Honeybadger.

DevOps Ruby on Rails
Added: 06 Mar 2024
How we migrated from Sidekiq to Solid Queue

How we migrated to Solid Queue from Sidekiq

Backend DevOps Ruby on Rails
Added: 06 Mar 2024
Why Rails is a Great Choice for Startups in 2024

JavaScript is in the vogue now, but Ruby on Rails can become your startup’s secret competitive advantage.

Consulting Ruby on Rails
Added: 05 Mar 2024

Week 2024-9

How to use tomselect javascript library to create and edit a

Imagine that you have a classic has_many :through relation where you need to select several records out of thousands. Your form should be using an html select tag which would prove problematic if you had to select, say 5 records, out of 50.000 or mor...

Frontend Javascript Ruby on Rails
Added: 03 Mar 2024
Add a Kafka Consumer to Rails

Learn how to integrate a Kafka consumer into a Rails application

Backend DevOps Ruby on Rails
Added: 03 Mar 2024
Memory issue after Rails upgrade

I upgraded a bunch of sites to Rails 7.1 recently and the ones deployed on Heroku started to show some massively increased memory usage: How could my app that was using ~128mb of memory be using four times as much with Rails 7.1? Well, its turns out that there was a change made to the default Puma config to make use of all available co...

DevOps Ruby on Rails
Added: 27 Feb 2024

Week 2024-8

Building View Transitions in Turbo with Rails

Learn to use View Transitions in Ruby on Rails with Turbo Frames and Real-Time updates from Turbo Streams.

Frontend HOTWire Ruby on Rails
Added: 21 Feb 2024

Week 2024-7

The Plan for Rails 8

Documentation and guides from the team at Fly.io.

Ruby on Rails
Added: 16 Feb 2024
Traefik Tunning for Rails Applications (part 1)

For many years Nginx has been a default solution to serve as a reverse proxy for Rails applications. However, with the release of Kamal, the Rails community opened Traefik as a new reverse proxy solution. Within my 15 years of experience with Rails, I created an almost perfect configuration for Nginx that migrated through all my projects. With Traefik, I had to start from scratch.

DevOps Ruby on Rails
Added: 16 Feb 2024
How We Built Unique Social Preview Images for Pika — Good Enough

One of the goals of Pika, the happy blogging software that we recently launched, is to help you find your own place on the internet. Along with a nice place on the internet, when you share links to your blog we want them to represent your internet home, which you've likely taken a little time to make just so. Sharing your blog on social networks, text messages, Slack, or wherever should be an experience that makes you smile, and that's why we built custom social preview images for your blog. But how did we do it?

Frontend Ruby on Rails
Added: 14 Feb 2024
How we teach front-end development using vanilla JS

Or, a proposal on how to structure JS code for simple web apps.

Frontend Ruby on Rails
Added: 12 Feb 2024
Custom URL Helpers in Rails with the direct Method

This is the first post in the Campfire deep dive series where we explore the first ONCE product from 37signals to learn and extract useful patterns, ideas, and best practices. This post explores the direct method in the Rails Router that lets you define custom URL helpers for your application.

Backend Frontend Ruby on Rails
Added: 12 Feb 2024

Week 2024-6

Understanding the difference between output and outcome - LogRocket Blog

Outcomes are end goals you try to achieve (often referred to as “product impact”), whereas outputs are the means to achieve these outcomes.

Consulting
Added: 10 Feb 2024
Read the .ruby-version into your Gemfile

A lovely little improvement to your life when upgrading Ruby

Ruby Ruby on Rails
Added: 07 Feb 2024
A Reasonable way to manage Auth in your React App

Authentication is almost part of every modern web application these days, even the not-so-useful apps...

Frontend
Added: 05 Feb 2024

Week 2024-5

Top 5 Active Record Tips to Make Your Code More Efficient

Rails' Active Record library is full of methods you can use to streamline queries, reduce memory bloat, and avoid excessive database calls.

Backend Database Ruby on Rails
Added: 02 Feb 2024
Serving ActiveStorage Attachments Through a CDN - FastRuby.io | Rails Upgrade Service

To obtain good performance and low latency for any user accessing our site, we often use CDNs to serve our static assets. This article shows how to do the same for ActiveStorage attachments.

Backend Ruby on Rails
Added: 02 Feb 2024
Ruby's Exceptional Creatures

Exceptional Creatures is Honeybadger.io's documentation of Ruby's exception system, with a twist. Collect them all!

Consulting Ruby on Rails
Added: 02 Feb 2024
Tech stack for my email courses project

Efficient email courses tech stack: Ruby, Rails, SQLite, litestack, Avo, Tailwind, ERBs, Phlex, Minitest, Sitepress, Debug, Propshaft, Hotwire, direnv...

Consulting Ruby on Rails
Added: 02 Feb 2024
How to Delay a Rails Upgrade - FastRuby.io | Rails Upgrade Service

In this blog post, we'll explore steps you can take when you aren't going to upgrade Ruby on Rails right away but want to get ready for an upgrade.

Backend Consulting Ruby on Rails
Added: 02 Feb 2024
How to deal with PostgreSQL Backups using Kamal // Stefan Botzenhart

Streamlining Database Backups with Kamal: A Guide to Efficient and Secure Data Management in Containerized Environments.

Backend Database DevOps Ruby on Rails
Added: 02 Feb 2024
Rails Performance Unveiled: Identifying Common Culprits - FastRuby.io | Rails Upgrade Service

In this article, we will look at the different strategies that you can apply to improve the performance of the application while not focusing on where to apply these strategies.

Consulting Ruby on Rails
Added: 02 Feb 2024
Got some rhythm?

Using a scale to find that vertical rhythm

CSS Frontend
Added: 02 Feb 2024
The link_to helper in Rails - Rails Tricks Issue 25

The link_to helper in Rails creates an anchor element with the given URL and options. Although the helper has a simple task, it can be used in quite a few ways, and in this article, I will try to cover most of them. Let’s start with creating a simple link:

Frontend Ruby on Rails
Added: 02 Feb 2024
Rails 7.1 construct CTE using .with query method

In Rails 7.1 .with query method makes it super easy to build and chain complex Common Table Expression CTE queries.

Backend Database Ruby on Rails
Added: 31 Jan 2024

Week 2024-4

How (and why) to run SQLite in production | Fractaled Mind

This is my personal site, where I write about Ruby, programming, and any of my varied fascinations.

Backend Database Ruby on Rails
Added: 26 Jan 2024
Self-hosted observability stack for Ruby on Rails apps | Michal Kazmierczak

Observability is becoming a standard. Cloud observability providers deliver a high-end solutions for the storage and visualization of the telemetry data. Yet, application owners may consider an entirely in-house approach. Here is how you can achieve it for a Ruby on Rails app.

DevOps Ruby on Rails
Added: 26 Jan 2024
Rails advanced routing constraints

Learn how to authorize requests at the routing layer to improve security and ergonomics.

Backend Ruby on Rails
Added: 26 Jan 2024
3 Question Framework – How to Respond Without Reacting

Over-communicating is key, over-reacting is not. It’s important to find the balance on when to respond to messages and when to keep still.

Consulting Soft Skills
Added: 22 Jan 2024

Week 2024-3

Automating Deployments with Kamal and GitHub Actions

Comprehensive guide to automating Ruby on Rails web app deployments using Kamal and GitHub Actions. Includes installation guide and sample GitHub Actions configuration.

Backend DevOps Ruby on Rails
Added: 19 Jan 2024
Effortless Deployment of Web Applications with Kamal

Learn how Kamal simplifies web app deployment with features like zero downtime, incremental rollouts, and flexible configuration. Ideal for developers.

Backend DevOps Ruby on Rails
Added: 19 Jan 2024
Should you use Hotwire or a Frontend framework on your next Rails project?

I am writing this for the senior engineer or tech lead that is deciding whether to use Hotwire or a Frontend framework (e.g. React, Vue, Svelte …) for the frontend portion of the next Rails project. If this is you, read on. The key factor You have already gone over the usual list of factors that you consider for every new project no matter what tech stack it is on: the expertise of your team members, technologies used on existing projects at your company, available libraries or ready solutions. These are table stakes, you’ve considered them like you always do and for this project, they’re not pointing either way. I will make a case that, once those fundamental questions are cleared, there is one that is specific to this decision and stands above all others: How is the complexity of the project distributed between shared state management and visual interactions? Most of the cost of software is in maintenance and most of the cost of maintenance comes from the complexity of our solution. Picking a tech stack that is well suited for managing the kind of complexity you are facing will make it easier to keep the complexity under control. The point will become clearer once we consider the two extremes.

Frontend Javascript Ruby on Rails
Added: 18 Jan 2024
Alternative BigInt ID identifiers for Rails

Rails comes with default BigInt IDs for your primary keys since version 5.1 (replacing regular Int) and offers UUID v4 as an supported alternative since version 6. But what are the alternatives and what to use in your next app?

Backend Database Ruby on Rails
Added: 15 Jan 2024
Here's what's coming in Rails 8

Work on Rails 8 is starting, so I dug through the official GitHub milestone to break down all the upcoming goodies for you. There's plenty coming, including Solid Queue, Solid Cache and Kamal becoming defaults, better support for PWAs, an official LSP, and more!

Backend Ruby on Rails
Added: 15 Jan 2024
Rails 7.1 Introduced Validate Option For Enums

Rails 7.1 added a validate option for enums, which will allow developers to validate the passed enum values before saving it.

Backend Ruby on Rails
Added: 15 Jan 2024
Container Style Queries | 12 Days of Web

Exploring new ways of approaching CSS by querying custom properties and their values.

CSS Frontend
Added: 15 Jan 2024

Week 2024-2

Introduction to Testing React Components with Vite, Vitest and React Testing Library

Originally published on my blog: https://bogr.dev/blog/react-testing-intro/ This article assumes a...

Frontend Javascript Testing
Added: 14 Jan 2024
How to deploy Rails with Kamal, PostgreSQL, Sidekiq and Backups on a single host | Guillaume Briday

In the previous post, How to deploy Rails with Kamal and SSL certificate on any VPS, we saw how to deploy a simple Rails application with Kamal and Docker. But it was intentionally very simple and even if it might be enough for some applications like…

DevOps Ruby on Rails
Added: 08 Jan 2024

Week 2024-1

Here's what's coming in Rails 8

Work on Rails 8 is starting, so I dug through the official GitHub milestone to break down all the upcoming goodies for you. There's plenty coming, including Solid Queue, Solid Cache and Kamal becoming defaults, better support for PWAs, an official LSP, and more!

Ruby on Rails
Added: 05 Jan 2024
Our move to generated SDKs

GitHub SDKs: software generated meets hand curated.

Added: 04 Jan 2024
8 Turbo 8

Documentation and guides from the team at Fly.io.

Frontend HOTWire Ruby on Rails
Added: 04 Jan 2024
Self-hosting a high-availability Postgres cluster on Kubernetes

Deploying an HA Postgres cluster using Zalando w/ K8s.

Database DevOps
Added: 03 Jan 2024

Week 2023-52

The LinkedIn DPH Framework

Welcome to the LinkedIn Developer Productivity and Happiness Framework!

Consulting Staff Engineer
Added: 28 Dec 2023
Turbo 8 Page Refreshes (+ Morphing) Explained at Length

Everything you ever wanted to know about Turbo 8's Page Refreshes, Morphing, and its design style

Backend Frontend HOTWire Ruby on Rails
Added: 27 Dec 2023
Route-Based Scaling on Kubernetes for Rails Monoliths

Can we deploy a Rails monolith with audience-based scaling without breaking it up?

DevOps Ruby on Rails
Added: 26 Dec 2023

Week 2023-50

Why you should write good epics

Who knew grouping things could bring so many benefits.

Consulting
Added: 12 Dec 2023

Week 2023-49

Approximated.app

Reliably automate custom domains at any scale

Backend Ruby on Rails
Added: 09 Dec 2023
Develop the right thing every time and become a 10x engineer 🏆: The art of writing RFCs 🥋

Imagine you’ve been tasked to implement a crucial new feature in the product you’re working on....

Consulting Staff Engineer
Added: 08 Dec 2023

Week 2023-48

Turbo 8 in 8 minutes

Documentation and guides from the team at Fly.io.

Frontend HOTWire Ruby on Rails
Added: 30 Nov 2023

Week 2023-47

Ruby HTML Sanitization with Loofah

Need to do some HTML sanitization, but Rails ActionView Sanitize Helpers are not good enough? Read this post to learn how to do it with Loofah.

Backend Ruby
Added: 24 Nov 2023
3 ways to model an associated collection in Rails

A look at the Postgres array type and good old join tables, each with their advantages and disadvantages.

Backend Ruby on Rails
Added: 24 Nov 2023
Using thor for command line tasks

Last week, while creating a small Rails app for myself, I had to import data from an XML file. I wanted to add a command line task for it. I could’ve used rake for this, but I needed to input the path to the file through a command line parameter, and rake isn’t ideal for that. Fortunately, there’s another tool that’s better suited for this task: Thor.

Backend Ruby
Added: 21 Nov 2023
Architecting for profit: A blueprint for modern cloud economics

If the role of a good cloud architect is to design and build cost-effective software, is there a formula to achieve that goal every time?

Consulting DevOps
Added: 21 Nov 2023
For clarity merging hashes use with_defaults

A hash merge, but backwards for readability

Backend Ruby Ruby on Rails
Added: 20 Nov 2023
Renuo – HTML templating with Mustache.js and Stimulus

It is sometimes impossible to render HTML directly in Rails, for example, when you need to procedurally generate HTML from JavaScript. There are some approaches, but one sticks out: Template tags && t...

Frontend Javascript Ruby on Rails
Added: 20 Nov 2023
Securing User Emails in Rails with Lockbox

This is an update to Securing User Emails in Rails with a number of improvements: Works with Devise’s email changed notifications Works with...

Backend Ruby on Rails
Added: 20 Nov 2023
GitHub - ankane/secure_rails: Rails security best practices

Rails security best practices. Contribute to ankane/secure_rails development by creating an account on GitHub.

Backend Ruby on Rails
Added: 20 Nov 2023

Week 2023-46

Top 8 PostgreSQL Extensions

Check our eight top PostgreSQL extensions, along with sample queries and instructions.

Backend Database
Added: 18 Nov 2023
Preventing bugs in Ruby: tools of the trade

Intro

Consulting Ruby on Rails
Added: 18 Nov 2023
Creating Accessible UI Animations — Smashing Magazine

Animation and accessibility are often seen as two separate powers at odds with one another. How is it possible to strike a balance between elements that move and the possible negative effects they expose to users who are sensitive to motion? Oriana García explains how her team at Mercado Libre tackled the challenge by creating guiding principles for applying animation to user interfaces and incorporating them into the team’s design system.

Design Frontend
Added: 15 Nov 2023
Announcing Angular.dev

Today, we are excited to launch Angular.dev — the future home for Angular developers.

Frontend Javascript
Added: 15 Nov 2023
It's Never Been Better Time to Be a Full-Stack Developer

In today’s technical landscape, deep expertise in niche areas is often celebrated. However, the value of being a versatile 'Jack of all trades' should not be overlooked. Technical fields have grown increasingly divergent, with a clear split between front-end and back-end development leading to a surge in specialization

Consulting Ruby on Rails
Added: 13 Nov 2023
DIY PaaS: serverless real-time with one command—Martian Chronicles, Evil Martians’ team blog

Choose a scalable and maintainable real-time solution today to stay happy and productive tomorrow. Consider an open source service you can run on a modern cloud with one command as an alternative to expensive PaaS.

Backend
Added: 13 Nov 2023
Building Basecamp project stacks with Hotwire

How we improved project organization in Basecamp using Hotwire to build on top of a legacy drag-and-drop interface.

Backend Frontend HOTWire Ruby on Rails
Added: 13 Nov 2023

Week 2023-45

Integration Patterns for Distributed Architecture - Kafka at Smily

Let's discuss how we use Kafka in Smily, how we got where we are now, and how the overall architecture has evolved over time.

Backend DevOps Ruby on Rails
Added: 09 Nov 2023
The Software Engineer's guide to saying

A 3 part framework for saying "no" + how to apply it + examples

Consulting Soft Skills
Added: 08 Nov 2023
A quick dive into query_constraints config in Rails 7.1

The query_constraints config introduced in Rails 7.1 is helpful for pre-setting the DB query constraints on the ActiveRecord models.

Database Ruby on Rails
Added: 07 Nov 2023

Week 2023-44

Simple Screen Recorder in 20 lines of JavaScript

Let's say you're fed up of the state of screen recorders' paywalls and limitations and want to go on...

Frontend Javascript
Added: 02 Nov 2023
Deploying Rails on a single server with Kamal

Here’s one way of a cloud-independent deployment of Rails, Sidekiq, PostgreSQL, and Redis on single virtual server with Kamal.

DevOps Ruby on Rails
Added: 01 Nov 2023
Are you absolutely sure you know how to use the button element?

Read this the next time you need to build a complicated form.

Frontend Ruby on Rails
Added: 31 Oct 2023

Week 2023-43

Give it five minutes

A few years ago I used to be a hothead. Whenever anyone said anything, I’d think of a way to disagree. I’d push back hard if something didn’t fit my world-view. It’s like I had to be first with an opinion – as if being first meant something. But what it really meant…

Soft Skills
Added: 27 Oct 2023
Setting up a custom domain with Netlify with Cloudflare SSL - Mike Street - Lead Developer and CTO

In this post we are going to set up a custom domain in Netlify using Cloudflare. We will also install a self signed Cloudflare certificate on Netlify to ensure end-to-end encryption.

Consulting DevOps
Added: 23 Oct 2023

Week 2023-42

Postgres Goodies in Ruby on Rails 7.1

We are excited about some of the Active Record updates with Rails 7.1! Chris reviews some of the notable new features for working with Postgres including async queries, composite primary keys, native support for ctes, unlogged tables, and syntax normalization.

Backend Database Ruby on Rails
Added: 18 Oct 2023

Week 2023-41

Why You Might Not Want to Run `Rails App:update`. - FastRuby.io | Rails Upgrade Service

This article explains what rails app:update is, why you might not want to run rails app:update when upgrading Rails applications, and what you can try instead.

Ruby on Rails
Added: 15 Oct 2023
My Recipe for Optimizing Performance of Rails Apps

Rails performance audits and tuning have been my main occupation and source of income for over a year now. In this blog post, I'll share a few secrets of my trade. Read on if you want to learn how I approach optimizing an unknown codebase, what tools I use, and which fixes are usually most impactful. You can treat this post as a generalized roadmap for your DIY performance audit with multiple links to more in-depth resources.

DevOps Ruby on Rails
Added: 15 Oct 2023
How to communicate like a GitHub engineer: our principles, practices, and tools

Learn more about how we use GitHub to build GitHub, how we turned our guiding communications principles into prescriptive practices to manage our internal communications signal-to-noise ratio, and how you can contribute to the ongoing conversation.

Soft Skills
Added: 15 Oct 2023
Some ViewComponent tips (how I write them)

In this article, I share tips for writing Rails ViewComponents, based on my experience building RailsNotes UI, and other projects. If you use ViewComponents in your Ruby on Rails apps, read this article!

Frontend Ruby on Rails
Added: 15 Oct 2023

This documents my methodology of taking an accepted talk proposal and building the slides and content around it.

Soft Skills
Added: 13 Oct 2023
pg_bm25: Elastic-Quality Full Text Search Inside Postgres - ParadeDB

Today, Postgres’ native full text search, which uses the tsvector type, has two main problems:

Database
Added: 13 Oct 2023
GitHub - rkrage/pg_party: ActiveRecord PostgreSQL Partitioning

ActiveRecord PostgreSQL Partitioning. Contribute to rkrage/pg_party development by creating an account on GitHub.

Backend Database Gem Ruby on Rails
Added: 13 Oct 2023
5 best practices for preventing chaos in Tailwind CSS—Martian Chronicles, Evil Martians’ team blog

Tailwind CSS has become a very popular CSS framework, and it can speed up development. But using it without proper caution can add mayhem to your code. Learn best practices to avoid getting swept away!

CSS Frontend
Added: 13 Oct 2023
Ruby on Rails Best Practices

Some Do’s and Don’ts to keep in mind while coding in ruby on rails 1. Fat Model, Skinny Controller It is a commonly used phrase when talking about rails best practices.It basically means placing mo…

Ruby on Rails
Added: 13 Oct 2023
14 ways to Reduce Risk with Feature Flags

The use of feature flags for development and release process can provide multiple benefits that reduce risk related to new functionality or large releases.

Backend Ruby on Rails
Added: 13 Oct 2023
Build the Framework You Need

Or how to retain the vanilla Rails feel beyond the early stages.

Backend Consulting Ruby on Rails
Added: 11 Oct 2023
A happier happy path in Turbo with morphing

Turbo 8 is coming with smoother page updates and simpler broadcasts.

Frontend HOTWire Ruby on Rails
Added: 11 Oct 2023
Rack Attack 404 errors and custom response message - Rails Tricks Issue 20

This week I will show you another Rack Attack trick.

Backend Ruby on Rails
Added: 10 Oct 2023

Week 2023-40

A Few Interesting Ways To Use CSS Shadows For More Than Depth — Smashing Magazine

We often think of shadows in CSS as something to reach for when we want to add depth to a design. But shadows can be used for more than depth. Let’s experiment with different shadows — two CSS properties and a filter — to make interesting hover effects, different text styles, and even casting shadows on other shadows.

CSS Design Frontend
Added: 08 Oct 2023
Opportunity solution trees: Definition, examples, and how-to - LogRocket Blog

An opportunity solution tree (OST) is a discovery tool that helps product teams visualize the best path to achieve a desired outcome.

Added: 05 Oct 2023
Choosing a Postgres Primary Key

Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out

Backend Database
Added: 04 Oct 2023
Dynamic Table Partitioning in Postgres

Learn how to scale large postgres tables in place and increase query performance.

Backend Database
Added: 04 Oct 2023
Simplify sharing with built-in APIs and progressive enhancement - Set Studio

Instead of leaning into heavy social sharing widgets, you can create a truly user-friendly social sharing component that works for everyone, using built-in APIs and progressive enhancement.

CSS Frontend Javascript
Added: 04 Oct 2023
The TLDR on Ruby's new TLDR testing framework

It's 2023, and it's time for a totally new way to run your tests. Here's how the new TLDR test runner can save you from a life of avoiding your slow tests

Added: 03 Oct 2023
“I have a bad English accent”

You can hear my home country from my first sentence. And so what?

Added: 03 Oct 2023

Week 2023-39

Scaling our Ruby on Rails monolith using Packwerk (Part 1)

In this series of articles, we will share our experience with adding Packwerk to a large, fast-growing codebase.

Ruby on Rails
Added: 30 Sep 2023
Testing Stripe Webhooks with Minitest | Kyle Keesling

Kyle Keesling is an Indianapolis-based Ruby on Rails developer. He enjoys coding, cargo bikes, and playing hurling.

Backend Ruby on Rails Testing
Added: 29 Sep 2023
The Importance of Postgresql Indexes in Your Rails Application - RailsReviews

Optimize your Ruby on Rails application's performance by identifying and rectifying missing or inefficient Postgresql indexes through insightful SQL queries.

Backend Database Ruby on Rails
Added: 29 Sep 2023
18 Tools and Techniques to Improve Rails Application Performance

Within almost 15 years of our history we collected a quite vast collection of tools and techniques that help us to provide the best performance to our clients projects.

Backend DevOps Ruby on Rails
Added: 28 Sep 2023

Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration.

Ruby on Rails Testing
Added: 28 Sep 2023
Refactoring from feature specs to system specs

In this article, I break down the difference between system specs and feature specs in RSpec and Rails, and walk you through refactoring your feature specs to system specs.

Ruby on Rails Testing
Added: 28 Sep 2023
Ruby on Rails - September 2023

The only Ruby on Rails newsletter you will every need!

Ruby on Rails
Added: 28 Sep 2023
Bricolage | Some notes on Local-First Development

A few months ago in June, I attended a local-first meetup in Berlin organized by Johannes Schickling, formerly the founder of Prisma. An…

Added: 28 Sep 2023
Strada officially launched! | Masilotti.com

A first look at Strada, the last missing piece of Hotwire. Let's explore how it unlocks native components driven by the web in Turbo Native apps.

Ruby on Rails
Added: 28 Sep 2023
Build dynamic navs with current_page? (and conditional classes)

This article explores a dynamic nav component I built using the current_page? helper method, plus Rails' conditional class helpers. The result? A simple, dynamic navbar component, with different styling based on current page. Plus I threw in the ViewComponent version too 😉

Frontend Ruby on Rails
Added: 28 Sep 2023
Rails form_with

This week I want to tell you about the form_with Rails helper. It was introduced in Rails 5.1, and the goal of this helper was to unify the form_for and the form_tag helpers. form_for requires a model instance or a scope and puts the attributes into a hash, so usually when you needed a form in the past where you didn’t want to put them scoped into a hash, you used form_tag.

Frontend Ruby on Rails
Added: 28 Sep 2023
Choose Postgres queue technology

Introduction Postgres queue tech is a thing of beauty, but far from mainstream. Its relative obscurity is partially attributable to the cargo cult of “scale”. The scalability cult has decreed that there are several queue technologies with greater “scalability” than Postgres, and for that reason alone, Postgres isn’t suitably scalable for anyone’s queueing needs. The cult of scalability would rather we build applications that scale beyond our wildest dreams than ones that solve real problems beyond our wildest dreams.

Backend Consulting Database DevOps
Added: 28 Sep 2023
Deploying a Rails app with Kamal

This is an updated version of the post I wrote about MRKS in the past.

DevOps Ruby on Rails
Added: 28 Sep 2023

Week 2023-38

Intelligent vs. Smart

Here’s an important distinction to make in life.

Soft Skills
Added: 24 Sep 2023

Week 2023-37

Build Drag and Drop with Rails Hotwire

Introduction Hey there, fellow web adventurers! 😄 Building web applications can be a wild...

Backend Frontend HOTWire Ruby on Rails
Added: 14 Sep 2023
Mining Gold in Digital Conversations

How I used artificial intelligence and async programming to transform interesting conversations into blog posts.

Added: 13 Sep 2023
Express yourself clearly with positive? and negative? for numbers

Syntactical sugar to avoid comparison operators

Backend Ruby
Added: 13 Sep 2023