An open API service indexing awesome lists of open source software.

Projects in Awesome Lists by driftingruby

A curated list of projects in awesome lists by driftingruby .

https://github.com/driftingruby/042-fullcalendar

Learn how to incorporate FullCalendar into your Ruby on Rails application with listing and creating events. Using unobtrusive javascript, we can create a fast interactive calendar.

Last synced: 06 Oct 2025

https://github.com/driftingruby/template

Base template for "all" Drifting Ruby episodes

Last synced: 12 Oct 2025

https://github.com/driftingruby/186-nested-forms-from-scratch-with-stimulusjs

Using StimulusJS controllers, adding nested forms to a Rails application is easy and unobtrusive. In this episode, we look at an alternative way of creating nested forms without the Cocoon gem.

javascript ruby rubyonrails stimulusjs

Last synced: 06 Oct 2025

https://github.com/driftingruby/051-rails-api-authentication-with-jwt

Using the knock gem, we will add JWT Authentication to our Rails API Application.

Last synced: 10 Sep 2025

https://github.com/driftingruby/275-hotwire

Hotwire is the newest magic which takes a different approach to building modern web applications without using much JavaScript.

hotwire ruby rubyonrails stimulus turbo

Last synced: 06 Oct 2025

https://github.com/driftingruby/294-building-a-questionnaire

Using StimulusJS and nested forms, we create the first parts of a questionnaire. Dynamic surveys can be difficult to architect and maintain. In this episode, we take a simple approach to creating questionnaires.

hotwire questionnaire ruby rubyonrails stimulusjs survey turbo

Last synced: 06 Oct 2025

https://github.com/driftingruby/070-nested-forms-from-scratch

Learn how to handle multiple models in a single form with accepts_nested_attributes_for and learn how to add and remove nested records through JavaScript.

Last synced: 10 Jul 2025

https://github.com/driftingruby/154-service-objects-for-api-interactions-with-twilio

In this episode, learn how to extract the interactions with an external API into a service object so that code is isolated and interchangeable.

rails ruby ruby-on-rails service-objects

Last synced: 05 Apr 2025

https://github.com/driftingruby/029-infinite-scrolling

Infinite scrolling is now a common feature and there are several cases where it is really useful. For instance there are some websites where we simply can’t imagine a good pagination system, like Twitter or even Facebook.

Last synced: 05 Apr 2025

https://github.com/driftingruby/046-two-factor-authentication

Add multi factor authentication to your existing authentication solution. This gives your users the option to increase the level of security to their account and help prevent unauthorized access.

Last synced: 05 Apr 2025

https://github.com/driftingruby/067-decoding-and-interacting-with-barcodes

Using the QuaggaJS Library, learn how to scan and decode barcodes with your Ruby on Rails application. Using provided callbacks, interact with controller actions to provide a seamless experience.

Last synced: 05 Apr 2025

https://github.com/driftingruby/191-inline-editing-records

Using Rails UJS, we create an interactive row editing solution without using any kind of Javascript frameworks.

javascript rails-ujs ruby ruby-on-rails

Last synced: 05 Apr 2025

https://github.com/driftingruby/082-datatables

The DataTables Javascript library creates a powerful display of your application's data. Some of the features include pagination, server side processing, sorting and search.

datatables javascript rails ruby ruby-on-rails

Last synced: 31 Jul 2025

https://github.com/driftingruby/065-searchkick-and-elasticsearch

Add full text searching using Searchkick and Elasticsearch. Here I will show the steps involved in adding this search to an existing application and a sample of autocomplete functionality.

Last synced: 05 Apr 2025

https://github.com/driftingruby/035-importing-and-exporting-csv-data

Basics on importing and exporting CSV Data using Ruby and without gems.

Last synced: 05 Apr 2025

https://github.com/driftingruby/033-progressive-render

Slow content got you down? Load it later! Use this gem to defer loading of portions of your page until after load. They will be fetched via AJAX and placed on the page when ready.

Last synced: 09 Apr 2025

https://github.com/driftingruby/395-transcribing-with-artificial-intelligence

In this episode, we look at creating an audio transcription service which allows files uploaded from Active Storage to be transcribed with Artificial Intelligence. However, there are a lot of considerations around the approach from both a performance and thread safety perspectives.

artificial-intelligence openai ruby ruby-on-rails whisper

Last synced: 30 Oct 2025

https://github.com/driftingruby/317-error-tracking-from-scratch

In this episode, we look at creating a middleware to track errors to publish to another error "from scratch" error monitoring application.

error-tracking middleware rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/074-page-specific-javascript-in-ruby-on-rails

Sometimes you may find yourself with an application that has javascript that needs to execute only on a specific page. This episode lays the foundation to easily manage page specific javascript.

Last synced: 19 Jul 2025

https://github.com/driftingruby/085-working-with-subdomains

Learn to create a multi-tenant application where access to tenants are determined by the subdomain.

multitenancy ruby-on-rails

Last synced: 30 Oct 2025

https://github.com/driftingruby/094-recurring-events-on-full-calendar

Create recurring events and interact with them on FullCalendar.

Last synced: 05 Apr 2025

https://github.com/driftingruby/290-multiple-resources-with-devise

Sometimes we get into situations where our applications requires a different type of user account which wouldn't really fit into a role. So, in this episode we look at creating multiple resources for authentication with Devise.

Last synced: 10 Jul 2025

https://github.com/driftingruby/047-authorization-with-pundit

Prevent unauthorized access to your application with Pundit; an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access.

Last synced: 14 Jul 2025

https://github.com/driftingruby/335-hotwire-modals

In this episode, we look at creating an unobtrusive and efficient way to launch Bootstrap modals using Turbo and Stimulus.

hotwire stimulusjs turbo

Last synced: 06 Jan 2026

https://github.com/driftingruby/071-nested-forms-with-cocoon

Using the unobtrusive gem, Cocoon, learn how to handle multiple models in a single form with accepts_nested_attributes_for.

Last synced: 09 Apr 2025

https://github.com/driftingruby/086-plotting-points-on-a-map-from-scratch

Using the Google Maps Javascript API, learn how to plot markers onto a map. Load markers and info windows through AJAX calls to your Rails JSON API.

google-maps-api google-maps-javascript json-api rails ruby-on-rails rubyonrails

Last synced: 09 Apr 2025

https://github.com/driftingruby/041-dry-up-your-javascript

Learn how avoid duplicate code to reuse existing javascript.

Last synced: 09 Apr 2025

https://github.com/driftingruby/002-impressionist

A lightweight plugin that logs impressions per action or manually per model

Last synced: 09 Apr 2025

https://github.com/driftingruby/010-invisible-captcha

Part of a good User Experience is making your application easy to use for your users. However, a few bad apples often cause a hinderance to your UX/UI by the addition of Captchas. Learn how to create invisible captchas to protect your forms while delivering a good UX.

Last synced: 09 Apr 2025

https://github.com/driftingruby/103-sample-data-with-factory-bot-and-faker

Factory Bot is a fixtures replacement which can generate the needed records directly in the tests. Faker can be used to create fake data for these records.

rails ruby testing

Last synced: 09 Apr 2025

https://github.com/driftingruby/201-working-with-large-data

When database tables get large, things can slow down significantly. In this episode, we look at a few things which helps keep databases performant and the client side responsive.

Last synced: 09 Apr 2025

https://github.com/driftingruby/028-wysiwyg-with-trix

Compose beautifully formatted text in your web application. Trix is a WYSIWYG editor for writing messages, comments, articles, and lists.

Last synced: 09 Apr 2025

https://github.com/driftingruby/039-action-cable-part-3-securing-your-websockets

Using authentication and authorization, lock down your ActionCable WebSockets so that messages are only sent and received to the intended users.

Last synced: 09 Apr 2025

https://github.com/driftingruby/045-authentication-crash-course-with-devise

Devise is a flexible authentication solution for Rails based on Warden. Learn how to add a stable authentication solution like Devise to your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/326-dabbling-with-turbo

In this episode, we explore some of the new features with Turbo and interactions that we can do with little or no javascript.

hotwire rails turbo

Last synced: 09 Apr 2025

https://github.com/driftingruby/378-stimulus-outlets-api

Outlets let you reference Stimulus controller instances and their controller element from within another Stimulus Controller by using CSS selectors. In this episode, we look at a simple example and then refactoring some older code where we used some workarounds to communicate with other stimulus controllers.

Last synced: 09 Apr 2025

https://github.com/driftingruby/043-antivirus-uploads-with-clamby

Using ClamAV, scan files uploaded to your application for viruses. In the event of a virus learn how to gracefully handle the infected file and notify the user.

Last synced: 09 Apr 2025

https://github.com/driftingruby/061-periodic-tasks-with-sidekiq-cron

Using a third-party add-on, sidekiq-cron, we can create periodic tasks to extend the functionality of sidekiq.

Last synced: 09 Apr 2025

https://github.com/driftingruby/286-turbo-native-for-ios

In this episode, we look at modifying our Rails application and building a hybrid native application for iOS using Hotwire.

Last synced: 16 Oct 2025

https://github.com/driftingruby/092-restricting-access-by-ip-address

Learn to lock down your application or parts of your application by IP Addresses.

ip-address rails ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/050-rails-api-active-model-serializers

Using ActiveModel::Serializer, learn how to create the JSON responses for your Rails API application. ASM is a great object oriented approach to building a JSON API.

Last synced: 04 Sep 2025

https://github.com/driftingruby/080-routing-partials

The routes file can grow to be unmaintainable and messy. Learn to keep things organized by extracting out blocks of routes into their own files.

Last synced: 09 Apr 2025

https://github.com/driftingruby/236-google-maps-api-with-stimulusjs

Add unobtrusive maps to your application using StimulusJS to tie in Google Maps Javascript API and Places API.

google google-maps-api google-maps-javascript-api javascript rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/104-speeding-up-tests

Slow tests can slow down your development process. Using parallel_tests, you can speed up your test suite by multiple threads and running the tests in groups.

ruby ruby-on-rails rubyonrails test-automation

Last synced: 09 Apr 2025

https://github.com/driftingruby/027-wysiwyg-with-summernote

Integrate Summernote WYSIWYG Editor into your application. Learn how to use AJAX callbacks to filestore your images instead of database Base64.

Last synced: 19 Oct 2025

https://github.com/driftingruby/382-custom-turbo-stream-actions

With the release of Turbo 7.2, we gained the ability to create custom actions in Turbo. This allows us to trigger functions on the client side that would have been difficult or cumbersome to do in the past. In this episode, we look at setting up custom actions and how to use them.

Last synced: 09 Apr 2025

https://github.com/driftingruby/307-hotwire-turbo-replacing-rails-ujs

In this episode, we look at some common functionality that we got with Rails UJS and what it looks like to reimplement these with Hotwire's Turbo and StimulusJS.

hotwire javascript rails rails-ujs stimulusjs turbo

Last synced: 09 Apr 2025

https://github.com/driftingruby/249-soft-delete-with-discard

Soft deletes for ActiveRecord done right.

Last synced: 09 Apr 2025

https://github.com/driftingruby/408-broadcasting-progress-from-background-jobs

In a previous episode, we had created a custom ActionCable channel to assist in broadcasting updates from a background job. With the introduction of Turbo, we can simplify this process as we look at a few different approaches in displaying a progress bar with real time updates from background jobs.

background hotwire-stimulus hotwire-turbo jobs real-time-progress-bar

Last synced: 09 Apr 2025

https://github.com/driftingruby/100-basic-testing-introduction-in-rails

Using the Rails 5.1.X defaults, we have a look at what is configured and explore the different types of tests; using the provided MiniTest and Capybara.

rails testing

Last synced: 12 Jun 2025

https://github.com/driftingruby/158-grab-bag-of-ruby-and-ruby-on-rails-tricks

In this episode, we look at various tips and tricks.

ruby ruby-on-rails tips-and-tricks

Last synced: 26 Aug 2025

https://github.com/driftingruby/096-auditing-with-paper-trail

Using the paper_trail gem, track changes to model records for auditing purposes and rollback changes when required.

Last synced: 25 Jun 2025

https://github.com/driftingruby/044-capturing-signatures-with-signature-pad

Using the Javascript Library, Signature Pad, learn how to capture user signatures and store them within your Ruby on Rails application.

Last synced: 26 Oct 2025

https://github.com/driftingruby/058-mail-previews-and-templates

Using ActionMailer::Preview preview email samples without sending them. Using Zurb's Foundation for Emails, learn how to use email templates with the Ink framework.

Last synced: 30 Jul 2025

https://github.com/driftingruby/005-florrick

This is a Rails library which integrates with Active Records and provides some awesome user-initiated string interpolations for your web apps. For example, have you ever needed to allow users to insert their own variables into e-mail templates or messages?

Last synced: 04 Aug 2025

https://github.com/driftingruby/004-serialized-attributes

Store multiple attributes and values using a text column. Not for everyday use, but has situations where it can save on the number of columns and/or models needed to accomplish a task.

Last synced: 02 Jul 2025

https://github.com/driftingruby/037-actioncable-part-1-configuration-and-basics

A walkthrough on configuring ActionCable with Rails 5. Learn how to configure your mount points and the basics of using ActionCable with your Rails application.

Last synced: 04 Jul 2025

https://github.com/driftingruby/277-diving-into-hotwire

In this episode, we look at the installation scripts of Hotwire and get a better understanding of what they're doing in order to integrate it into our applications more efficiently.

Last synced: 09 Apr 2025

https://github.com/driftingruby/223-like-relationships-and-global-id

In this episode we create a Like/Unlike system where users can like posts and use Global ID to obfuscate IDs.

controllers global-id models relationships routes ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/312-importmaps-in-rails-7

Import maps let you import JavaScript modules using logical names that map to versioned/digested files – directly from the browser. This will be a default in the upcoming Rails 7.

importmaps ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/099-creating-a-basic-ruby-gem

Gems are a packaged library of functions that can extend your application or provide other features to your system. Learn to create and publish a ruby gem.

ruby ruby-gem ruby-gems rubygems

Last synced: 12 Aug 2025

https://github.com/driftingruby/083-autocomplete-with-html-results

Working with an autocomplete can be very simple. However, things get complicated when you try to use HTML markup in the displayed results. Learn how to use HTML markup within your autocomplete results!

javascript jquery jquery-ui rails ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/108-tracking-errors-with-sentry

Sentry is an Open Source error tracking that helps developers monitor and fix crashes in real time. Learn how to add and configure Sentry to your application.

error-tracking rails ruby-on-rails sentry-io

Last synced: 15 Oct 2025

https://github.com/driftingruby/068-working-with-internationalization

Adding translations into your website does not have to be hard. With Rails built in I18N functionality, we gain access to many helpers and conventions that makes it a much easier task. Learn how to add I18N into your Rails application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/076-javascript-select-form-fields-with-chosen

Chosen is a jQuery plugin that makes long, unwieldy select boxes much more user-friendly. Learn how to use Chosen in a few different ways in this episode; Rails form builder and Simple Form.

Last synced: 09 Apr 2025

https://github.com/driftingruby/073-pagination-with-kaminari

When displaying a significant number of records, it is often a basic functions in a web application is to paginate the records and load them as requested.

Last synced: 01 Aug 2025

https://github.com/driftingruby/075-drag-and-drop-with-interact-js

Using Interact.js to create draggable and droppable items in our view, we can use AJAX callbacks on events to interact with our Ruby on Rails application. Also, learn how to use Ruby Assets to manage our Javascript Libraries.

javascript rails-asset-pipeline ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/063-client-side-encryption

Add an extra level of security to your application with client side encryption. Even over an SSL connection, there are attacks which could expose your users' sensitive information. Using JSEncrypt, learn how to encrypt on the client side and decrypt on the server side.

Last synced: 09 Apr 2025

https://github.com/driftingruby/059-background-jobs-with-sidekiq

Sidekiq is a Ruby Background Processor that manages its queue with a Redis service. Learn the basics of Sidekiq and integrating it with ActiveJob.

Last synced: 09 Apr 2025

https://github.com/driftingruby/052-rails-api-throttling-with-rack-attack

Save expensive calculation time using Rack::Attack, we will learn how to limit requests coming into our application. This gem not only limits requests, but can be used to blacklist or whitelist users as well.

Last synced: 31 Aug 2025

https://github.com/driftingruby/079-mountable-engines

Mountable Engines are a great way to extract code into its own namespace and allow the code to be reused in other applications. Other popular gems that are mountable engines are Devise and Doorkeeper.

rails-engine ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/062-security-and-static-code-analyzers

Whether your preparing for a third-party security scan or already doing peer code reviews, you should always run brakeman scanner on your application to identify potential security vulnerabilities.

Last synced: 09 Apr 2025

https://github.com/driftingruby/055-charts-and-graphs

Learn how to use one of three charting libraries, Chart.js, Highcharts, or Google Charts, using the Chartkick gem to create simple and unobtrusive charts in your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/056-redis

Redis within a Ruby on Rails application has many benefits. Learn to interact with Redis Server and set it up for caching within your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/057-getting-started-ruby-on-rails-architectural-overview

For beginners, learn the basic structure of a Ruby on Rails application and the request lifecycle. Learn how different components of a Rails application interact with each other.

Last synced: 09 Apr 2025

https://github.com/driftingruby/049-rails-api-basics

A brief introduction on Rails API. Learn how to create an API application and setup the routes. This episode is paving the way for more in depth looks into Rails API.

Last synced: 09 Apr 2025

https://github.com/driftingruby/032-client-side-validations

Give early warning to users of form errors before they submit. With client side validations, the user can correct any errors prior to submitting the form.

Last synced: 09 Apr 2025

https://github.com/driftingruby/003-actioncable-in-production

Taking a look at ActionCable and switching from Puma to Thin. On server reboot, spin up the ActionCable service.

Last synced: 09 Apr 2025

https://github.com/driftingruby/016-complex-strong-params

Make your strong parameters do more by extracting the logic in order to maximize the ability and security of your application.

Last synced: 06 Oct 2025

https://github.com/driftingruby/066-managing-servers-with-ansible

A look into the Drifting Ruby network architecture and how I manage deployments with Ansible.

Last synced: 23 Jan 2026

https://github.com/driftingruby/162-creating-a-simple-slack-bot

Slack is a great application to keep in contact with friends, coworkers and a community. With bots, its capabilities are endless. In this episode, learn how to create a Slack Bot to interact with.

Last synced: 26 Oct 2025

https://github.com/driftingruby/090-benchmarking-and-refactoring-the-content-for-view-helper

In a recent blog post, we looked into the content_for view helper to render breadcrumbs. Once we got the feature working, it's time to refactor the feature to lower technical debt.

benchmarking performance-analysis refactoring ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/022-faye-websockets-part-1

Using WebSockets, we are able to create a realtime notification between browsers. Useful for in-app messaging, chats, and more! Learn how to use Faye's Publish and Subscribe methods. I believe that this paves the way for successfully using and learning the upcoming ActionCable.

Last synced: 04 Sep 2025

https://github.com/driftingruby/078-counter-caching-associations

When displaying a count of records, this will generate extra SQL Queries. Learn how to reduce the number of SQL queries called with counter caching the number of associated records.

Last synced: 09 Apr 2025

https://github.com/driftingruby/081-bootstrap-framework-and-ruby-on-rails

Using Bootstrap in your application has become much more simple. Also learn to create some helper methods to make working with Bootstrap much easier.

Last synced: 09 Apr 2025

https://github.com/driftingruby/214-plugging-in-anycable

ActionCable can handle quite a bit of traffic, but it gets to a point where it can become a burden on the server. With AnyCable, we can not only handle more traffic, but it is also lighter on the resources.

Last synced: 25 Sep 2025

https://github.com/driftingruby/494-outlets-and-permanent-tags

In this episode, we'll explore how we can add a "global" music player that will persist across different pages. Our approach will be unobtrusive and implemented in a maintainable way.

outlets rails stimulusjs

Last synced: 29 Jul 2025

https://github.com/driftingruby/072-intro-to-docker-on-windows

Developing a Ruby on Rails application on Windows can be difficult, but doesn't have to be with Docker. Learn how to use Docker to create isolated containers and get them to talk with the Rails app and passed through to the local computer.

Last synced: 09 Apr 2025

https://github.com/driftingruby/013-uploading-files-with-refile

Refile is a modern file upload library for Ruby applications. It is simple, yet powerful. This episode covers the basics of uploading and displaying images. Next episodes will cover protecting files and progress bars.

Last synced: 23 Jun 2025

https://github.com/driftingruby/023-uuid-in-rails-with-activeuuid

Some cases require non-auto incrementing primary keys as well as multiple master writes without id conflicts. With ActiveUUID, we can configure our table's primary key with confidence without added complexity.

Last synced: 03 Sep 2025

https://github.com/driftingruby/102-feature-testing-with-capybara

Create Acceptance Tests or Feature Tests to extend your automated tests with browser testing. It can help tests some areas that cannot be reached with other types of tests.

Last synced: 21 Jan 2026

https://github.com/driftingruby/313-esbuild-for-rails

Use esbuild to bundle your JavaScript, then deliver it via the asset pipeline in Rails. This gem provides an installer to get you going with esbuild in a new Rails application.

esbuild javascript ruby ruby-on-rails

Last synced: 26 Jul 2025

https://github.com/driftingruby/205-push-notifications-with-actioncable

In this episode, we look into using Push Notifications within our Rails application and then using ActionCable to broadcast Push Notifications to the user.

Last synced: 02 Jul 2025

https://github.com/driftingruby/098-polymorphic-associations

Advancing from Single Table Inheritance, learn how Polymorphic Associations differ and tricks to simplify their usage.

polymorphic-relationships ruby ruby-on-rails

Last synced: 01 Nov 2025