rails
-
Feature Flags and A/B testing with gem flipper
-
Separate Google and YouTube OAuth Strategies in Rails
-
Deploying Rails 8 on Render.com
-
Use Solid Trifecta with one Postgresql database
-
Readonly Models without database
-
AutoNumeric.js: The Best Currency Input Field for Rails
-
Typesense search in a Rails app
-
My VS Code / Cursor plugins in 2025
-
My recommended Jekyll plugins in 2025
-
Custom chapters with Vimeo Player API
-
Render Markdown FILES in Rails app
-
Use Vimeo API with Ruby on Rails
-
Generate and display OpenGraph images
-
Rails 8 Authentication generator: user registration
-
Rails 8 Authentication generator: user sign in
-
TailwindCSS on Rails: Dark Mode
-
TailwindCSS on Rails: Minimize Collapsible Sidebar
-
TailwindCSS on Rails: reusable button variants
-
Track change history of attributes and display diff
-
Tailwind CSS Bottom Navigation
-
Rails 8 will be a PWA (Progressive Web App) by default!
-
Import ICS events to calendar
-
Calendar pagination with Pagy
-
Country select dropdown. Why does country_select gem even exist?
-
Does Turbo 8 morphing make sense?
-
HTML to PDF in Rails with gem DocRaptor (successor of wicked_pdf)
-
Custom Turbo Stream Actions
-
Crazy, stupid page transition animation with StimulusJS and TailwindCSS
-
Progress animation with HTML meter element and javascript
-
Modals with HTML dialog element, TailwindCSS and StimulusJS
-
TailwindCSS on Rails 03: Responsive content layout. Grid, Flex, Center
-
TailwindCSS on Rails 02: Responsive dropdown menu
-
TailwindCSS on Rails 01: Responsive layout with sidebar
-
Image scraping with Rails. Save image from URL to ActiveStorage
-
Finding similar/related posts/products based on matching tags
-
Use Sidekiq in Development and Production
-
Use YouTube API with Ruby on Rails
-
Testing Devise authentication with Minitest and Faker
-
Broadcaster pattern for Turbo Streams Broadcasts
-
Send SMS with Twilio in Rails
-
Realtime Online User Tracking with Actioncable and Rails
-
Live Visit Count for website or page. ActionCable, Turbo Broadcasts, Kredis
-
How to use the Browser Geolocation API with Rails
-
gem MapkickJS for beautiful JavaScript maps with one line of Ruby
-
gem Geocoder - calculate coordinates, distances, search nearby
-
Parse JSON with Ruby on Rails
-
Parse YAML with Ruby on Rails
-
Browser tab title notifications
-
Use Service Objects
-
Slim Select with StimulusJS
-
Highlight @ mentions, convert # hashtags to links
-
RGB complimentary colors (opposite colors) in Ruby
-
Autogenerate and store images with Rmagick and Imagemagick with ActiveStorage
-
Link to previous page if internal request
-
Double loading StimulusJS controllers
-
Export CSV from Rails
-
Import CSV to Rails
-
Load partials async with Turbo Frames
-
Mass update selected records
-
Classless CSS frameworks
-
Semantic HTML in Ruby on Rails
-
gem acts_as_votable 4: cached votes, vote scopes, Hotwire
-
Live form validations and error rendering. Live markdown preview
-
🛑🇷🇺 Block access to your software from Russia IPs
-
TIL: Pass a Hash to Flash
-
#21 Hotwire Turbo: The one right way to do Modals
-
Gem data-migrate - an essential gem!
-
TIP: if-else, case-when, hash?
-
TIP: Rendering partials and collections
-
#17 Turbo Streams: Broadcasts
-
Emoji select with `gem unicode-emoji`
-
TIL: HTML tags I did not know about
-
TIL: date_select VS date_field
-
#16 Turbo Streams: Edit Modal.
-
Tip: Automatically annotate rails views
-
#15 Turbo Streams CRUD
-
StimulusJS autopaste controller
-
Make Devise work with Hotwire Turbo and Rails 7
-
Pretty URLs with gem friendly_id
-
RE-REVISED: Polymorphism 101. Part 5 of 3. Even better Polymorphic Comments
-
TIP: URL helper: Redirect to previous page
-
Validate uniqueness on the database level
-
#13 Turbo Streams: 5 ways to render View Components
-
Paginate/Tab records by any attribute
-
#12 Turbo: Pagination with gem Pagy, ViewComponent without page refresh
-
#11 Turbo Frames - Load content only when a dropdown is opened
-
#10 Turbo Streams - Create and stream records. Flash messages. Reusable Streams
-
Gem Meta Tags for better SEO
-
#9 Turbo Frame Tabs
-
#8 Hotwire Turbo: Tabbed content with Turbo Streams
-
ONLY Omniauth login with Devise (without email registration)
-
Tiny Tip: Inline if-else statements
-
#7 Hotwire Turbo Frames: Search without page refresh. Stimulus. Ransack
-
5 ways to associate current_user with record on create
-
Generate Entity-Relationsip-Diagrams (ERD) from a Rails app
-
#6 Hotwire Turbo: Increment likes count without any page refreshes
-
#5 Turbo: Button to update status and refresh frame. Edit inboxes inline
-
Tiny Tip: URL and link helpers.
-
#4 Turbo Frame - Sort records without page refresh. Sorting without a gem.
-
Tiny Tip: Debug current request in views
-
Current attribute. Access current_user from model
-
#3 Turbo: Keep the audio playing after changing the page with data-turbo-permanent
-
#2 Turbo Stream inboxes to inboxes/index. Lazy load form. Replace form on submit.
-
#1 Turbo Stream messages to inbox. Render errors
-
Install and use ActiveAdmin in 13 steps
-
HTTP Basic authentication
-
Generate a BARCODE for a Product
-
Generate a QR code for a Product and store it in ActiveStorage. Service Objects
-
Select or Create Tags with Tom-Select without jQuery (VanillaJS)
-
Gem Traceroutes - find routes without controller actions, actions without routes
-
Gem Public Activity: Complete guide to total surveillance
-
Export from database table to Excel Workbook. Level 1
-
Quick tip: Helper to display different text based on time of day
-
gem Draper: abstract view logic from the model
-
Boolean Checkbox array - easier than you think!
-
Procfile: automatically run migrations on Heroku deploy
-
Install and use Rubocop - TLDR
-
Rails authorization with gem Pundit
-
Rails enums - different approaches
-
Ruby on Rails 6+: install jQuery with yarn and webpacker
-
gem acts_as_votable 3: vote search scopes
-
config_for settings.yml
-
REVISED: Polymorphism 101. Part 4 of 3. Polymorphic Comments
-
Quick tip: Permit params by current user roles
-
Edit Rolify roles for a User
-
Markdown Level 2. Style markdown css with gem Rouge
-
Migrating from Bootstrap 4 to Bootstrap 5
-
Add Markdown to your Rails app
-
Role scopes with gem Rolify
-
Install and use gem pg_search
-
Stimulus Rails - Count characters in input field (+ add css if > 140 characters)
-
Stimulus Rails - Count characters in input field
-
Install Stimulus on Ruby on Rails 6
-
Display or hide div based on field input (RoR + JS)
-
Add social log in with Github (Omniauth)
-
Complete guide to generating PDFs with gem wicked_pdf
-
install and troubleshoot mysql
-
gem acts_as_votable 2: reddit-style up and down voting
-
gem acts_as_votable 1: Like and Dislike posts with Vanilla JS
-
Install Bootstrap 5 with Ruby on Rails 6+. Yarn, Webpack. Popovers, Tooltips. StimulusJS
-
Telegram Part 3. Authentication. Bot to send private messages
-
Telegram Part 2. Notification for CRUD actions
-
Search field without gems
-
counter_cache - count how many children a records has
-
Telegram Part 1. Button to send group messages
-
Button to update status attribute of a table
-
Polymorphism 101. Part 3 of 3. ActsAsTaggable without a gem. SelectizeJS
-
Polymorphism 101. Part 2 of 3. Polymorphic Payments inside-out.
-
Polymorphism 101. Part 1 of 3. Polymorphic Comments.
-
Custom scaffold templates
-
HAML or ERB for Ruby on Rails development in 2021?
-
Tracking Online Users using Timestamps