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: 05 Apr 2025
https://github.com/driftingruby/template
Base template for "all" Drifting Ruby episodes
Last synced: 09 Apr 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: 24 Jan 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/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: 24 Jan 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: 24 Jan 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/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/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/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/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/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/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/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: 15 Feb 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/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/085-working-with-subdomains
Learn to create a multi-tenant application where access to tenants are determined by the subdomain.
Last synced: 15 Feb 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.
Last synced: 27 Mar 2025
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/041-dry-up-your-javascript
Learn how avoid duplicate code to reuse existing javascript.
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/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/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: 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/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/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/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/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/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/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/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/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: 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.
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/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/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/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/249-soft-delete-with-discard
Soft deletes for ActiveRecord done right.
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.
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/002-impressionist
A lightweight plugin that logs impressions per action or manually per model
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.
Last synced: 12 Jun 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/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/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/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/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: 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.
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: 09 Apr 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: 09 Apr 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.
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: 09 Apr 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: 05 Apr 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/038-action-cable-part-2-more-complex-example
Extending the previous episode, we look into making a realtime poll application where users can get live feedback on voting.
Last synced: 09 Apr 2025
https://github.com/driftingruby/014-securing-file-uploads
Be default, Refile does not have a way to secure file downloads. It relies on a generated hash that is unknown to users unless the page renders that image or has a download to that file. This is okay sometimes, however, protecting the file from being downloaded for those who have the URL is a bit more involved.
Last synced: 09 Apr 2025
https://github.com/driftingruby/077-cropping-images-with-jcrop
Extend your image upload functionality with JCrop. Learn to redirect the user to a crop page once they have uploaded their image and save versions of the cropped images.
image-crop image-processing image-upload ruby-on-rails
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/018-caching-with-dalli
Dalli is a great interface for Memcached through Ruby.
Last synced: 09 Apr 2025
https://github.com/driftingruby/088-virtual-columns-with-json-data-types
Continuing from Episode #87, we take a deeper dive into virtual columns in Rails 5.1 and use them to parse JSON Data Types with adding indexes to the virtual column.
Last synced: 09 Apr 2025
https://github.com/driftingruby/020-not-rjs-and-turbolinks
Using Javascript responses, we can make our Rails application have a quick and responsive Single Page Application feel to it.
Last synced: 13 Sep 2025
https://github.com/driftingruby/024-fragment-caching
Make your application faster by leveraging memory and caching fragments of your view.
Last synced: 09 Apr 2025
https://github.com/driftingruby/093-recurring-events-with-ice-cube
ice_cube is a ruby library for easily handling repeated events and schedules.
Last synced: 09 Apr 2025
https://github.com/driftingruby/245-tracking-changes-on-action-text
Without using any gems, we look at tracking changes within Action Text. It seems like a simple thing, but challenges arise through several layers of abstraction due to the flexibility that Action Text provides.
action-text ruby ruby-on-rails versioning
Last synced: 03 Aug 2025
https://github.com/driftingruby/019-deleting-and-undeleting-with-paranoia
When your app is using Paranoia, calling destroy on an ActiveRecord object doesn't actually destroy the database record, but just hides it.
Last synced: 09 Apr 2025
https://github.com/driftingruby/012-static-pages-with-high-voltage
Creating Static Pages within your Rails application is easy and configurable with High Voltage.
Last synced: 09 Apr 2025
https://github.com/driftingruby/017-dependent-fields-rails
Using unobtrusive javascript, we can hide certain fields on forms based on the selected values of other fields.
Last synced: 09 Apr 2025
https://github.com/driftingruby/015-refile-uploads-with-progress-bar
Adding progress bars to your Refile uploader is easy thanks to the included javascript library from Refile. Learn how to add progress bars to your application.
Last synced: 09 Apr 2025