What’s the value of a Staff+ community, and how can you get one off the ground?
Articles that I have been reading
Week 2022-20
Accelerating your team with regular, productive retrospectives
Using RSpec custom matchers to make clean ActionMailer mocks
On fighting the feeling of "blah".
Rubyists might take special pleasure here, but every SQL and PostgreSQL dev can learn this unorthodox approach: putting soft delete...
Migrate, refactor, and change critical Ruby production code with confidence using the Scientist gem.
I have recently been talking at small and mid-size companies, sharing engineering best practices I see us use at Uber,...
Maybe you have heard about the counter cache feature. A counter cache makes finding the number of belonging objects more...
We present proven ways to scale Ruby on Rails applications. Find out how to prepare your app's architecture to meet...
Justin Mitchel provides a step-by-step IaC guide for Terraform, Ansible, Puppet, Chef, and Salt.
Fly.io: the Reclaimer of Heroku's Magic - Xe's Blog
Week 2022-19
Read about the advantages of using Docker and learn how to build and dockerize a Ruby on Rails application that...
When is it best to reach for query objects and how can we best structure them?
A quick guide to the 4-step process of loading a custom font file into your Rails application.
Search analytics made easy. Contribute to ankane/searchjoy development by creating an account on GitHub.
Have you ever wanted to accept payments in Rails? With Stripe Checkout, it's never been easier. Jeffrey Morhous shows us...
Building the system architecture your teams need
An overview of time zones in Rails.
And why coding speed matters
Week 2022-18
Developers often reach for UI frameworks like Bootstrap or Material UI, hoping that they’ll save a bunch of time and...
There are some changes being proposed regarding viewport units, finally solving that "100vh in Safari on iOS" issue …
In the model-view-controller pattern that Rails is built on, it’s pretty clear what views and controllers are, but models are...
Getting the feedback you need from colleagues and friends
This is Part One (of two) of our story chronicling Twitch’s journey from monolithic architecture to microservices. In Part One,...
Heroku has now revealed that the stolen GitHub integration OAuth tokens from last month further led to the compromise of an internal...
Implement a simple stock ticker application which serves live updates on the New York Stock Exchange, using Ruby, Sinatra and...
All too often, developers go deep on the wrong things, when writing documentation. A little bit of empathy can get...
Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes, with optional features for processing large files in...
Most websites I build start off as a blank Jekyll site with Tailwind CSS on top.
Let's explore the basics of Rails generators and templates, then examine how to customize your Rails app with templates.
MVP is such a profound misnomer; a good MVP is not viable, and it is certainly not a product. Chances...
A hands-on guide on Stripe’s Product API Integration
A boilerplate script for 1:1 remote user interviews.
Race conditions are hard to debug—especially when you don't know it's a race condition! This article looks at some common...
Week 2022-17
You can write for fun, to learn, or make a living too. Check out our 21 tips to write posts...
Adding basic search functionality to a Ruby on Rails app is not the toughest task in the book but when...
In this video, we're going to take a look at Rails' flash messages, how they work, and what changed since...
The importance of communicating your expectations with your team
When writing tests, or reading other people’s tests, it can be helpful to understand that tests are often structured in...
Writing system tests can be sometimes tricky because we want to assert a reality that’s not yet rendered. Ad-hoc sleeping...
Kevin Newton
My approach on how I keep my test fixtures manageable, sane, and obvious. Not hard and fast rules, but guidelines...
Exploring how to use FactoryBot effectively with models backed by plain Ruby objects.
GitHub Gist: instantly share code, notes, and snippets.
Strategies for identifying top engineering talent
A Ruby on Rails email naming convention for clear and easy communication of purpose
From automating builds and releases to taking care of large-scale regression testing, here are a few ways we use GitHub...
Week 2022-16
What is a successful design system made of? Learn about the four layers of a design system and the parts...
Building inclusivity and alignment in distributed teams
Form Objects are a great addition to the toolbox provided by Rails. Follow our step-by-step guide to start building better...
Leverage the power of the I/O table mindset to make your tests as maintainable and readable as possible.
Late last week, I was very delighted to see that Chromium will start prototyping with CSS Toggles, a proposal currently...
Week 2022-15
Using the Command Pattern to achieve slimmer controllers
A few years ago, Matt Swanson wrote a great post on setting up Rails CI on GitHub Actions. It quickly...
What this feature is for The credentials feature is a way of storing secrets that you don’t want to keep...
How can we create ranges out of custom objects?
At OmbuLabs, we have some projects where multiple teams work at the same time on different features or fixes. We...
Google Sheets can be a great place to store content for a website, since it’s structured and easy to update...
A deep-dive into the CSS :has parent selector with some use-cases and examples.
Ruby on Rails ships with default error pages for more popular requests you might encounter including `404`, `500`, and `422`....
Need a structure for your story? We show you what the SCQA method is and how you can start using...
Bullet Train introduces a new, slightly different expectation for Rails seed data: It should be possible to run rake db:seed...
Staying DRY while storing descriptions in a not-model-specific way
A new generation of note-taking tools helps us quickly organize thoughts as knowledge graphs
Week 2022-14
There haven’t been a lot of community structures or resources for Staff+ engineers. That’s changing.
RSpec’s block has two common syntaxes. Which should you use? Disclaimer: they both work. But I’m assuming since you’re here,...
Feature flags are an effective method for developing and introducing large changes to an existing codebase without large interruptions to...
Securing controller endpoints is an important aspect of most non-trivial web applications. For Rails applications there are a number of...
Explore the most exciting CSS that's now in a browser near you.
A new report Meta commissioned aims to redefine comprehensive encryption as essential to protecting human rights.
You may not think about images as part of your web dev work, but they can affect your web app's...
The challenge of keeping test code clean The hardest part of a programmer’s job isn’t usually figuring out super hard...
Week 2022-13
We want to evaluate how well candidates can code, and we also want to ensure candidates can show their talents...
In this video, we're going to look at how to create a search form using Hotwire. Namely, we're going to...
Recently I’ve been playing with Rails 7 and Hotwire.
Wanting to show/hide content on a page is an incredibly common task, and we're probably all familiar...
Using the Noticed gem, Turbo Streams, and Turbo Frames to buld a real-time, in-app user notification system in Ruby on...
Check out these 5 tips to ensure your transactions are readable and well-designed in your Ruby on Rails app.
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
The memento design pattern provides us the very useful functionality of reverting to a previous state of an object when...
Shopify software engineers, developers and development managers name the books they think everyone in tech and engineering should read.
Architecture Decision Records (ADRs) can be a huge help to your team. Whether facilitating discussion or recording the Why, ADRs...
ActiveRecord provides a comprehensive interface for querying the database, but at what cost?
A small Ruby gem to generate YouTube-like hashes from one or many numbers. Use hashids when you do not want...
iOS framework for making Turbo native apps. Contribute to hotwired/turbo-ios development by creating an account on GitHub.
Notifications for Ruby on Rails applications. Contribute to excid3/noticed development by creating an account on GitHub.
The simple, fast, and scalable code generator that lives in your project. - GitHub - jondot/hygen: The simple, fast, and...
Payments for Ruby on Rails apps. Contribute to pay-rails/pay development by creating an account on GitHub.
If you are looking to host Google Fonts locally, we'll introduce you to a quick and easy way to implement...
When cutting from Scene A to Scene B, it's often tempting to use one of the built-in transitions provided by...
Invalid factories are the worst. Here is a script I normally drop into my rails projects to help spot them....
A little bit of my struggles with ENV files throughout the years, and hopefully a better solution.
Communicate Across Browser Tabs in Realtime
The other day, Florens Verschelde asked about defining dark mode styles for both a class and a media query, without...
Learn how to track user events without sacrificing privacy and performance.
Week 2022-12
Last updated on February 21, 2021. One of the most valuable features Bullet Train provides for Rails developers is the...
Catch unsafe PostgreSQL migrations in development and run them easier in production (code helpers for table/column renaming, changing column type,...
There are many excellent authorization libraries for Rails, but did you know it's not that hard to build this functionality...
In this article, Louis Lazaris describes and demonstrates some interesting HTML attributes that you may or may not have heard...
Ensuring thread safety is critical if you want to build a performant Rails app. Unfortunately, threading-related bugs are often sneaky...
There are a lot of different approaches to writing CSS, with CUBE CSS by Andy Bell being one of the...
It is quite difficult to write correct shell scripts; you’re much better off just using Python.
A nearly-universal need in web applications is user notifications. An event happens in the...
Analytics (i.e. stats about your visitors) is nowadays not cheap. Let's see why, and let's see how Rails could help....
Week 2022-11
Learn how to test your Rails models using RSpec and the Behaviour-driven Development approach.
As you code, search, and collaborate
Theres been a pattern I've seen creeping in Rails apps. The pattern is that there are cases where...
How to build distributed systems with Ruby on Rails
Week 2022-10
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
I write to Ruby community in days of war Russia leads against my country.
If we wanted to, we could, of course, write web applications in assembly code. Computers can understand assembly code just...
Everyone would love to have a secret power. A skill that makes you a hero. There is no one such...
git config is a powerful command in Git. You can use the Git configuration file to customize how Git works....
Remote is the new normal. It brought with it some benefits, some challenges, and some frustrations. Now that our team...
Some of the tricks we used to speed up SELECT-s in PostgreSQL: LEFT JOIN with redundant conditions, VALUES, extended statistics,...
Soon the new version of ECMA Script will become standard in few months. So let's take a glimpse at...
Week 2022-9
This February, a handful of thoughtbotters attended the virtual ProductCon event. Here are a few of the team’s takeaways from...
I want to introduce you to a new, experimental form control called selectmenu, including how much easier it is to...
Dual-screen devices are just the next evolution in responsive design. If you have a PWA or website, the APIs available...
Let's build a command palette for the Tickerizer application, using Rails 7, ESBuild, View Components, and all the goodness of...
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Learn how to install JavaScript libraries with import maps and how import maps work under the hood in Rails 7....
Don’t waste your time on assets compilation on Heroku At some point, you may want or be forced to use...
Maintaining a design system is a lot of work. In this article, Atila Fassina shares his lessons learned and how...
A playlist of our blog posts about css.
Make your Bash scripts more interactive and futuristic with these tips.
Founded in 2007, Dropbox offers secure, flexible cloud storage and file sharing for individuals, teams, and enterprise customers.
Moving into a management role may be a rewarding step in your career, but you should know about the things...
administrate gem is often qualified as DSL-less admin builder, i.e. every file your admin dashboard rely on, can be fully...
Cloudflare Tunnel is an awesome feature of Cloudflare that allows you to expose some local services to the Internet with...
Week 2022-8
As software developers, we're often given access to various pieces of sensitive information in order to do our job. This...
CSS does a lot with its selectors, but there's still a lot more it could do to make things easier...
What is a Domain Event? Introduction and definition.
TDD can help you accelerate development and reduce costs over a project’s lifecycle.
In Ruby, object methods are public by default, while data is private. To access data, we use the accessor method....
Here see what I have curated based on my experience and personal notes.
The new GitHub Issues - February 23rd update
My last article on 10 VS Code Extensions to Fight Technical Debt got over 50.000 views and 500...
I walk you through a real-world implementation of triggering HTTP requests as a side-effect of an action taken by a...
Learn how to deploy app updates to end users with react-native-code-push, a CodePush module for React Native.
Looking at how to make writing easier to read
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Modern web UIs are complex. Traditional layout/template/partial techniques are not always the best fit. ViewComponent seeks to provide a better...
Learnings from setting up a cron job in Rails using Sidekiq.
How do text typing and editing work on the web? Although this process might seem straightforward, there is a lot...
Blend the speed of Rack::Test
-driven Integration Tests with the power and utility of Capybara
finders and assertions.
Hotwire is the default front-end framework for new Ruby on Rails applications. Learn how to craft reactive single-page applications with...
Week 2022-7
In this article series, we build a reactive WYSIWYG editor for Markdown content using the brand new Alpha 2 release...
Fixer Upper. We all love it. Even if you hate it… you still kinda love it. If you are unfamiliar......
The value of good software design is economic: you can continue to add new functionality quickly even as the code-base...
A Rails engine for queueing and managing maintenance tasks for data migrations and backfills. - GitHub - Shopify/maintenance_tasks: A Rails...
Designing Software that Maximizes Developer Productivity. Learn how Shopify took its code base from monolith to modular monolith.
How my team redefined the way we store one of the polymorphic associations in the Shopify codebase. This post is...
Ruby's flexibility has always been both its greatest strength and its greatest weakness. You can write amazingly expressive programs. You...
Reliable custom software development and consultancy. Dedicated software development teams. Ruby on Rails experts.
Some developers advocate doing test-driven development 100% of the time. Other developers think TDD is for the birds and don’t...
The Rails Guides give a great example of how to create nested forms. However, Rails does not support adding fields...
A breakdown of our best-of blog posts for consulting.
While creating mature components in Sketch and Figma both take a lot of upfront work, the way a designer interacts...
Do you want to get up to speed with React as quickly as possible? I’ve put together a super helpful...
Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.
Week 2022-6
It’s not easy keeping up with all the new features the ECMAScript spec brings us every year. Let’s catch up...
GitHub's new project experience is built with flexibility in mind. Here's how to get started with GitHub Issues and project...
It's an exciting time in web development. After a decade's worth of front-end progress kept demanding ever more complicated setups,...
If you're like me then you probably take Devise for granted because you're too intimidated to roll your own authentication...
Install jsbundling-rails Swap pack_tag for include_tag Import stimulus controllers Migrate JS...
WebAssembly is at an inflection point. Over the next few years, I expect to see increased adoption of WebAssembly across...
Is there value in focusing time to reflect on our recent work?
Modals are a great use case for showing the power of Turbo frames and Hotwire. Here's an example of how...
Tips, tricks and tutorials on the web’s most beautiful language.
Inside Rails 7 apps, esbuild is wrapped into jsbundling. But what if you want to customize this build ?
S3 is an excellent way to store files scalably and reliably. This article by Jeff Morhous will show you how...
Learn how to Turbo-Stream ViewComponents by building a message board.
Week 2022-5
Nearly every web application will eventually need to add pagination to improve page load times and...
A developer relates his experience choosing Ruby on Rails instead of using his normal go-to, a React-based single-page application framework....
This post describes a simple and fast method to anonymize data in a Postgres database, useful for reporting or in...
Over the last year I've been working on Runno, an open source library and tool for embedding code...
After recently discovering RSpec’s --next-failure option I’ve just happened upon the have_attributes matcher which can help turn many expectations into...
A client of ours plans to introduce a day of improvement each week. Here is my best advice for how...
Joining an existing project as a developer comes with loads of challenges. If you need some inspiration on how to...
Week 2022-4
The push notification service for Ruby. Contribute to rpush/rpush development by creating an account on GitHub.
When implementing user authentication with passwords, throw out the password rules you know.
GraphQL is a flexible, strongly-typed query language. It's useful because it gives front-end developers the ability to query the database...
Is it worth making it the core framework of our web development Bootcamp, considering that most of our students are...
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
Development is rarely a linear process, and our commits tend to reflect this. Here you'll learn about a git flow...
Week 2022-3
Feature flags (or feature toggles) are a neat way to hide in-progress features from your users. For those who need...
Stop paying down tech debt and start doing software maintenance. The real term we should all be talking about is...
Rails system tests often depend on input and CSS selectors. To make our tests more maintainable, we can isolate layout...
The Result-Error Pattern helps you hide try-catch blocks, simplify error handling, and encapsulate cleanup operations.
With 2021 coming to an end, let's take a look at which CSS language features we can expect to land...
The Ruby splat operator is confusing and here is why…
Turbolinks is no longer being developed. It's been superceeded by Turbo, which is part of Hotwire. In this article, Julio...
Turbo can largely simplify our front-end needs to achieve a single-page application feel. If you have ever wondered how to...
Week 2022-2
Top 3 design patterns used to create React.JS components that you should know about
The best designers employ specific habits, learned practices, and observed principles when they work. Here are a few of them....
If we bake addressing tech debt into our plans, could it become an opportunity to build abundance into our systems?...
Week 2022-1
These tips can help save time and money while getting the most value from GitHub Actions.
Week 2021-51
Matz is nice and so we are nice. — Ruby Community Motto
Let's discover the differences and similarities between Sorbet and the recently released RBS through some practical examples.
In this part of the series on Rails patterns and anti-patterns, we are going to analyze the final part of...
Week 2021-50
Thoughts and learnings on writing better software
A blog about Ruby, Rails, Software, the Universe and Everything
Erin shared his first-hand experience of participating in Ruby for Good.
Tidy routes are happy routes
If you came across this article, you either have heard of Action Cable before or you are looking to dive...
Three cheers for (draft stage) progress on a Sanitizer API! It’s gospel that you can’t trust user input. And indeed,...
I’ve been having this thought on the back of my mind for a long time to write about why it’s...
Let’s go on a journey into the world of memoization through the medium of dance Rails…
This version of Rails has been years in the conceptual making. It’s the fulfillment of a vision to present a...
Why we undervalue front-end expertise in the web development world.
Week 2021-49
It's named what? Figure out what Amazon Web Services should actually have been called.
Learn how you can write your packages in TypeScript but still ship your users modern JavaScript code that they won’t...
Week 2021-48
It's surprising how often you still see this in the wild
WaterDrop is a standalone Karafka component library for generating Kafka messages - GitHub - karafka/waterdrop: WaterDrop is a standalone Karafka...
Open-source is the greatest opportunity to gather real-world experience while you are still on your journey of getting into the...
Hello World, I am Karthikeyan. I eat briyani and worship Boomthata, the creator of God and Satan.
Find out why engineering team at Bearer made the decision last year to swap from a React on Rails SPA...
Imagine we have 2 models Area Lane
As customers, we're all happy to know about GDPR and the protection of our private data this regulation enforces. But...
Rails Event store is a storage of events. Optimize operations to be as fast as possible. We can only read...
One of the aspects of Ruby that often confuses newbies coming from other languages is the fact that it has...
Active Record implements aggregation through a macro-like class method called composed_of for representing attributes as value objects.
Two kinds of multi-step forms The creation of multi-step forms is a relatively common challenge faced in Rails programming (and...
Week 2021-47
Elixir is similar enough to Ruby to be familiar, but different enough to get tripped up by! Image by OpenIcons...
What we’re going to do and why If you’re a Ruby programmer, you almost certainly use Proc objects all the...
Your browser does not support the audio element. Download In this episode, Donn talks to Jay Ohms about Turbo Native...
This is a Turbo Training page. Each section will contain an exercise to solve using Turbo. It will progress in...
I recently built a drag-and-drop and copy-and-paste file uploader for Markdown (like GitHub’s editor) using Stimulus and Active Storage. Check...
Need to add audit logging to your Rails application? In this post, I review five popular Ruby gems you can...
AWS Lambda lets you run your code without worrying about the nuts and bolts of server management or scaling. You...
Week 2021-46
Adopt these top Ruby on Rails Security Best Practices to give your app an edge!
Ever wanted to use a technology that can identify specific objects contained in any given image? Well look no further...
Is ES6 the JavaScript release that will finally free us from the endless cycle of frameworks?
Native CSS will support CSS nesting. What will that look like? What are its advantages? Learn more about native CSS...
Taking ages to deliver small changes? Constantly sacrificing code quality? Is it possible to ever pay off tech debt? Yes,...
In this post, I will describe what Rack is and how to write middlewares in Ruby on Rails. I will...
The term metaprogramming sounds quite intimidating, especially for newbie developers such as myself. However, it’s a common misconception…
One of the most common questions about testing, including what to write tests for, is what NOT to write tests...
Overview of TimescaleDB highlights. Understanding time-series data. Integrating with Ruby on Rails. Implementing views counter demo
Where is the Ruby language headed? Increasingly it seems efforts are geared toward expanding the set of systems, for which...
🎨 Curated collection of 93 free beautiful CSS box-shadow, ready-to-use for your next projects. Click to copy.
We believe in working in the open. This blog is for designers across government to share their projects, ideas and...
What we’ve learned while supporting our clients in the decision to go with React Native for their first mobile app....
A brief introduction to Ruby’s lightweight concurrency primitive.
A classless CSS framework to make a good looking site quickly.
A T-shaped person is capable in many things and expert in, at least, one.
Week 2021-45
Hello guys ! sometimes I came across the need to change the application's database,...
Rails 7 series | Ruby 7.0 adds ActiveRecord::QueryMethods#in_order_of
Rails 7 series | Rails 7 replaced byebug with ruby/debug
When engineering a new SaaS app, how you plan to handle customer data tenancy is usually one of the...
Features you already have but may not know about!
Week 2021-44
Airbnb announced that it has open-sourced Ottr, a serverless public key infrastructure framework developed in-house. Ottr handles end-to-end certificate rotations...
The growing complexity of modern software systems is slowly killing software developers. How can you regain control, without losing out...
WebAssembly meets 16000 HTML checkboxes.
What do Tom Hanks, Meryl Streep, Julia Roberts, and Brad Pitt have in common? They all, at one time or...
I end up creating a lot of Rails apps, and each time I get started I often find myself wanting...
Brace yourselves, for what follows is a recount of a case I've helped solve where the initial attack was performed...
We’re all familiar with the concept of autocompletion, right? You type something into a search box and it tries to...
Cloudflare has a broad range of products -- ranging from security, to performance and serverless compute. These products are built...
Maintainers can now limit who can approve and request changes on pull requests. You can also close issues and block...
Why good code needs defending Good code quite frequently comes under fire. Managers explicitly or implicitly pressure developers to cut...
Matthew Clark discusses how the BBC’s website is designed in a scalable, performant, and resilient way, what the architectural solution...
With screens available in any size you can imagine, it's time to shift our approach towards responsive design – the...
Async Ruby is a powerful and highly scalable concurrency feature. It's available today, it's production-ready, and it's an awesome addition...
Week 2021-43
We should write tests to enable teams to confidently move fast. Code is always evolving, so question everything, collect experience,...
Send updates to a page using a specific partial.
Using dry-schema and dry-validate to keep endpoint tests readable & maintainable
A lesser known capability of Ruby’s JSON.parse If you ever got annoyed by the fact that JSON.parse returns hash with...
This story starts in October of 2019. I was in the Basecamp meetup in Chicago two weeks after joining the...
When Rails applications grow, most likely your controllers/routes start to grow too. There’s no need to make Rails routes difficult...
I ran across this 30 seconds of code website the other day, and they have a CSS section which is...
Overview Influenced by the experiences I’ve had last over the 10+ years of building and maintaining Rails applications, combined with...
Week 2021-42
As someone just sittin' back watching CSS evolve, it feels like we're at one of the hottest moments of innovation...
Could we drop Symbols from Ruby? Don’t know about you, but I personally have been hit a least a dozen...
The `prefers-reduced-motion` media query has excellent support in all modern browsers going back a couple of years. In this article,...
No matter how thorough your test coverage is, you can't test everything. So when you introduce a bug in your...
It’s possible you’ve seen the abbreviation while looking for a note-taking app or for alternatives to Google Maps. But what...
Hello everyone, In this tutorial, you will learn how to add RBS to your project and get an overview of...
I was doing some research on introspecting Ruby on Rails database transactions for a Reddit thread, and came across this...
Software design patterns are like best practices employed by many experienced software developers. You can use design patterns to make...
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Having a thousand lines long controllers and/or models is not the right way to have sustainable applications or developers’ sanity....
Rails 7 series | Rails 7 adds the ability to use pre-defined variants
Week 2021-41
The Rust programming language makes it easier to build safer software. What will it take to Rust All the Things?...
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Covariance and contravariance are the concepts behind the subtyping of composable types.
There are a number of very robust charting libraries on the market. Some are commercial. Some are free. You should...
Zeitwerk is the code autoloader and reloader that was integrated with Rails 6. Beginning in Rails 7, it will be...
Doist, the company behind Todoist and Twist, has revamped its internal communication product Twist. When I first covered Twist, I...
Writing CSS has probably never been more fun and exciting than it is today. In this post we’ll take a...
It’s not because they lack confidence.
The guide is separated into several sections of related rules. I’ve tried to add the rationale behind the rules (if...
Ruby’s safe navigation can hide some subtle edge cases. We explore approaches to think about conditional logic, alternatives to &.
,...
Rails programmers have almost always tried to figure out the golden approach to business logic in their applications. From getting...
Week 2021-40
Learning to use Turbo Frames through examples in a Ruby on Rails app
If you want your text to be read, set it at a sufficient size! But what is a good font...
The backlash to modern front end development is gaining steam, with good reason: single-page apps have ruined the web. Can...
The acclimation process as a new engineer may be daunting for some. And since I’ve been through the...
Scaling Rails apps is a process of master app architecture and supporting infrastructure. Learn how it’s done straight from our...
The new CSS `accent-color` property makes it quick and easy to roll out our brand colors to certain form inputs...
A well-written Continuous Deployment (CD) pipeline ensures that on every merge to a release branch,...
It's fairly common when working on existing or legacy codebases to find models that have instance methods defined on them...
I really like enums. They can be really powerful if they are used wisely. Let’s see what we can do...
Footnotes now supported in Markdown fields
Learn about trunk-based development, a version control management practice where developers merge small, frequent updates to a core “trunk” or...
Maybe you are already familiar with includes or preload, but you know that a lot of the time you will...
How to use CSS comparison functions to create a conditional border radius
Week 2021-39
Get familiar with common antipatterns in writing tests for Rails applications when using fixtures and/or factories to manage dependencies.
Below is how I set up a fresh Rails application for testing. I’ll describe it in three parts: An application...
Turbo will be a default part of Rails from Rails 7, replacing Turbolinks and rails-ujs. This post is a result...
I just write here
When authoring CSS we have to carefully think about how we write and structure our code. Cascade Layers (CSS @layer)...
Turbo is great. Here are a few things you should know as you begin to use it to add dynamic...
Need to dynamically update fields when a user changes a select box? We can do that easily in Rails using...
DHH recently announced that Hotwire is going to be included in Rails 7 by default. Due to its...
If someone steals your password, they can pretend to be you. That's why many companies provide two-factor or multi-factor authentication...
Chrome developer advocate Jake Archibald called 2016 "the year of web streams." Clearly, his prediction was somewhat premature. The Streams...
(This blog post first appeared in pubudu.dev) Intro This post describes how to implement...
Ever played Charades and acted out the perfect mime to ‘James Bond’, only to be met with blank stares? That...
Week 2021-38
Stencil allows developers to build reusable web components that can be incorporated into front-end frameworks like React, Angular, and Vue....
In most of the Rails apps I've built over the years I've had to add my own helpers for a...
The third major release of Stimulus represents a big milestone for the Hotwire community. This is the first release where...
Simplify and clarify your code by carefully choosing abstractions.
Action Mailbox: The Missing Manual. GitHub Gist: instantly share code, notes, and snippets.
In this article, we’ll walk through the process of taking a seemingly simple design for a text-and-media component and deciding...
I'm Chris McCord. I work at Fly.io and created Phoenix, an Elixir web framework. Phoenix provides features out-of-the-box that are...
People are going crazy about single page applications and client side rendering. But, do we really need them?
A lot of times, people ask what’s Ruby good for apart from Rails. Ruby is great for various tasks from...
Today I wanted to call some extra attention to those little things, the ones that don't get the spotlight, but...
Data pipelines require version control too!
Week 2021-37
Have you ever been in a situation where you wish you could have some control over the values in an...
Elegant styles for all natives HTML elements without .classes and dark mode automatically enabled. 7.9 kB minified and gzipped!
Build a search-as-you-type text box with Turbo, Stimulus, and Rails.
In this article we will discuss and demonstrate how we can use Ruby to encode UUIDs into URL friendly representations....
Firefox is a popular browser choice, so here are five hidden features that you should be using to supercharge your...
I will die on this hill.
Turbo-charge your Article drafting feedback cycle with Hotwire-powered live previews.
Ship/Show/Ask is a branching strategy that helps teams wait less and ship more, without losing out on feedback.
Stencil allows developers to build reusable web components that can be incorporated into front-end frameworks like React, Angular, and Vue....
It's the time of year again, and with it comes a bundle of new Ruby 3.1 features getting approved and......
Week 2021-36
Progressive web app (PWA) behaves more like a regular app in devices. This article shows how to implement background sync...
Implementing search in your Rails app can be vexing. Here's a great pattern to use that combines the best parts...
This article shows how to optimize a Full Text Search implementation with Rails and PostgreSQL, taking a single query from...
Starting with v2021.2, RubyMine provides code assistance for working with RBS files, along with all of the essential features that...
Introducing a k6 plugin to load test WebSockets and instrumenting the application under test with Yabeda, Prometheus and Grafana
I wrote this a couple of years ago in another context, but it looks like it's still just as applicable...
The following article shows the benefits of investing some of your time into adding RBS declarations to your project. Catch...
Week 2021-35
The road to 1.0, plus upcoming opportunities to contribute to that vision to make it a reality.
I recently added hotwire to my pet project snippetsafe and wanted to see if I could replace the infinite scroll...
We’ve already discussed how creating web components is easier than you think, but there’s another aspect of the specification that...
ECMAScript, the standardized version of JavaScript is increasing its popularity and is becoming...
The new GitHub Issues - 09/03 update
Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your...
The problem to be solved As a Rails application grows, its controllers tend to accumulate actions beyond the seven RESTful...
Turns jpeg, png and vector images into a hand-drawn look in a click.
React Native has been very successful at raising the bar for mobile development, both at Facebook and elsewhere in the...
Active Record lets you access raw SQL. We look at 5 business requests for data, translate them into SQL, then...
Software development consulting may sound challenging, but there's also growth, support and ownership in how we consult at Test Double....
Hotwire is a way to build modern web applications without much JavaScript by sending HTML over the wire. In this...
Heroku doesn't compress your applications’s responses, you should.
Week 2021-34
Learn how to make git hooks to do most routine tasks for you: install gems, migrate the database, run tests,...
Learn about encrypted version introduced with 5.1 to handling multi-environment credentials before rails 6 to Handling multi-environment credentials in rails...
Monkeypatching can be a great way to improve existing code if used right. Let's find out how.
It is a painful realization. You just added a beautiful, multi-page description into your bug tracker’s text editor, complete with...