How to build a complete, real-world application from scratch with Ruby on Rails step by step.
A lot of Ruby code is "magic". We'll explain the magic and see how it works using the powerful tools Ruby gives us.
Accept subscription and one-time payments with Stripe in your Rails apps
Expert advice on keeping Rails apps organized and fast.
Cheap, easy hosting for Ruby and Rails apps.
Launch your product business way faster with our SaaS template.
A weekly podcast on web development and building products with Ruby, Rails, Javascript, and more.
A few of the Open Source projects we do at GoRails.
Build a Ruby on Rails app in 48 hours with us.
Help Junior developers get hired by sharing small projects to build their resume with paid work.
Find your next Ruby on Rails Job.
Rails apps and Rubygems might need to support multiple databases. We can use the DATABASE_URL environment variable to quickly swap out the database that Rails uses in CI, local testing, and more.
In this episode we will look at how to use Webmock to test our API Clients.
You might not realize your code has concepts that need to be extracted. Sometimes it's as simple as a small decorator around a Ruby class as we'll see in this lesson.
Whisper.cpp is an open source C/C++ port of OpenAI Whisper that we can use with Ruby for transcribing our videos. We'll also look at how ActiveStorage runs executables like ffmpeg to see how it works behind the scenes just like with what we're building.
Using Base62, we can take an Integer ID and compress it for short codes in our URLs
Decoding our Base62 encoded short codes is the next challenge
Now that we have Base62 encoding and decoding, we can tell Rails to use this for generating URL params and find
Next, we can build redirecting Short URLs to the URL on the Link
It's time we start cleaning up the design and UI for a better experience with our URL shortener.
Now that we've got a thorough test suite, we want to make sure tests are run anytime we push code to GitHub. We can setup GitHub Actions to test our code and automatically deploy it when tests pass.
Congratulations! We're all done! We now have a fully featured URL shortener that does everything we need plus some cool extras.
Next up, we need to be able to edit and update the passwords in our password manager application
Last but not least, let's update the Video scaffold UI to be more polished so we can trigger syncs and
Next, we need to sync videos using our API client which we'll do with a higher level abstraction to integrate with the API.
Now that we can sync videos to our local database, we need to run this on a regular schedule. We'll use SolidQueue's recurring tasks feature to create cron jobs that run periodically for syncing.
In this lesson, we'll create a job to download a video, extract the audio with ffmpeg, transcribe the video with Whisper, and upload the captions to our hosting provider.
First things first, we need a Link model to store our
Analytics for links is a useful feature so lets record Views for links and show them in a graph
Copy to clipboard is a required feature for a URL shortener. We'll implement this with two JavaScript libraries (clipboardjs and tippy.js) and a Stimulus controller.
We're ready to deploy our URL Shortener to production and we're going to do that using Hatchbox.io
Join 85,376+ developers who get early access to new tutorials, screencasts, articles, and more.
We care about the protection of your data. Read our Privacy Policy.