Tailwind CSS is a popular CSS framework that helps developers quickly build and style web pages with a unique utility-based approach. Unlike other CSS frameworks, it comes with its own build tooling. In this article, Jeffery Morhous walks us through setting up Tailwind CSS with Rails and Webpacker.
Vue is a popular front-end that is especially useful for Rails developers since it was designed to be incrementally adoptable. That means you can use Vue for parts of your UI without having to rebuild everything from scratch. In this article, John Emmanual will introduce us to Vue, show us how to set it up in Rails, and walk us through a simple project.
This article is the next in our series about building a toy programming language in Ruby. Alex Braha Stoll shows us how to implement the interpreter for function definitions, variable declarations, and more.
Race conditions are arguably the most insidious kind of bug; they're intermittent, subtle, and most likely to occur in production. ActiveRecord's `update_counter` provides us with a convenient way to avoid race conditions when incrementing or decrementing values in the database. In this article, Jonathan Miles shows us how to use it, how it's implemented, and other approaches to avoiding race conditions.
Lambda is an excellent option for deploying lower-traffic web services when you don't want to maintain another server and you want easy access to all of AWS's other services. In this article, Godwin Ekuma shows us step-by-step how to deploy our Rails apps to AWS Lambda.
RailsConf videos are up. RubyConf 2021 will be in-person. A REXML CVE. Basecamp fallout. Discussion of testing and containers.
Good docs make happy customers. But documentation is HARD. You have to figure out what's important and write it up in a way that's tailored to your audiences and consistent across the site. Now you need to set up a website, publish the docs and maintain them as your product changes. Fortunately, we have seasoned technical writer Kate Bartolo here to walk us through the whole process.
Rails apps tend to start simple, with clean models and controllers. Then you start adding features. Before you know it, your models and controllers are big, unwieldy, and hard to understand. Refactoring into service objects is a great way to split these big pieces up, so they're easier to understand, test, and maintain.
Rbenv, RubyGems, and Bundler work together to give us a lot of control over our code's environment. If you know how they work, you'll be better prepared to troubleshoot any problems you encounter. In this article, Olasubomi walks us through the basics of how these three tools do what they do.
Code is never self-contained. It runs in an environment. Docker lets you define that environment in a simple and portable way. That's why pretty much every automated testing and deployment service works with docker containers. You give them a container, and done! But how do you set up a container to use for testing your Rails app? In this article, we'll show you.
Authentication is at the heart of most web development, yet it is difficult to get right. In this article, Diogo Souza discusses common security problems with authentication systems and how you can resolve them. Even if you never build an authentication system from scratch (you shouldn't), understanding these security concerns will help you make sure whatever authentication system you use is doing its job.
In earlier installments of this series, Alex Stoll guided us through creating a lexer and a parser. These translated the human-readable source code into data structures. In this article, he begins work on the interpreter - the bit that actually runs our code!
Ruby's flexibility has always been both its greatest strength and its greatest weakness. You can write amazingly expressive programs. You can also slip and break them in amazingly expressive ways. RBS is a new type annotation system in Ruby 3 that seeks to keep ruby's flexibility while protecting us from some of its dangers. In this article, Julio Sampaio walks us through RBS. He explains the impact it has on metaprogramming, and he shows us how we can use it to make our own apps more robust.
Ruby lets you express yourself like few other languages, with a minimum of boilerplate. It's fantastic until it isn't. Until one day when you think you're calling the `foo` method you wrote last week, but instead, you end up calling a `foo` method that came with some gem from 2008. In these situations, knowing about Ruby's method lookup rules will save your bacon.
One of the best things about Rails is that it protects your app from a wide variety of injection attacks with minimal development effort. But we're never 100% safe. After all, Rails can't protect us from our own bad decisions. We need to understand the threats so we know when we can lean on Rails and when we can't. In this article, Diogo Souza introduces us to the OWASP Top 10 list of vulnerabilities and dives into injection vulnerabilities to show us how rails protects us against them and how we can protect ourselves.
To decide on a front-end for your Rails app, you need a feel for the options. Does a certain JS framework speak to you or does it make you feel dirty inside? There's only one way to find out! In this article, Julio Sampaio walks us through creating a React app from scratch and integrating it with a Rails back-end via webpacker.
There are lots of ways to sort data. Insertion sort is particularly interesting because it sorts the data in place and is pretty easy to understand. Of course, most of us just use the #sort method. But interviewers still love to ask questions about sorting algorithms and related topics like Big-O notation. In this post, you'll learn not only how insertion sort works but also how to implement it yourself in ruby.
If you've ever checked the environment in your Rails app with Rails.env.production? you've used a fascinating little utility class called StringInquirer. In this post, Jonathan Miles dives into the rails codebase to show us exactly how StringInquirer works and how we can bring a little of its magic to our own apps.
Before you can decide on a front-end for your Rails app, you need a feel for the options. Does a particular JS framework speak to you or does it make you feel dirty inside? There's only one way to find out! In this article, Julio Sampaio walks us through creating an Angular app from scratch and integrating it with a Rails back-end via webpacker.
The fastest web page is one you've already loaded. Browsers love to avoid round-trips by caching assets. And HTTP provides ways for us to tell browsers what's changed and what hasn't - so they make the right decisions. In this article, Jonathan Miles introduces us to HTTP caching and shows us how to implement it in Rails.