The Pragmatic Studio

The Studio Blog

What's up in the Studio?

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!

Read On →

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!

Read On →

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! 🙌

Read On →

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.

Read On →

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.

Read On →

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. 🔥

Read On →

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! 🍫

Read On →

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! 🔒 👍

Read On →

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.

Read On →

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.

Read On →

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?

Read On →

LiveView Course Update #13: JavaScript Interop

August 25, 2020

In this week's video we invite some JavaScript to the LiveView party. 🎉

Read On →

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!

Read On →

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.'

Read On →

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.

Read On →

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. 👌

Read On →

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?

Read On →

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.

Read On →

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.

Read On →

LiveView Course Update #4: Filtering

May 13, 2020

The fourth progress report on our upcoming free Phoenix LiveView course. 🔥

Read On →

LiveView Course Update #3: FAQ

May 04, 2020

The third progress report on our upcoming free Phoenix LiveView course. 🔥

Read On →

LiveView Course Is Live!

April 30, 2020

Today we opened early access to our free Phoenix LiveView course. 🔥

Read On →

LiveView Course Update #2: New Releases

April 21, 2020

The second progress report on our upcoming free Phoenix LiveView course. 🔥

Read On →

LiveView Course Update #1: What Is It?

April 14, 2020

The first progress report on our upcoming free Phoenix LiveView course. 🔥

Read On →

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. 🎁

Read On →

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.

Read On →

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. 🤦

Read On →

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. 😅

Read On →

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! 🎃 🍫

Read On →

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? 👻

Read On →

3 Videos on Authorizing Users Added to Rails 6 Course

October 10, 2019

We released three new Rails 6 videos for you today!

Read On →

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? 🤔

Read On →

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.

Read On →

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.

Read On →

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!

Read On →

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! 🎉

Read On →

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.

Read On →

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!

Read On →

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…

Read On →

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!

Read On →

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. 💥

Read On →

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!

Read On →

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! 🎥

Read On →

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! 🤠

Read On →

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.

Read On →

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.

Read On →

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.

Read On →

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!

Read On →

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!

Read On →

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.

Read On →

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!”

Read On →

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?

Read On →

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.

Read On →

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.

Read On →

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.

Read On →

New Tutorial: What Is GraphQL?

February 06, 2019

GraphQL is an expressive query language for your API that blah, blah, blah….😴

Read On →

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!

Read On →

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! 🐟

Read On →

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!

Read On →

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.

Read On →

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.

Read On →

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.

Read On →

Elixir/OTP Course Now Has Subtitles!

August 10, 2018

🎉 Our Elixir/OTP course now has English subtitles on all 36 videos!

Read On →

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!

Read On →

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! 🎉

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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!

Read On →

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.

Read On →

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:

Read On →

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.

Read On →

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.

Read On →

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.

Read On →

Processes Module Added To Elixir/OTP Course

July 26, 2017

Concurrency and parallelism. Fault tolerance and isolation. Spawning and blocking. What does it all mean!? 🤔

Read On →

Web Sockets Module Added To Elixir/OTP Course

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. 😎

Read On →

Rendering JSON Module Added To Elixir/OTP Course

July 12, 2017

New for you this week: module #19 Rendering JSON in our Elixir/OTP course.

Read On →

Testing Module Added To Elixir/OTP Course

June 27, 2017

We have another Elixir/OTP course module for you this week: #18 Test Automation.

Read On →

Phoenix Module Added To Elixir/OTP Course

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.

Read On →

Comprehensions Module Added To Elixir/OTP Course

June 14, 2017

Just for you, we have another Elixir/OTP course module this week: #16 Comprehensions.

Read On →

Enum Module Added To Elixir/OTP Course

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.

Read On →

3 More New Modules Added To Elixir/OTP Course

May 31, 2017

With a basic web server now in place, this week we dive into various Elixir techniques and design options.

Read On →

3 New Modules Added To Elixir/OTP Course

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.

Read On →

What Is Elixir?

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.

Read On →

Should I Learn Elixir?

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.

Read On →

2 New Modules Added To Elixir/OTP Course

May 10, 2017

Designing a web server application presents interesting scenarios that let us explore many of Elixir’s features.

Read On →

Early Access Opens to the Elixir/OTP Course

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!

Read On →

Transforming Data with 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.

Read On →

Rails in 2017, For Reals?

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!

Read On →

Integrating Elm at Clarity Voice (Part 2)

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.

Read On →

New Interop with JavaScript Video Added To Integrating Elm Course

March 29, 2017

Elm ports are like holes in the side of Elm programs where values can be sent in and out. As such, they’re the perfect way to open up lines of communication between Elm and any JavaScript code you already have.

Read On →

Integrating Elm at Clarity Voice (Part 1)

March 22, 2017

“We were tired of silly runtime exceptions breaking our souls.”

Read On →

New WebSockets Video Added To Integrating Elm Course

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.

Read On →

New Free Course: Integrating Elm

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!

Read On →

Complete Elm 0.18 Course Launches!

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!

Read On →

Giving Hope: 30% of January's Sales To Go To Preemptive Love

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!

Read On →

More Posts →