The Studio Blog
What's up in the Studio?
Phoenix Course Update #4: Live Actions
December 18, 2024
Just in time for your holiday break, today we added 3 new modules on live actions. 💥
Phoenix Course Update #3: Ecto Changesets and More!
December 09, 2024
Today we added 7 new modules on async data fetching, forms, Ecto changesets, and more! 🔥
Phoenix Course Update #2: Live Patching
November 22, 2024
Today we added 2 new modules on updating the URL with filter criteria and live patching. ⚡️
Phoenix Course Update #1: Ecto!
November 13, 2024
Today we added 7 new modules all about Ecto: schemas, migrations, queries, and more. 🥁
Full-Stack Phoenix Course Now Available In Early Access
November 01, 2024
It's officially launch day! 🚀
Full-Stack Phoenix Course Launches This Fall
September 18, 2024
The course is now content complete. Hurray! 🙌
Upcoming Phoenix, Ecto, and LiveView Course
March 24, 2024
It's time to let the cat out of the bag! 😸
Ruby Course Update and What's Next
September 27, 2023
Our long-time popular Ruby course has been entirely updated for Ruby 3.2! 👩🚀
Updated Phoenix LiveView Course Officially Launches!
April 06, 2023
We're excited to announce that our updated Phoenix LiveView course is now out of early access! 🥳
LiveView Course Update #6: JS Commands, JS Hooks, and Key Events
March 31, 2023
We're on the home stretch of wrapping up early access to our Phoenix LiveView course! Today we added 5 new videos.
LiveView Course Update #5: Live Auth, Sessions, and Presence
March 22, 2023
Robust authentication! Multi-user, real-time presence updates! You'd settle for nothing less in today's web apps, right?
LiveView Course Update #4: Live Components and Real-Time Updates
March 15, 2023
Today we added 3 new videos on designing Live Components and using Phoenix PubSub to broadcast real-time updates to multiple LiveViews.
LiveView Course Update #3: Live Ecto Forms, Validations, Streams, and More!
March 08, 2023
Today we added 5 new videos on live Ecto forms, validations, streams, and toggling state using LiveView.
LiveView Course Update #2: Live Nav, Sorting, and Pagination
February 23, 2023
This latest batch of videos takes us through live navigation, sorting, and pagination using LiveView.
LiveView Course Update #1: Filtering and Function Components
February 16, 2023
This week's batch of videos are all about filtering and function components.
LiveView Course Updated and Available in Early Access
February 07, 2023
Our Phoenix LiveView course has been updated and is now available in early access! This course is as fresh as it gets.
Rails 7 Course Update and What's Next
August 15, 2022
Our popular Ruby on Rails course has been entirely updated for Rails 7! 🚇
Hotwire Course Officially Launches!
April 19, 2022
We're excited to announce that our Hotwire for Rails Developers course is now out of early access! 🎉
New Hotwire Video: Stimulus Targets, Values, and More!
April 06, 2022
Want to invite your favorite JavaScript library to the Hotwire party? We thought so! 🎉
More Hotwire Videos
March 17, 2022
We added new videos to our Hotwire for Rails Developers course today! Quite a few of you asked for more examples using Stimulus. So we look at three more Stimulus examples in this week's round of new videos. 🙌
Hotwire Course Update: Forms and Lists
February 24, 2022
This latest batch of videos take us through hotwiring the second page of our lil' fishing app. We build on what we've already learned about Turbo Frames and Streams by applying them in new situations with forms and lists.
Hotwire Course Early Access is Open
February 02, 2022
Our Hotwire for Rails Developers course is now available in early access! You'll learn exactly how to use Hotwire to improve the speed and responsiveness of a real Rails app. No hype or hand-waving here.
We "hotwired" a Rails app. Want to see how?
August 10, 2021
Are you in the same boat we were? You've heard about Hotwire but you're frustrated by not really knowing when, where, why, or how to use it. 😫 We can change that!
How To Avoid Getting Electrocuted With LiveView Authentication
June 10, 2021
Have you heard the story about the boilermaker who is hired to fix a streamship boiler system? It's all about knowing where to tap!
LiveView Course Update: Modal Components
April 13, 2021
We excited to announce that with this week's release of three new videos on building a custom modal component that our Phoenix LiveView course is now content-complete and out of early access! 🙌
LiveView Course Update: File Uploads
March 30, 2021
LiveView now supports file uploads right out of the box. It's an impressive piece of engineering! To really get a handle on file uploads, we built an application that lets you share photos of your desk.
LiveView Course Update: Keyboard Interactivity
March 02, 2021
Your first thought might be that key events are mostly useful when building a game with LiveView. But key events are also super handy when building web apps.
It's Live: LiveView Pro Package Early Access!
January 14, 2021
Today we opened early access for the Pro Package of our Phoenix LiveView course. 🔥
LiveView Pro Course Update: Testing
December 08, 2020
If you've done any browser-based testing, then you're in for a real treat testing LiveViews! 🍫
LiveView Pro Course Update: Authentication
November 06, 2020
If you're one of the many folks who've asked us about LiveView and authentication, then this one's for you! 🔒 👍
LiveView Pro Course Update: Mapping Demo
October 23, 2020
We've been working on a mapping example that we think really showcases some unique JS interop features of LiveView.
LiveView Pro Course Update: Charting Demo
October 16, 2020
Many of you asked for an example of a LiveView that charts data using a JavaScript library, so we've put together a time-series chart that automatically updates every hour.
LiveView Course Update: Example #15 and What's Up Next
September 10, 2020
We've arrived at our goal: 15 LiveView examples including LiveComponents. So, what’s up next for us?
LiveView Course Update #13: JavaScript Interop
August 25, 2020
In this week's video we invite some JavaScript to the LiveView party. 🎉
LiveView Course Update #12: Real-Time Updates
August 04, 2020
The last video ended with a bit of a dilemma. A change in status doesn't automatically show up across browser sessions. Phoenix PubSub to the rescue!
LiveView Course Update #11: Toggle State
July 23, 2020
Being able to toggle state saves our LiveView app from being like the Eagles’ song 'Hotel California.'
LiveView Course Update #10: Live Validation
July 17, 2020
This week's new video shows how easy it is to have live form validations from backend Ecto changesets.
LiveView Course Update #9: Form Create
July 09, 2020
In this week's new video we use Ecto and changesets to dynamically create records. And as a bonus, we use phx-update and temporary_assigns to reduce memory at web scale. 👌
Don't Make The Same Mistake Mike Did 😩
June 30, 2020
Instructors of technical topics seem to fall into two categories. They're either like Ferris Bueller's teacher Mr. Lorensax or Doc Emmett Brown. You remember them from the 1980's movies, right?
LiveView Course Update #8: Pagination and Sorting
June 17, 2020
Imagine you're running a food bank that receives a lot of donations. A good problem to have, right? You have sooooo many donations in fact you now want to paginate and sort your list.
LiveView Course Update #6: Live Navigation
June 03, 2020
While LiveView isn't top of mind right now (nor should it ever be) we'd like to share with you a new video this week on implementing page navigation without a full page reload.
LiveView Course Update #4: Filtering
May 13, 2020
The fourth progress report on our upcoming free Phoenix LiveView course. 🔥
LiveView Course Update #3: FAQ
May 04, 2020
The third progress report on our upcoming free Phoenix LiveView course. 🔥
LiveView Course Is Live!
April 30, 2020
Today we opened early access to our free Phoenix LiveView course. 🔥
LiveView Course Update #2: New Releases
April 21, 2020
The second progress report on our upcoming free Phoenix LiveView course. 🔥
LiveView Course Update #1: What Is It?
April 14, 2020
The first progress report on our upcoming free Phoenix LiveView course. 🔥
What We're Doing While Stuck At Home: Phoenix LiveView
March 31, 2020
While stuck at home this past week, we put the finishing touches on a 4-minute "What Is LiveView?" animation. It's the first video in our upcoming course on Phoenix LiveView. This course will be free! It's our gift to you. 🎁
Spring Into Elixir and OTP For Free This Week
March 10, 2020
Sometimes getting started is the hardest part. Take our recent home improvement project for example.
4 Videos on Active Storage Added to Rails 6 Course
February 20, 2020
Earlier this month we decided to add Active Storage to our Rails 6 course. We figured on one new video around 10 minutes. Maybe two videos. It turns out we’re bad estimators. 🤦
Rails 6 Course Is Complete! 🚀 Special Launch Price
November 07, 2019
Our Rails course is now completely updated for Rails 6! Thank you all for your patience and feedback over the many months it took us to remake this 8-hour course. 😅
No Tricks, Just Treats! 4 New Videos Added to Rails 6 Course
October 31, 2019
Many-to-many associations as well as custom scopes and routes were never meant to trick you. But if they do, this week’s four new Rails 6 videos will turn them from tricks into tasty treats! 🎃 🍫
5 Videos on Many-to-Many Associations Added to Rails 6 Course
October 24, 2019
Does the thought of correctly modeling rich many-to-many associations leave you a little frightened? 👻
3 Videos on Authorizing Users Added to Rails 6 Course
October 10, 2019
We released three new Rails 6 videos for you today!
4 Videos on Authenticating Users Added to Rails 6 Course
September 26, 2019
When you sign in to a web app, how does it verify your identity and then remember that you’re signed in as you navigate from page to page? 🤔
Rails 6 Videos Updated to Use form_with
September 19, 2019
Releasing courses as early access is our way of trying to get the latest updates into your hands as quickly as possible. So while early-access courses aren’t initially 100% complete, our hope is that the early modules give you something to chew on while we incrementally finish up the remaining videos.
3 Videos on User Accounts Added to Rails 6 Course
September 05, 2019
Happy September to you! 🍁 We have three new Rails 6 videos for you today.
Special Launch Price 🚀 Full-Stack GraphQL Course Is Complete!
August 29, 2019
Today we released the final videos in our Unpacked: Full-Stack GraphQL course! If you’ve been waiting until this course was complete to snag your copy, your wait is over!
Rails 6 Is Out, and 3 New Videos on Nested Resources
August 23, 2019
It’s official, Rails 6 is out and ready for you! 🎉
2 New Videos on One-to-Many Associations Added To Rails 6 Course
August 15, 2019
One of the most powerful features of Rails is the ability to create relationships between models and represent those relationships in a database.
2 New Videos On Reviews and Reservations Added To Full-Stack GraphQL Course
August 08, 2019
As we get deeper into August, it’s hard not to miss that back-to-school season is in full swing. 🤓 📚 And we’re ready for it!
2 New Videos Added To Full-Stack GraphQL Course
July 18, 2019
As the heat of summer settles in 🏝, we start on the capstone of our Unpacked: Full-Stack GraphQL course. Two new videos for you this week! Ahhhh…
4 New Videos On Authentication Added To Full-Stack GraphQL Course
July 09, 2019
In the Unpacked: Full-Stack GraphQL course, we’ve been dancing 🕺 around the need for authentication in the frontend app. But now we’re ready to dive into form-based mutations and caching smartly!
3 New Videos on Validations Added To Rails 6 Course
July 09, 2019
In the Rails 6 course, our forms currently let in bad data. Yikes! It’s high time we ensure the integrity of our application data and give notice to our users when things go right as well as when things go wrong. 💥
2 New Videos On Caching and Searching Added To Full-Stack GraphQL Course
June 27, 2019
As we move into summertime here 🍉 we also move into the 4th hour of our Unpacked: Full-Stack GraphQL course. Sweet!
2 New Videos Added To Rails 6 Course
June 18, 2019
The app we’re building in our step-by-step Rails 6 course needs two additional features: a custom query and a new database migration. How do we do this? Find out in the two new videos this week! 🎥
3 New Videos On Apollo Client Added To Full-Stack GraphQL Course
June 11, 2019
The backend app in our Unpacked: Full-Stack GraphQL course is now complete. Yeehaw! 🤠
3 New Videos Added To Rails 6 Course
June 06, 2019
Last week in our Rails 6 course we saw that Rails has a whole bunch of conventions to help you create robust and friendly forms with minimal code.
New Video On Subscriptions Added To Full-Stack GraphQL Course
May 30, 2019
In the Unpacked: Full-Stack GraphQL course, we currently have all the queries and mutations in place. In this week’s video we cap off the API with a subscription. Drawing on the power of Phoenix channels, Absinthe provides unparalleled support for GraphQL subscriptions.
2 New Videos On Forms Added To Rails 6 Course
May 30, 2019
In the Rails 6 course, next up we need a form to easily edit a resource’s details. Rails has a whole bunch of conventions to help you create robust and friendly forms with minimal code.
Early Access Opens to the Rails 6 Course
May 14, 2019
Rails 6 is here: the first release candidate rolled off the track just two weeks ago. And we’ve got you covered!
4 New Videos Added To Full-Stack GraphQL Course
May 09, 2019
We hope you’ve found the first 13 modules helpful in our recently-released Unpacked: Full-Stack GraphQL course!
3 New Videos On Dataloader Added To Full-Stack GraphQL Course
April 23, 2019
A special thanks to all of you who have taken advantage of early access for our Unpacked: Full-Stack GraphQL course! Your feedback is priceless and we love hearing how the first 10 modules have been a helpful springboard for you.
Early Access Opens to the Full-Stack GraphQL Course
April 12, 2019
Here at Pragmatic Studio HQ, we’ve received one very consistent piece of feedback these last few months: “I’m working on a full-stack app right now using GraphQL. Please release your course already!”
New Tutorial: How To Setup GraphQL in a Phoenix Application
April 10, 2019
After watching last week’s video on Absinthe, you may be wondering: How do I setup GraphQL in a Phoenix application?
New Tutorial: What Is Absinthe?
April 04, 2019
From the previous three tutorials (part 1, part 2, part 3) you now know that a GraphQL API is a special kind of API that supports queries, mutations, and subscriptions. These are defined by a schema and GraphQL clients can introspect that schema.
New Tutorial: What Does a GraphQL API Know?
March 21, 2019
From our previous GraphQL tutorials, you now know that a GraphQL API is a special kind of API that supports queries, mutations, and subscriptions.
New Tutorial: What Can GraphQL Do?
February 20, 2019
In our previous tutorial we showed you how we think of GraphQL, but we only told you part of the story! There’s much more to GraphQL.
New Tutorial: What Is GraphQL?
February 06, 2019
GraphQL is an expressive query language for your API that blah, blah, blah….😴
Complete Unpacked Single-Page App Course Launches!
January 09, 2019
Today we released the final three videos in our Unpacked: Single-Page App course! If you’ve been waiting for this video series to be complete before buying your copy, well, your wait is over!
3 New Videos Added To Unpacked Single-Page App Course
December 19, 2018
Last week in our Unpacked: Single-Page App course we began exploring how Vuex stores state in our application. This week we have 3 more videos for you! 🐟
2 New Videos Added To Unpacked Single-Page App Course
December 10, 2018
We hope you found the first five modules in the Unpacked: Single-Page App course to be helpful. Next up, we have two new videos that begin to unpack the Vuex store!
Early Access Opens to the Unpacked Single-Page App Course
December 04, 2018
Single-page applications (SPAs) are cropping up everywhere across the landscape of modern web app development. But building a solid SPA can be tricky: the frontend JavaScript and backend API need to work in harmony.
New Tutorial: The Vue CLI
November 19, 2018
In this 10-minute free tutorial, we dive into how we used the Vue Command Line Interface (CLI) to generate the initial app and serve it up during development. By walking through the generated app, you’ll feel confident about using the Vue CLI to create, build, and serve your own apps.
New Tutorial: Using Rails Session Cookies for API Authentication
September 05, 2018
Over the summer, we explored the good, the bad, and the ugly of designing a Vue.js front-end web application (an SPA) with a Rails API backend.
Elixir/OTP Course Now Has Subtitles!
August 10, 2018
🎉 Our Elixir/OTP course now has English subtitles on all 36 videos!
Apple Pay Now Supported
June 07, 2018
We now support Apple Pay so you can easily purchase courses with just a touch of your finger!
Vue.js Frontend Added To Multi-Player Bingo Course
May 08, 2018
Starting today, the frontend of Unpacked: Multi-Player Bingo now comes in two flavors: Elm and Vue.js. That’s right, we’ve added 4 new videos specific to Vue.js. And if you already own the course, they’re included for FREE! 🎉
Complete Unpacked Multi-Player Bingo Course Launches!
April 19, 2018
Today we released the final 4 videos in our Unpacked: Multi-Player Bingo course! If you’ve been waiting for this video series to be complete before buying your copy, well, your wait is over!
4 New Videos on Elm Added To Unpacked Multi-Player Bingo Course
April 12, 2018
This week we dive into the third part of our Multi-Player Bingo game: the Elm app. From how our Elm code gets compiled and kicked off to talking on Phoenix channels, we unpack it all in today’s 4 new videos!
New Phoenix Presence Video Added To Unpacked Multi-Player Bingo Course
March 29, 2018
It is presently a very good time to jump into our Unpacked: Multi-Player Bingo course. 😉 All of the videos “unpacking” the Phoenix app are released and ready for you!
New Phoenix Channel Video Added To Unpacked Multi-Player Bingo Course
March 22, 2018
It’s time to explore the juicy part of the Phoenix app in our Unpacked: Multi-Player Bingo course!
3 New Videos Added To Unpacked Multi-Player Bingo Course
March 15, 2018
We hope you found the first 6 modules helpful in the Unpacked: Multi-Player Bingo course!
Early Access Opens to the Unpacked Multi-Player Bingo Course
March 08, 2018
By combining the concurrency of Elixir and real-time streaming in the Phoenix web framework, you can build seriously cool applications!
Complete Elixir/OTP Course Launches!
September 27, 2017
Today we released the final 3 modules in our Developing With Elixir/OTP course! If you’ve been waiting for this video series to be complete before buying your copy, your wait is over!
Another GenServer Module Added To Elixir/OTP Course
September 20, 2017
Writing a new server process that performs background work on a periodic interval let’s us explore different ways to leverage all that GenServer has to offer. This week’s new module #27 Another GenServer of our Elixir/OTP course shows you how!
GenServer Module Added To Elixir/OTP Course
September 13, 2017
It’s now time to use Elixir’s official GenServer behavior in our application! All the work you put into the last two modules of the Elixir/OTP course is absolutely going to pay off right here, right now.
Refactor Toward GenServer Module Added To Elixir/OTP Course
September 06, 2017
At this point in our Elixir/OTP course, we see two types of code in our client-server interaction:
Stateful Server Processes Module Added To Elixir/OTP Course
August 30, 2017
So far in our Elixir/OTP course we’ve been looking primarily at short-lived processes.
Asynchronous Tasks Module Added To Elixir/OTP Course
August 16, 2017
With several one-off asynchronous tasks now running and getting results at a later time, we’re starting to see a definite pattern emerging. In fact, running functions (or tasks) in a short-lived process is so common that Elixir provides a really helpful abstraction: the Task module.
Sending and Receiving Messages Module Added To Elixir/OTP Course
August 09, 2017
So if Elixir processes are isolated and run independently, how exactly do they communicate? Find out in today’s new module of our Elixir/OTP course: #22 Sending and Receiving Messages.