Articles that I have been reading

Week 2025-2

Moving from AWS S3 to Cloudflare R2 for Active Storage

Olly Headey. CTO and advisor. Co-founder of FreeAgent. 37signals alumni.

ActiveStorage AWS Backend Cloudflare R2 RailsApps Ruby on Rails WebDevelopment
Added: 12 Jan 2025
Deploy Rails 8 with Docker & Kamal: 2025 Guide

Learn how to deploy Rails 8 apps using Docker, Kamal, and PostgreSQL on Hetzner servers with Cloudflare DNS. A complete production setup guide.

Deployment DevOps Docker Kamal PostgreSQL Rails Ruby on Rails RubyOnRails
Added: 10 Jan 2025
How Honeybadger migrated from Sidekiq to Karafka

@seo:excerpt

Backend BackgroundProcessing Honeybadger Kafka Karafka Ruby on Rails RubyOnRails Sidekiq
Added: 09 Jan 2025
A simple trick to understand Ruby’s lazy enumerator

Where you get to play with an interactive demo to visualize how Enumerator::Lazy helps avoid unnecessary work

LazyEnumerator programmingtips Rails Ruby WebDevelopment
Added: 09 Jan 2025
Finishing touches for forms

Some tips on making sure forms written in Ruby on Rails are accessible

Accessibility Design FormBuilder Frontend GovUK Ruby on Rails RubyOnRails WebDevelopment
Added: 06 Jan 2025

Week 2025-1

Rails Soft Delete & Audit Logging Guide

Learn how to implement soft deletion with robust audit logging in Rails applications, ensuring data integrity and compliance in financial systems.

AuditLogging Consulting DataIntegrity Rails Ruby on Rails RubyOnRails SoftDelete WebDevelopment
Added: 03 Jan 2025
How Business Automation Can Be Affordable for Small Businesses — SitePoint

Discover how small businesses can leverage affordable automation solutions to boost efficiency, reduce costs, and compete effectively. Learn practical tips for implementing automation tools and maximizing ROI

AI BusinessGrowth Consulting CRM Efficiency MarketingAutomation Productivity SmallBusinessAutomation WebDevelopment
Added: 01 Jan 2025
What changed in Rails this year?

2024 was an amazing year for the Rails community and I’d like to share a summary of what changed in the framework. As a TLDR, there were more than 4000 commits from 562 contributors and 55 releases, including Rails 8!

DeveloperExperience Programming Rails Rails8 Ruby on Rails RubyOnRails security SoftwareUpdates WebApps WebDevelopment
Added: 01 Jan 2025
New Front-End Features For Designers In 2025 — Smashing Magazine

Searching for the most flexible front-end workflows and toolkits, it’s easy to forget how powerful some of the fundamentals on the web have become these days. This post is a journey through new front-end features and what they are capable of.

CSS Frontend RubyOnRails UI UX WebDesign WebDevelopment
Added: 01 Jan 2025

TIL: `rails credentials:diff --enroll` (and `--disenroll`) Makes local diffs of encrypted credentials files display as diffs of the un-encrypted text instead of diffs of the encrypted gibberish. Helps reduce friction of seeing what changed in credentials when merging or navigating merge conflicts.

Bluesky DeveloperTips Javascript Ruby on Rails RubyOnRails WebDevelopment
Added: 01 Jan 2025
How to add Mission Control to your Rails app and protect it with Basic Auth

Mission Control is a powerful tool for monitoring and managing your Rails jobs in real-time. It offers insights into your app’s performance and errors. In this tutorial, I’ll show you how to integrate Mission Control into your Rails app and secure it with Basic Auth.

Backend BasicAuth MissionControl RailsSecurity Ruby on Rails RubyOnRails WebDevelopment
Added: 30 Dec 2024

Part 2 of a multi-part series for moving away from devise to Rails' authentication generator

Authentication Backend Devise Rails Ruby Ruby on Rails WebDevelopment
Added: 30 Dec 2024

Part 1 of a multi-part series for moving away from devise to Rails' authentication generator

Authentication Backend Devise Rails Ruby Ruby on Rails WebDevelopment
Added: 30 Dec 2024

Week 2024-51

Going native with ActionMailbox

ActionMailbox has the most underrated fun-to-feature ratio. No suprise here then, that as soon as I had the chance to work with it on Laterbox, I jumped on the occasion.

ActionMailbox Laterbox Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
Added: 18 Dec 2024
Refactoring Rails: Strategies to Refactor Models - FastRuby.io | Rails Upgrade Service

There's abundant online guidance about refactoring controllers, but resources on model refactoring are less common. In this blog, we'll explore techniques for effectively refactoring models.

BestPractices Rails Refactoring Ruby on Rails RubyOnRails WebDevelopment
Added: 18 Dec 2024
How to Customize Rails Form Error Handling

If you've worked with Rails forms, you've likely encountered the infamous `.field_with_errors wrapper`. While it's designed to help highlight inval...

CSS ErrorHandling Frontend Rails Ruby on Rails RubyOnRails WebDevelopment
Added: 18 Dec 2024
Rails 8.0 Credentials: The Ultimate Guide to Secure Configuration Management

Discover how to seamlessly transition from encrypted secrets to Rails 8.0's powerful credentials system.

ConfigurationManagement Credentials Rails8 Ruby on Rails security WebDevelopment
Added: 18 Dec 2024
Ryan Bigg - Scoping an Active Record join

Scoping an Active Record join

ActiveRecord Backend Database Performance Rails Ruby on Rails RubyOnRails WebDevelopment
Added: 18 Dec 2024
Everything You Need to Ace PWAs in Rails Turn your Rails app into an engaging native-like application in a couple of minutes - The Miners

In this article, the author starts a series about Progressive Web Applications (PWAs) in Rails

Caching Frontend Javascript PWAs Ruby on Rails RubyOnRails ServiceWorkers WebDevelopment
Added: 18 Dec 2024

Getting paying users has never been simpler with Stripe and Rails. Let’s go over the tiny amount of code needed today.

Backend BillingIntegration Frontend Payments Ruby on Rails RubyOnRails SaaS Stripe WebDevelopment
Added: 17 Dec 2024

Week 2024-50

How to Design UI Forms in 2024: Your Best Guide

Discover best practices and examples for designing user-friendly and visually appealing UI forms. Aim for enhanced user engagement and improved completion rates.

BestPractices Design FormDesign Frontend MobileOptimization Ruby on Rails UIDesign UserExperience WebDevelopment
Added: 12 Dec 2024
Ender Ahmet Yurt (@enderahmetyurt.com)

Ruby on Rails 8 provides `except_on` options for validations! #railstips #rubyonrails

Javascript RailsTips Ruby on Rails RubyOnRails WebDevelopment
Added: 11 Dec 2024

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

Backend FormHandling Frontend GlobalIDs PolymorphicAssociations Ruby on Rails RubyOnRails security WebDevelopment
Added: 11 Dec 2024
Nested forms with just Turbo Streams

Recently I was working on implementing dynamic nested forms using Turbo Streams, focusing on handling both new and persisted records without custom JavaScript. Well, mostly for fun, to try something new. And while there are multiple approaches to this problem, including Stimulus controllers or plain JavaScript, Turbo Streams offer a clean, server-driven solution that leverages Rails conventions. The Core Concept: Form Manipulation vs Persistence A key aspect of this implementation that might not be immediately obvious is that the IngredientsController doesn’t actually persist any data. Its sole responsibility is to manipulate the form structure through Turbo Stream responses.

Frontend HOTWire NestedForms RailsDevelopment Ruby on Rails RubyOnRails TurboStreams WebDevelopment
Added: 10 Dec 2024
Implementing Multi-Select Enums in Ruby on Rails with PostgreSQL

Learn how to implement multi-select enums in Ruby on Rails using PostgreSQL for better performance, type safety, and flexible categorization.

Database DataIntegrity MultiSelectEnums PostgreSQL Ruby on Rails RubyOnRails WebDevelopment
Added: 10 Dec 2024
How to add an RSS feed to a Rails app - Avo

Learn how to add an RSS feed to a Rails app for the site and for single resources with this article.

AvoCMS Frontend RSS Ruby Ruby on Rails RubyOnRails Syndication WebDevelopment
Added: 10 Dec 2024
3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present

Many Rails developers don't understand what causes ActiveRecord to actually execute a SQL query. Let's look at three common cases: misuse of the count method...

ActiveRecord Backend Consulting NPlus1QueryProblem PerformanceOptimization RailsPerformance Ruby on Rails RubyOnRails WebDevelopment
Added: 10 Dec 2024
Adding Google OAuth in Rails 8

Rails 8 added an authentication generator, but what if we want to use Google OAuth? I decided to implement it using the oauth2 gem and share what I learned.

Authentication GoogleOAuth Rails8 Ruby on Rails RubyOnRails WebDevelopment
Added: 10 Dec 2024
Solid Cable in Production with Kamal

Solid Cable in Production with Kamal

Backend Deployment Kamal PostgreSQL Ruby on Rails RubyOnRails SolidCable SQLite WebDevelopment
Added: 10 Dec 2024

Week 2024-49

What you need to know about SQLite

A compilation of lessons about what the SQLite database engine can and cannot do, how Ruby on Rails helps you work with SQLite, and why it may, or may not, be a good choice to back your Rails 8 app

Backend Database DatabaseManagement DevOps Rails8 Ruby on Rails RubyOnRails SQLite WebDevelopment
Added: 06 Dec 2024
Product management is broken. Engineers can fix it

How we've redefined the PM and engineer relationship

AgileDevelopment Consulting Engineers PostHog ProductManagement RubyOnRails SaaS Soft Skills TeamCollaboration WebDevelopment
Added: 05 Dec 2024
How to serve secure custom domains with Caddy

If you want to host custom domains for customers in your SaaS, you'll need to handle both DNS and SSL. Fortunately, Caddy can help with both.

Backend Caddy CustomDomains DevOps Ruby on Rails RubyOnRails SaaS SSLCertificates WebDevelopment
Added: 04 Dec 2024

Here you go: https://gist.github.com/stympy/7a538e3edda1395c89afca968f3c5c97 I'm starting on the blog post now. :) If you have anything else you want me to cover in it, let me know.

Backend BlogPost Bluesky DevOps InteractiveApplications Javascript Ruby on Rails WebDevelopment
Added: 03 Dec 2024
GitHub - Intrepidd/hyperactiveform: Simple form objects for Rails

Simple form objects for Rails. Contribute to Intrepidd/hyperactiveform development by creating an account on GitHub.

ActiveModel FormObjects Gem HyperActiveForm Ruby on Rails RubyOnRails WebDevelopment
Added: 02 Dec 2024
Handbook to migrate your Postgres from Heroku to Kamal

Today I’m going to show you how I managed to migrate from Heroku to Kamal, with a focus on Postgres....

DevOps Heroku Kamal Postgres Rails Ruby Ruby on Rails WebDevelopment
Added: 02 Dec 2024
Building a Better Ruby ORM for Time Series and Analytics

Seamlessly create rollups from rolled-up data (hierarchical continuous aggregates) on your Ruby On Rails application for faster time-series & analytics queries.

ContinuousAggregates DataAnalytics Database ORM Ruby on Rails RubyOnRails TimescaleDB TimeSeries
Added: 02 Dec 2024
Mastering Concerns in Ruby on Rails: A Comprehensive Guide to Modular Code Organization, Security, and Best Practices

Deep dive into Concerns in Ruby on Rails, exploring its role in modular code, comparison with Mixins, security, testing, and its use in Rails 6 and 8.

BestPractices CodeOrganization Concerns Mixins Ruby Ruby on Rails RubyOnRails WebDevelopment
Added: 02 Dec 2024

Week 2024-48

Stimulus Features You (Didn’t) Know

Stimulus is advertised as a modest JavaScript framework, but packs still quite a few features. Lets explore the lesser known ones.

Frontend HOTWire Javascript RailsTips Ruby on Rails RubyOnRails Stimulus UIComponents WebDevelopment
Added: 01 Dec 2024
Implementing Passwordless Authentication with WebAuthn in Rails

Learn how to set up WebAuthn in Rails for passwordless authentication, offering a secure and seamless login experience using biometric or hardware-based credentials.

Backend Frontend PasswordlessAuthentication Ruby on Rails RubyOnRails security WebAuthn WebDevelopment
Added: 01 Dec 2024
Hotwire vs HTMX vs Unpoly - Lucas Mendelowski

Hotwire, HTMX, and Unpoly for building modern UIs.

HOTWire HTMX Javascript Ruby on Rails RubyOnRails Unpoly WebDevelopment
Added: 29 Nov 2024
The Undeniable Utility Of CSS :has • Josh W. Comeau

Of all the latest and greatest CSS features, the “:has” pseudo-class wasn’t exactly at the top of my wishlist. Once I started using it, however, I kept discovering incredible things I could do with it. It’s now become a core part of my toolkit! In this blog post, I'll show you some practical real-world problems I solved using “:has”, as well as some wild experiments that blew my mind!

CSS Design Frontend Javascript React RubyOnRails WebDevelopment
Added: 28 Nov 2024
Reminder to write articles about Ruby to have better LLM suggestions

This is a weekly reminder that if you want better suggestions for Ruby and Rails projects using LLMs (Large Language Models), you should consider writing more articles (not generated by LLMs) about how you believe...

Consulting ContentCreation LLM ProgrammingEducation Rails Ruby Ruby on Rails Soft Skills WebDevelopment
Added: 28 Nov 2024
Create a Simple Pulsating Animation

Create subtle pulsating animations using Tailwind for enhanced menu item visibility. Learn how to build reusable UI components with Phlex

Animation Frontend Phlex Rails Ruby Ruby on Rails TailwindCSS WebDevelopment
Added: 28 Nov 2024
Vector search with Rails and SQLite

Learn how to do semantic search using SQLite and Rails By: Sergio Alvarez

AI MachineLearning Rails Ruby on Rails RubyOnRails SQLite VectorSearch WebDevelopment
Added: 26 Nov 2024
Building Semantic Search with Rails, OpenAI, and PG Vector

Semantic search is a transformative approach to searching data, designed to understand the meaning behind the words rather than just exact matches. In this article, we explore building a semantic search feature using Rails, OpenAI, Langchain.

AI OpenAI pgvector Rails Ruby on Rails RubyOnRails SemanticSearch WebDevelopment
Added: 26 Nov 2024

When adding a boolean column to a table in a Rails application, one common question is whether to set a default value for it. Let’s explore why this choice matters, the best practices around it, and how it impacts data handling. Using a real-world example, we’ll take a look at a migration adding a women_only column to a trips table.

BestPractices BooleanColumn DataHandling Ruby on Rails RubyOnRails WebDevelopment
Added: 26 Nov 2024
Ultimate Rails Security Guide: Best Practices for Ruby on Rails Applications in 2025

Learn how to secure your Ruby on Rails applications with advanced techniques, built-in features, and the latest updates in Rails 8 and Ruby 3.3.6

Backend BestPractices Cybersecurity RailsSecurity Ruby on Rails RubyOnRails WebApplicationSecurity
Added: 26 Nov 2024
What's new in Rails 8 - Avo

Find out what makes Rails 8 a unique opportunity to

DevOps Rails8 Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment
Added: 26 Nov 2024

Week 2024-47

Add meta tags to a Rails application - Avo

Learn how to add meta tags including OG tags to your Rails app and what are the best practices around them

Frontend MetaTags OpenGraph Rails Ruby on Rails RubyOnRails SEO TwitterCard WebDevelopment
Added: 21 Nov 2024
Productivity isn’t always fast 

It can often feel like we aren't being productive unless we're working at max speed. But slow productivity is here to subvert that idea.

BurnoutReduction Consulting Productivity QualityOverQuantity RadicalPrioritization SlowProductivity Soft Skills WebDevelopment
Added: 21 Nov 2024
What is a staff engineer? Technical leaders who aren't managers

Staff engineers are technical leaders who have deep domain knowledge, balancing the tech and business sides of an org.

CareerGrowth Consulting EngineeringSalary Soft Skills Staff Engineer StaffEngineer TechnicalLeadership WebDevelopment
Added: 21 Nov 2024
Process slow network requests with Turbo and Active Model

Learn how to build a dynamic loading screen without writing a line of JavaScript.

ActiveModel AsynchronousProcessing Frontend HOTWire Ruby on Rails RubyOnRails Turbo UX WebDevelopment
Added: 21 Nov 2024
Why do developers love clean code but hate writing documentation?  - Stack Overflow

In the Developer Coefficient, a study commissioned by the fintech giant Stripe, developers reported that they spent over 17 hours a week on maintenance tasks like debugging and refactoring—work classified as “toil.”

AI CleanCode DeveloperExperience Documentation SoftwareDevelopment TechDebt
Added: 21 Nov 2024
Hotwire Native iOS Part 1

Up and Running with Hotwire Native iOS 1- Setup

Frontend HOTWire iOS NativeDevelopment Rails Ruby on Rails TurboJS WebDevelopment
Added: 21 Nov 2024

Week 2024-46

Rails’ Partial Features You (didn’t) Know

Rails partials have many lesser known features. From counters to spacer templates! Learn all there is to know about partials.

Frontend Partials RailsFeatures Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment
Added: 14 Nov 2024
Friendly URLs with the FriendlyId gem - Avo

Implement friendly URLs by scratch and using the FriendlyId for your Rails application and improve SEO and user experience

Backend FriendlyId FriendlyURLs Packages Ruby on Rails RubyOnRails SEO WebApps WebDevelopment
Added: 12 Nov 2024
Perfecting Your Rails Form: Nested Attributes

In this second part of the series, let's explore nested attributes how they work and why they are so complex.

accepts_nested_attributes_for ActiveModel ActiveRecord address address_attributes Backend FormEnhancements Frontend NestedAttributes RailsForms Ruby on Rails RubyOnRails StimulusJS WebDevelopment
Added: 12 Nov 2024
📩My journey to send 100 mails to 500k effortlessly📩

Today, I’d like to share my journey while working for a client on implementing an efficient mailing...

Backend EmailSystem Programming Rails Ruby Ruby on Rails WebDevelopment
Added: 12 Nov 2024
Why (and when!) I use ViewComponents

Today I want to take a break from the election news and write about something that's been on my mind recently, ViewComponents.

DevelopmentBestPractices Frontend Ruby on Rails RubyOnRails SoftwareDesign ViewComponents WebDevelopment
Added: 12 Nov 2024
The Ultimate Guide to implementing Hotwire and Turbo in a Rails application

Build, deploy and manage your applications on any cloud or your own servers.

Frontend FrontendDevelopment HOTWire Javascript Rails Ruby on Rails RubyOnRails Turbo WebDevelopment WebOptimization
Added: 12 Nov 2024
Design a Chat Application like WhatsApp - System Design Interview

Nearly everyone uses a chat application to send messages and stay connected.

ChatApplication Consulting RealTimeMessaging Scalability SoftwareDevelopment SystemDesign WebSockets
Added: 12 Nov 2024

Week 2024-45

The president's doctor: Why your projects take forever

Spoiler: Things wait. A lot. A tale of efficiency, but for whom?

Agile Consulting Kanban Productivity RubyOnRails WebDevelopment WorkflowOptimization
Added: 05 Nov 2024

Week 2024-44

Serving static assets with a CDN in Rails - Avo

Learn how to serve static assets using a CDN in Rails with a custom subdomain and improve your app's performance and UX.

Backend CDN DevOps PerformanceImprovement Ruby on Rails RubyOnRails StaticAssets WebDevelopment
Added: 03 Nov 2024
Using a CDN for Active Storage Uploads - Avo

Learn how to use a CDN to serve Active Storage uploads and improve your application's performance and user experience

ActiveStorage Backend CDNIntegration CloudFront DevOps PerformanceOptimizations Ruby on Rails RubyOnRails WebDevelopment
Added: 03 Nov 2024
S3 uploads with Active Storage guide

Learn how to upload files to AWS S3 with this complete guide: S3 configuration, regular and direct file uploads plus integration with S3 compatible services.

ActiveStorage Backend DevOps RailsTutorial Ruby on Rails RubyOnRails S3Uploads WebDevelopment
Added: 03 Nov 2024
Speed Up Compound Full-Text Searches in PostgreSQL by 300x - RorVsWild

Querying your database across associations can become a bottleneck in your Rails application. Julian Rubisch, our first guest author, explains why and suggests an efficient solution.

Database FullTextSearch MaterializedViews PerformanceOptimization pg_search PostgreSQL Rails Ruby on Rails
Added: 02 Nov 2024
Exploring Campfire Tests

I was always curious to see real 37signals code. When they released their first ONCE product, Campfire, I was tempted to buy it but I was not willing to spend US$ 299,00, the release price, and now it’s US$ 399,00. For me, it was too much money.

Consulting DevContainers Minitest Rails Ruby on Rails SoftwareDevelopment Testing
Added: 31 Oct 2024
[EN]  How I upgraded my pet project from Rails 7 to Rails 8 in 30 minutes

Time: 10-15 min Level: Intermediate Code: Application Revision: Oct 30, 24

CodingTips Consulting Customization RailsUpgrade Ruby on Rails RubyOnRails WebDevelopment
Added: 31 Oct 2024
Sending Web Push Notifications from Rails

An embedded Web Push demo and deep dive recipe for Web Push notifications for a Ruby on Rails application in advance of Rails 8 Action Notifier.

Frontend Javascript Notifications Rails8 Ruby on Rails RubyOnRails ServiceWorkers VAPID WebPush
Added: 30 Oct 2024
Keynote: Rails Way or the highway by Evil Martians

Rails Way is a software development paradigm that implies sticking to the framework architectural defaults as much as possible. Everyone starts with the Rails Way, but how far can you get without derailing from it? Let's talk about the Rails Way core principles, how they evolved over time, and how you can embrace and enhanced it using the layered design techniques.

Backend LayeredDesign OpenSource RailsWay Ruby on Rails RubyOnRails SoftwareDevelopment Staff Engineer
Added: 30 Oct 2024
Tooltip Best Practices | CSS-Tricks

What are tooltips, exactly? There's two kinds and the one you use has implications on the user experience, as Zell illustrates in this explainer on best practices.

aria CSS Frontend Tooltips UXDesign WebAccessibility WebDevelopment
Added: 30 Oct 2024

Week 2024-43

Why you suck at giving feedback

Hint: you need more than good intentions

Communication ConstructiveCriticism Consulting Feedback ProfessionalDevelopment Soft Skills
Added: 25 Oct 2024
TailwindCSS and Rails 8

Someone asked on Twitter yesterday about the how to add TailwindCSS to a Rails 8 project the easiest way and having hot reload. This is how I believe it is to do so in a few minutes.

Frontend Rails Ruby on Rails rubyronails Tailwind WebDevelopment
Added: 24 Oct 2024
Interfacing with external APIs: the facade pattern in Ruby - Remi Mercier - Software Developer

Interacting with third-party APIs is common practice in applications. This is where the structural design pattern called facade comes into play.

APIs CodeMaintainability Consulting FacadePattern Ruby on Rails RubyOnRails SoftwareArchitecture Staff Engineer WebDevelopment
Added: 24 Oct 2024
Full-text search with Rails and SQLite

Learn how to use SQLite to do a full-text search with FTS5 and Rails 8 By:Sergio Alvarez

Backend BM25 Database FTS5 FullTextSearch Rails Ruby on Rails RubyOnRails SQLite WebDevelopment
Added: 24 Oct 2024
Adding Page Builder to your Rails app

There are many platforms offering visual page builder. For example, website builders like Wix, Webflow; fundraising platforms like Raisely…

Backend Frontend HTTP Redirect Ruby on Rails RubyOnRails WebDevelopment
Added: 23 Oct 2024
Not another meeting

Meeting-free days means more productivity, right? More time for focused work. When should, or should you not, press that big ‘+’ button on your calendar?

Consulting MeetingCulture Productivity RemoteWork TeamDynamics
Added: 23 Oct 2024
Comparing local-first frameworks and approaches

Any sufficiently advanced technology is indistinguishable from magic. Cloud applications can feel...

CRDT DataOwnership ElectricSQL Frontend LocalFirst PouchDB UserCentricDesign WebDevelopment
Added: 22 Oct 2024

Week 2024-42

Convert JSON into Columns and Rows with JSON_TABLE | Crunchy Data Blog

Paul shows you how to easily load JSON into Postgres relational format with JSON_TABLE, just released in Postgres 17.

Database GeoJSON JSON_TABLE Postgres Postgres17 WebDevelopment
Added: 19 Oct 2024
Supercharge the One Person Framework with SQLite | Fractaled Mind

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

DevOps OnePersonFramework Rails8 Ruby on Rails RubyOnRails SoftwareEngineering SQLite WebDevelopment
Added: 19 Oct 2024
Running Rails System Tests with Playwright instead of Selenium

Sick of flaky Rails system tests? Try blaming Selenium and swapping it with Playwright! I did and it's going great. Here's how

Capybara Frontend Playwright Rails Ruby on Rails Selenium SystemTests Testing WebDevelopment
Added: 19 Oct 2024
How Solid Queue works under the hood

Wondering how Solid Queue works on the inside? Read this article to follow a Solid Queue job from enqueue to completion.

ActiveJob Backend BackgroundJobs ErrorTracking Ruby on Rails RubyOnRails SolidQueue
Added: 14 Oct 2024

Week 2024-41

Smooth Transitions with Turbo Streams

Add custom behavior to turbo:before-stream-render listener to add smooth transitions to turbo stream when adding and removing elements.

ElTransition Frontend HOTWire Javascript Ruby on Rails RubyOnRails Transitions TurboStreams UserExperience WebDevelopment
Added: 11 Oct 2024
What's New in Ruby on Rails 8 | AppSignal Blog

Let's explore everything that Rails 8 has to offer.

AppDevelopment Rails8 Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
Added: 11 Oct 2024

Week 2024-40

The habits of effective remote teams

Lessons from GitLab, Doist, PostHog, and more.

Consulting DeepWork EffectiveCollaboration RemoteWork Soft Skills TeamProductivity Trust WritingCulture
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 LogoDesign RubyOnRails UIDesign WebDesign WebDevelopment
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.

Accessibility Frontend InclusiveDesign RubyOnRails UI WebDevelopment
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.

ActiveStorage Backend DirectUpload FileUpload Frontend HOTWire Ruby on Rails RubyOnRails Stimulus WebDevelopment
Added: 03 Oct 2024
The Decide, Evolve, React pattern in Ruby

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

Consulting Design DesignPatterns EventSourcing Ruby Staff Engineer StateManagement WebDevelopment
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.

CodeReadability DeveloperHappiness Ruby RubyOnRails
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 Docker Kamal Performance Rails Ruby Ruby on Rails Thruster WebDevelopment
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!

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

Morphs, Presence and Typing Indicators

ActionCable Frontend HOTWire Rails Ruby on Rails RubyOnRails StimulusJS Turbo8 WebDevelopment
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.

DragAndDrop Frontend HOTWire ImageUpload Javascript Ruby on Rails RubyOnRails Stimulus WebDevelopment
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.

Authentication Backend Devise Migration OmniAuth Rails Ruby on Rails RubyOnRails WebDevelopment
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 Git Merge Rebase SoftwareEngineering WebDevelopment
Added: 27 Sep 2024
Design Patterns in Ruby

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

Consulting DesignPatterns Refactoring Ruby SoftwareDevelopment WebDevelopment
Added: 27 Sep 2024

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

Database DatabaseManagement PerformanceOptimization PostgreSQL17 Rails Ruby on Rails WebDevelopment
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 Rails8 RealTimeApps Ruby on Rails RubyOnRails Turbo TwitterClone WebDevelopment
Added: 24 Sep 2024
Turbo Morphing in Practice | Jon Sully

How two lines of code made everything smooth

Frontend HOTWire Ruby on Rails RubyOnRails TurboMorphing UserExperience WebDevelopment
Added: 24 Sep 2024
Your company needs Junior devs

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

Consulting Innovation JuniorDevelopers KnowledgeSharing PsychologicalSafety TeamCulture WebDevelopment
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 RailsCommunity Ruby on Rails RubyOnRails Survey2024 TechTrends WebDevelopment
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 Deployment DevOps Docker KamalProxy Ruby on Rails RubyOnRails WebDevelopment
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 ProgressiveWebApp PWA Rails8 Ruby on Rails RubyOnRails WebApps WebDevelopment
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

ActionPolicy Authorization Rabarber RailsSecurity Ruby on Rails RubyOnRails WebDevelopment
Added: 21 Sep 2024

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

RSpec Ruby Ruby on Rails SoftwareTesting Testing WebDevelopment
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.

CopySwapDrop Database DatabaseOptimization DataManagement PostgreSQL RubyOnRails
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.

Accessibility BestPractices ButtonComponent CSS Frontend SemanticHTML WebDevelopment
Added: 18 Sep 2024

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

Frontend Javascript LitElement Morphing SoftwareDesign WebComponents WebDevelopment
Added: 16 Sep 2024
The Rails Renaissance

The power of Rails with Turbo and Stimulus.

Consulting HOTWire ModernWeb RailsRenaissance Responsiveness Ruby on Rails RubyOnRails Stimulus Turbo WebApps WebDevelopment
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.

CodingBestPractices Frontend Rails7 Ruby on Rails RubyOnRails StrictLocals WebDevelopment
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.

ActiveRecord Backend CacheManagement Ruby on Rails RubyOnRails WebDevelopment
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.

AssetManagement Javascript Propshaft Ruby on Rails RubyOnRails Sprockets WebDevelopment
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 DataAnalytics Database FilteredSearch Javascript pgvector PostgreSQL SemanticSearch WebDevelopment
Added: 12 Sep 2024
Building a complex filtering system with Ruby on Rails

Embracing the digital experience

Backend DynamicQuerying FilteringSystem includes Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment yield_self
Added: 10 Sep 2024
Ruby on Rails Boilerplate: Vite, Tailwind, Stimulus

Embracing the digital experience

Consulting MVP Ruby on Rails RubyOnRails Stimulus TailwindCSS Vite WebDevelopment
Added: 10 Sep 2024
Upgrade Ruby using dual boot

Upgrade Ruby using dual boot

BigBinary DevOps DualBoot Rails Ruby Ruby on Rails Upgrade WebDevelopment
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.

ControllerDesign Frontend HOTWire Ruby on Rails RubyOnRails SOLIDPrinciples StimulusJS WebDevelopment
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!

AudioRecording ComponentDesign Frontend Javascript React WebDevelopment
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.

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

What is OpenID Connect?

Authentication Backend OmniAuth OpenIDConnect Ruby on Rails RubyOnRails WebDevelopment
Added: 06 Sep 2024
Even Better Specs

Guidelines for Maintainable Tests

BestPractices EvenBetterSpecs RSpec Ruby Ruby on Rails Testing WebDevelopment
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...

ERB Frontend Maintainability Partials Rails Ruby on Rails WebDevelopment
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 Mentions Ruby on Rails RubyOnRails SupeRails TributeJS WebDevelopment
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 RoutingConcerns Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
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.

DataAnalysis Database GraphTheory KevinBacon PostgreSQL WebDevelopment
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...

Agile Consulting Estimation RubyOnRails ShapeUp SoftwareDevelopment
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 Controllers Learning LogicOperators Rails Redirect Ruby Ruby on Rails WebDevelopment
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 DatabaseOptimization EXPLAIN Indexing PostgreSQL Rails Ruby on Rails WebDevelopment
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 DatabaseConfiguration PerformanceTuning PostgreSQL RailsOptimization Ruby on Rails RubyOnRails
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 Debugging DelayedJob DevelopmentTools ErrorTracking Puma RubyGems Ruby on Rails RubyOnRails WebDevelopment
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 BackgroundJobs DevOps PostgreSQL Ruby on Rails RubyOnRails Sidekiq SolidQueue WebDevelopment
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 Debugging dev Rails Ruby on Rails run Staff Engineer Tools WebDevelopment
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 CacheControl HTTPCaching PerformanceOptimization RailsDevelopment Ruby on Rails RubyOnRails WebDevelopment
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.

ContinuousIntegration PerformanceOptimization Rails Ruby Ruby on Rails Testing TestProf WebDevelopment
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 NestedForms Rails Ruby on Rails RubyOnRails Turbo WebDevelopment
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.

CareerDevelopment Consulting EngineeringManagement Soft Skills Staff Engineer StaffEngineers TeamPerformance TechnicalLeadership
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 ModalForms Ruby on Rails RubyOnRails SoftwareDevelopment Turbo WebDevelopment
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 GameDevelopment Javascript React RxJS SnakeClone
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 RailsUpgrade Ruby on Rails RubyOnRails SoftwareDevelopment Upgrades WebDevelopment
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.

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

A place to learn Ruby on Rails

ActiveModelSerializer APIDevelopment Backend JSON Ruby on Rails RubyOnRails Serializers SoftwareEngineering WebAPIs WebDevelopment
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.

ContinuousIntegration EvilMartians PerformanceOptimization Ruby on Rails RubyOnRails Testing TestProf
Added: 14 Aug 2024
Conditionally render a Turbo Frame shared between multiple views

We explore several solutions to a common Hotwire problem.

Backend ConditionalRendering Frontend HOTWire Rails Ruby on Rails RubyOnRails TurboFrames WebDevelopment
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.

ActiveRecord Backend DeveloperExperience inspect InspectMethod Performance Rails Rails7 Ruby on Rails RubyOnRails
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 React RemoteData StateManagement Typescript WebDevelopment
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 ImageUpload Javascript Ruby on Rails RubyOnRails Stimulus UserExperience WebDevelopment
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.

APIDocumentation OasRails OpenAPISpecification Packages RailsAPI Ruby on Rails WebDevelopment
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.

AgileDevelopment Consulting DailyStandup EngineeringCulture RemoteWork Scrum SoftwareEngineering TeamProductivity
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 FilterOption in_order_of Rails Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment
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

AuthenticationGenerator Backend Rails8 Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment
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.

Minitest Mocks Ruby on Rails RubyOnRails Testing WebDevelopment
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 RubyOnRails StartupAdvice TechLeadership WebDevelopment
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.

Automation GitHubActions OasRails Packages RailsEngine ReleasePlease Ruby RubyGem
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.

ActiveRecord Database DatabaseManagement PerformanceOptimization PostgreSQL Ruby on Rails RubyOnRails
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 Extensibility GoodPractices Javascript OpenClosedPrinciple RubyOnRails SoftwareDesign WebDevelopment
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 development DevOps Logging Ruby on Rails RubyOnRails TaggedLogs WebDevelopment
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.

CleanCode Frontend Rails Ruby on Rails RubyOnRails SoftwareDevelopment UIComponents ViewComponent WebDevelopment
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 IncidentManagement OpenAI Ruby on Rails RubyOnRails SemanticSearch WebDevelopment
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 Rails Ruby on Rails RubyOnRails UIComponents WebDevelopment
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.

BestPractices CodeReview GitHub Soft Skills SoftwareDevelopment Staff Engineer WebDevelopment
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

ActiveRecordExtended Database DatabaseFunctionality Gem OpenSource Postgres Rails Ruby Ruby on Rails WebDevelopment
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 PostgreSQL RowPatternRecognition RPR SQLStandard
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.

Accessibility ADA Compliance Consulting DigitalInclusion Frontend RubyOnRails UserExperience WCAG WebDevelopment
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 EventSourcing RailsTips Ruby on Rails RubyOnRails SoftwareDesign WebDevelopment
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. ↩

CleanCode Frontend Minesweeper Ruby SoftwareDevelopment WebDevelopment
Added: 22 Jul 2024

Week 2024-29

Ruby on Rails - July 2024

The only Ruby on Rails newsletter you will ever need!

MonthlyNewsletter Ruby on Rails RubyOnRails SajjadUmar WebDevelopment
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...

AI CSS ECMAScript2024 Frontend Javascript Programming WebDev
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 Debugging Rails RequestHeaders Ruby Ruby on Rails WebDevelopment
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 CustomFonts DevelopmentTips MailCatcher Ruby on Rails RubyOnRails WebDevelopment
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.

Blogging fediverse Frontend Mastodon personalwebsites publishing
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 OptimisticUI Ruby on Rails RubyOnRails UserExperience WebDevelopment
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 FrontMatter HighVoltage MarkdownRendering Ruby on Rails RubyOnRails TailwindCSS WebDevelopment
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...

ActiveRecord Rails Ruby Ruby on Rails RubyOnRails WebDevelopment
Added: 04 Jul 2024
Easy Postgres backups

How to use Kamal to backup and restore your Postgres database

Backups Database DevOps DisasterRecovery Docker Kamal Postgres Ruby on Rails RubyOnRails WebDevelopment
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.

ActiveRecord DatabaseManagement Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
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 DatabaseDocumentation Migrations Ruby on Rails RubyOnRails WebDevelopment
Added: 04 Jul 2024
The Productivity apps I use in 2024

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

Applications Consulting Productivity RubyOnRails TaskManagement WebDevelopment
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 FrontendIntegration HOTWire Javascript React Ruby on Rails RubyOnRails WebDevelopment
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

DevelopmentTips FormHandling Frontend Rails Ruby on Rails RubyOnRails TurboStreams UserExperience WebDevelopment
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!

APIVersioning Backend Consulting DeveloperTips ErrorHandling Ruby on Rails RubyOnRails WebDevelopment
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...

DeveloperTips RSpec Ruby on Rails RubyOnRails SoftwareDevelopment TestAutomation Testing UpgradingRails
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?"

DragAndDrop Frontend HOTWire Ruby on Rails RubyOnRails StimulusJS WebDevelopment
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 Rails RailsDesigner Ruby on Rails RubyOnRails Turbo UndoAction UX WebDevelopment
Added: 25 Jun 2024

Week 2024-25

Documenting Software Architectures

The Architects Choice

arc42 C4Model Consulting Documentation RubyOnRails SoftwareArchitecture WebDevelopment
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.

Async AsynchronousProgramming Consulting PerformanceOptimization Ruby on Rails RubyOnRails WebDevelopment
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 DatabaseOptimization Performance Rails Ruby on Rails RubyOnRails Scalability WebDevelopment
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 RSpec Ruby on Rails RubyOnRails SoftwareDevelopment SystemTests TDD Testing UnitTests
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.

BestPractices CSS Frontend HTML Javascript RubyOnRails WebDevelopment
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

CustomElements FormControls Frontend Javascript RubyOnRails WebComponents WebDevelopment
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.

DataAnalysis Database DataScience MachineLearning NLP Programming SQL
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.

Deployment DevOps Hetzner Kamal PostgreSQL Rails Redis Ruby on Rails Traefik WebDevelopment
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!

CodeQuality Consulting ObjectOrientedProgramming Ruby on Rails RubyOnRails RubyScience SoftwareDevelopment WebDevelopment
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.

ActiveRecord Backend DatabaseOptimization NPlus1Problem Ruby on Rails RubyOnRails WebDevelopment
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 DevContainers Docker RailsDevelopment Ruby on Rails RubyOnRails VSCode WebDevelopment
Added: 28 May 2024
Manifesto for a Humane Web

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

Accessibility Consulting HumaneWeb Manifesto Netizens Privacy Sustainability WebDesign
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…

ActiveRecord Backend Database FTS5 FullTextSearch Litesearch Litestack Meilisearch Rails Ruby Ruby on Rails SQLite
Added: 27 May 2024
Planning your Sidekiq queues

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

Autoscaling Backend Judoscale PerformanceOptimization QueueManagement Ruby on Rails RubyOnRails Sidekiq WebDevelopment
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!

AWS CloudComputing DevOps Infrastructure Ruby on Rails RubyOnRails WebDevelopment
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 LLMs PromptEngineering SoftwareDevelopment WebDevelopment
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.

CleanCode CodeQuality Consulting DRY Javascript Maintainability React SoftwareDevelopment
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.

FormHandling Frontend Programming Rails Ruby on Rails RubyOnRails SimpleForm WebDevelopment
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.

APITesting Jbuilder RSpec Ruby on Rails RubyOnRails Testing WebDevelopment
Added: 21 May 2024
A new version of Suspenders has been released!

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

Consulting OpenSource Ruby on Rails RubyOnRails Suspenders Thoughtbot WebDevelopment
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...

BestPractices CodeAudit Consulting Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
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

APIs AsyncRequests Backend Concurrency Faraday Ruby Ruby on Rails SoftwareDevelopment WebDevelopment
Added: 17 May 2024
Rails 8 adds Kamal by default.

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

Deployment DevOps Kamal Rails8 Ruby on Rails RubyOnRails WebDevelopment
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 Productivity RemoteWork Slack TeamCommunication WebDevelopment
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 Optimization PerformanceTuning PostgreSQL SQL WebDevelopment
Added: 15 May 2024

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

ActiveRecord Consulting RailsDevelopment RepositoryPattern Ruby on Rails SoftwareDesign WebDevelopment
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 Kamal Puma Rails Ruby on Rails RubyOnRails Thruster WebDevelopment XSendfile
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 RubyOnRails SearchModal Stimulus Turbo WebDevelopment
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 CICD DevOps GitHubActions Ruby on Rails RubyOnRails SoftwareEngineering WebDevelopment
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 EffectiveCommunication ProblemSolving ProfessionalGrowth TeamWork WTFNotebook
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 DatabaseDesign DataManagement PerformanceOptimization PostgreSQL Ruby on Rails RubyOnRails WebDevelopment
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?

AuditTrail Backend Rails Ruby Ruby on Rails SoftwareEngineering WebDevelopment
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…

AWS Backend Backups Database DevOps GitHubActions Postgres RubyOnRails S3 WebDevelopment
Added: 03 May 2024
One engineer company with Ruby on Rails

All slide content and descriptions are owned by their creators.

Consulting DeveloperAdvice ProductMarketFit Ruby on Rails RubyOnRails SoftwareDevelopment WebDevelopment
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...

clean_code Consulting Programming Rails Refactoring Ruby 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...

Authentication Backend Devise Rails Ruby on Rails Tutorial WebDev
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.

Autocompletion Combobox Frontend HOTWire Javascript Packages RubyOnRails Stimulus Turbo WebDevelopment
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...

Authentication Backend Rails Ruby on Rails RubyOnRails TokenGeneration WebDevelopment
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 Rails Ruby Ruby on Rails Turbo WebDevelopment
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 RubyOnRails Summary WebDevelopment
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.

ActiveRecord Backend DelegatedTypes ModernWebDevelopment Ruby on Rails RubyOnRails SoftwareArchitecture WebDevelopment
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 Docker DualBoot FastRuby Ruby on Rails RubyOnRails Upgrades WebDevelopment
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

Cloudflare Consulting EmailSetup Mailgun Tools WebDevelopment
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…

DevOps EnvironmentConfiguration Ruby on Rails RubyOnRails WebDevelopment
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.

DocumentationFirst OpenAPI RailsAPI Ruby on Rails RubyOnRails Skooma Testing Tools
Added: 09 Apr 2024
Work around Rails schema noise with one weird trick
favicon