The Studio Blog
What's up in the Studio?
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!
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! 🙌
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.
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.
January 14, 2021
Today we opened early access for the Pro Package of our Phoenix LiveView course. 🔥
December 08, 2020
If you've done any browser-based testing, then you're in for a real treat testing LiveViews! 🍫
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! 🔒 👍
October 23, 2020
We've been working on a mapping example that we think really showcases some unique JS interop features of LiveView.
October 16, 2020
September 10, 2020
We've arrived at our goal: 15 LiveView examples including LiveComponents. So, what’s up next for us?
August 25, 2020
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!
July 23, 2020
Being able to toggle state saves our LiveView app from being like the Eagles’ song 'Hotel California.'
July 17, 2020
This week's new video shows how easy it is to have live form validations from backend Ecto changesets.
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. 👌
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?
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.
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.
May 13, 2020
The fourth progress report on our upcoming free Phoenix LiveView course. 🔥
May 04, 2020
The third progress report on our upcoming free Phoenix LiveView course. 🔥
April 30, 2020
Today we opened early access to our free Phoenix LiveView course. 🔥
April 21, 2020
The second progress report on our upcoming free Phoenix LiveView course. 🔥
April 14, 2020
The first progress report on our upcoming free Phoenix LiveView course. 🔥
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. 🎁
March 10, 2020
Sometimes getting started is the hardest part. Take our recent home improvement project for example.
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. 🤦
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. 😅
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! 🎃 🍫
October 24, 2019
Does the thought of correctly modeling rich many-to-many associations leave you a little frightened? 👻
October 10, 2019
We released three new Rails 6 videos for you today!
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? 🤔
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.
September 05, 2019
Happy September to you! 🍁 We have three new Rails 6 videos for you today.
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!
August 23, 2019
It’s official, Rails 6 is out and ready for you! 🎉
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.
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!
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…
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!
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. 💥
June 27, 2019
As we move into summertime here 🍉 we also move into the 4th hour of our Unpacked: Full-Stack GraphQL course. Sweet!
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! 🎥
June 11, 2019
The backend app in our Unpacked: Full-Stack GraphQL course is now complete. Yeehaw! 🤠
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.
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.
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.
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!
May 09, 2019
We hope you’ve found the first 13 modules helpful in our recently-released Unpacked: 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.
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!”
April 10, 2019
After watching last week’s video on Absinthe, you may be wondering: How do I setup GraphQL in a Phoenix application?
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.
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.
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.
February 06, 2019
GraphQL is an expressive query language for your API that blah, blah, blah….😴
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!
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! 🐟
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!
December 04, 2018
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.
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.
August 10, 2018
🎉 Our Elixir/OTP course now has English subtitles on all 36 videos!
June 07, 2018
We now support Apple Pay so you can easily purchase courses with just a touch of your finger!
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! 🎉
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!
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!
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!
March 22, 2018
It’s time to explore the juicy part of the Phoenix app in our Unpacked: Multi-Player Bingo course!
March 15, 2018
We hope you found the first 6 modules helpful in 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!
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!
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!
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.
September 06, 2017
At this point in our Elixir/OTP course, we see two types of code in our client-server interaction:
August 30, 2017
So far in our Elixir/OTP course we’ve been looking primarily at short-lived processes.
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.
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.
July 26, 2017
Concurrency and parallelism. Fault tolerance and isolation. Spawning and blocking. What does it all mean!? 🤔
July 19, 2017
It’s summertime here and picking the right tool for the job is crucial to having more time for outside fun in the sun. 😎
July 12, 2017
New for you this week: module #19 Rendering JSON in our Elixir/OTP course.
June 27, 2017
We have another Elixir/OTP course module for you this week: #18 Test Automation.
June 20, 2017
Now’s a great time to jump into our Elixir/OTP course, especially if you’re interested in becoming proficient with Phoenix! If you already own the course, you’ll find a hot new module in your account today: A Peek at Phoenix.
June 14, 2017
Just for you, we have another Elixir/OTP course module this week: #16 Comprehensions.
June 07, 2017
We have a new module for you this week in our Elixir/OTP course: #15 Slicing and Dicing With Enum. It comes with two videos and a whole bunch of exercises.
May 31, 2017
With a basic web server now in place, this week we dive into various Elixir techniques and design options.
May 17, 2017
Building an elementary HTTP web server from scratch is a great way to learn many facets of Elixir and functional programming principles.
May 10, 2017
The short answer to this week’s top FAQ is that Elixir is a functional, concurrent programming language that’s gaining a lot of momentum these days.
May 10, 2017
It’s a smart question to ask. Few developers have time to add another programming language to their repertoire without a near-term need.
May 10, 2017
Designing a web server application presents interesting scenarios that let us explore many of Elixir’s features.
May 03, 2017
Early access is now open to our Elixir/OTP course course. The first 6 modules are available starting today and we’ll release new modules incrementally as they’re ready, so you don’t have to wait to start learning Elixir!
May 02, 2017
Elixir has really changed the way we think about programming. Instead of thinking about objects and calling methods that change their state, we now think more in terms of functions that transform data.
April 12, 2017
Based on all our talk about Elm and Elixir recently, you may be wondering if we’ve kicked Ruby and Rails to the curb. Absolutely not!
April 05, 2017
When we last left Mike Onslow, he had rolled out two small, but successful, pilot Elm projects at Clarity Voice. (Part 1) Now he was eager to try a bigger project. But bigger would mean more visibility and, up to this point, he had flown under the radar.
March 29, 2017
March 22, 2017
“We were tired of silly runtime exceptions breaking our souls.”
March 14, 2017
If you’re embedding an Elm app into your existing application, it’s likely you’ll need to get inputs from an external data source. For example, maybe you need to listen for real-time basketball scores on a WebSocket. Thankfully, an Elm subscription makes getting scores as easy as Stephen Curry makes baskets.
March 07, 2017
Have you been wondering how to integrate Elm into existing applications? If so, our new free Integrating Elm course is for you!
January 25, 2017
Our Developing Web Apps with Elm course is complete and ready for you today! If you’ve been waiting for this course to be complete before buying your copy, your wait is over!
January 03, 2017
Update: Thank you for giving a lot of hope this year! Your purchases in January made it possible for Preemptive Love Coalition to feed 100 families for a month and provide sleeping bags for 100 people. There is still so much hope and help to be given in 2017. Find out more about their inspiring and courageous work in their 2-minute video. Thank you for standing with refugee children and families in Syria and Iraq!
December 15, 2016
This week in the Studio we thought maybe it was time to take off our rose-colored glasses. We look wide-eyed at handling error messages, which seems better than just doing nothing.