Wes Bos

Full Stack Developer, Speaker and Teacher from Canada. Creator of amazing projects like Learn Redux, React For Beginners, and more

31st May 2016, 5:00 pm

This AMA is over!

Thank the host

What tools/process do you recommend for managing styles in React apps?

Mostly just <link rel="stylesheet" href="style.css">

I see the value in some of these inline styles, but for most of the stuff I work on, I still prefer the cascade. That might / will change in the future, but for now I'm letting other people figure it out.

What's your favorite technical and non-technical book?

Non-Technical might be The Power of Habit or How to win friends and influence people. Both lay down some fantastic ground rules for living a productive and kind life.

Technical? I don't really read technical books - I'm more about video tutorials and blog posts.

  1. Have you tried VueJS (you must have ;) )? What do you think about replacing ReactJS with VueJS (and Redux with Vuex)? No need to answer if you don't feel comfortable.

  2. Anything you'd like to share to improve my BBQ talents. Are you a natural or did you learn somewhere (those twitter pics looked exquisite)

Answering #2 first because I love BBQ.

It's funny that you ask about improving it because I'm learning BBQ the same way I learn to code. I watch a ton of videos on youtube, read a ton of recipes and read up on the core ideas behind bbq on Once I have a good idea of how things work, it's all about being hands-on for me. Just keep trying new things, referencing the documentation (recipe) when you need it and you'll pick it up pretty quickly!

  1. I've never tried it, but I've watched a bunch of tutorials and I see what all the hype is about - it seems really easy to build things with and the single-file approach is pretty interesting!

I think it's a nice option when looking at frameworks.

Wes, Please talk a little bit about CSS Grid Layout. When I look at it, I can't imagine why almost everybody seems hyped about it. Comparing it to Flexbox code I see now much more code, new CSS units, new CSS rules, new everything. Writing more code can't make people happy I guess. But why are so many freaking about CSS Grid Layout?

It's all about the flexibility - from the outside it seems like a headache but that is because you haven't learned it yet. We saw the same thing with flexbox as well.

With flexbox and grid being supported, it's going to open up an amazing world of layouts - things that both were really hard before but also things that just were not possible before.

It's gonna be awesome and I'll make a free course on it once I get a handle on it myself :)

How long does it take you to prepare yourself for conference talks? Just looking at your well-designed slides, I can tell I envy you ;-)

The same for your screencasts. for example, looks great, and it's free. That's why I bought only to show you my deep respect - and of course, because I couldn't spot a donation button on ;-)鈥

I have a pretty relaxed teaching and speaking style. Since I teach twice a week, I'm pretty comfortable doing a talk without having a ton of prep. So, because of that I spend significantly less time working on my talks and practicing than most people.

I'd say it takes me 8-15 hours to prep for a ~45 min talk. I usually take a month before the talk to mull around ideas and then take a day or two to create the slides with my major ideas. From the slides I can wing it with what I'm going to sasy.

Glad you enjoyed the courses - I don't expect donations for any of my free stuff because there is a lot of reciprocity when I release a paid one - just like yourself!

How do you prepare for a video series ? Which tools do you use to prepare your video series ? How much time do you spend weekly on producing video content ?

By the way your videos are extremely informative.

Glad you are enjoying the videos!

Most of the time in a Video series is in the prep - what to teach, what we will make, making sure the content follows best practices etc..

Each series is different - to give you an idea took ~40-50 hours. took 200 hours. took 100 hours.

I'm slowly transitioning myself off client work to work fulltime on teaching - that is through videos, books, in person at HackerYou and WorkShops

Hey, Wes! Nice to see you here. Thanks for hosting this AMA. It is clear that you invest a huge amount of time behind each one of your video tutorials, they come out so amazingly awesome. Sublime Text Power User is one of my favourite series.

I am curious to know about your recording setup. Could you go on in brief about all the software/hardware you use; and the sort of flow you approach when you go about recording your videos? Thanks, again! :)

Most of my tutorial series right now are done with a Audio Technica AT2020 microphone. The audio quality is okay, but not great.

I recently invested about $1,000 into a really good setup that cuts my audio editing time down to zero and makes the quality amazing.

TLDR it's a Heil PR40 running through a DBX286x which makes it have that boomy sound. If you want to know more, I talk about it here:

Hey Wes! Just finished Learn Redux after already taking basically all of your other courses. They are absolutely blowing my mind every time! So thank you for that :)

I noticed you used Gulp with Browserify in the React for Beginners course and now Webpack in the Redux one. So I'm curious:

  1. What is your take on the pros/cons of Gulp/Browserify vs Webpack given that many people might already use Gulp or even Grunt?

  2. Is it worth switching to Webpack completely or just in specific cases?

Glad you are enjoying everything! The tooling is a bit of a sore spot for me. I absolutely love tooling,but I do think that some of it is harder than it should be to learn. It gets in the way when it should be helping us at our job.

The reason I used webpack in my most recent one was because everyone was asking for it. Webpack is very popular in the React community so I thought I'd show people how to use both and they can make their own decisions.

1. I say use whatever you like - most people already have a Gulp pipeline, so it's easy to integrate browserify (or even webpack for bundling) into that. If you are starting from scratch and can make use of some of the webpack stuff, then go for it.

At the end of the day I really don't care all that much - they can both do the same things at the end of the day and I find it exhausting that people are so aggressively opinionated in either direction.

2. Only invest in a tool if it's going to pay you back. If it's not going to either save you time, make your code more maintainable, or make your app faster, then it's probably not worth it.

Hey Wes, thank you for the detailed answer! I guess I'll just keep using Gulp for now and check out Webpack in a side project to get my head around the differences.

Right now I just have to get hot reloading working with Gulp/Browserify cause the constant full page reload when changing one single thing is bugging me. But that should be possible to achieve.

Thanks again and rock on!

I know this is gonna sound stupid but how did you learn React? I bet there was no "React For Beginners" at that time. :)

Haha yes very slowly - I read a lot of blog posts, watched lots of youtube and asked tons and tons of questions in the React chat.

Usually the stuff I teach is totally learnable on your own, but by taking one of my courses, you can distill it down to once place and learn it much faster.

Haha yes very slowly - I read a lot of blog posts, watched lots of youtube and asked tons and tons of questions in the React chat.

Usually the stuff I teach is totally learnable on your own, but by taking one of my courses, you can distill it down to once place and learn it much faster.

What advice will you give to beginners who are new to front-end development and are being overwhelmed by so many choices out there? How should one get started with serious front-end development without being lost?

You are bound to feel a little lost, and it's just part of finding you way and there is nothing wrong with that. It's important to focus on a project rather than a technology. Try to build something fun - like a personal website or a tiny app - then pick your tech and try things out. You will throw it out and start over 2-3 times, but that is all part of learning.

Adam Savage of mythbusters is one of my heros and he explained that when his son was making a Leatherman holster, the first step was to realize that you are going to throw it out and start over at least 2-3 times.

I've answered this a little more here:

Thanks Wes!

  • What is your primary tech stack?
  • Are you into teaching full-time or do you also work on paid projects?
  • What are some of your productivity hacks?


Serverside I'm either Express JS / MongoDB / Jade / Passport Or I go with WordPress for a website.

I still have a few clients - I always want to have clients so I can maintain real-world advice - but I'm leaning towards fulltime teaching.

Productivity Hacks? Don't commute, invest your time in learning how to get better or faster at everything you do.

Work towards doing what you love and loving what you do.

Hey Wes, what apps you use in day-to-day work? and what is your hardware specifications? thanks

The biggest apps are:

Sublime Text for writing and coding Screenflow for recording Things for GTD task management Tweetdeck for twitter on steroids Cloudapp for sharing screenshots and uploading files

Hardware is 15" Macbook pro loaded to the gills. Dell 4K monitor. I wrote a bit of info here 鈫

Hey Wes,

I've been following you for a while and your videos are exceptional, you clearly know how to teach, so thank you for that.

I hope I don't sound like a jerk, but here's my question:

I've been reading/watching a lot of tutorials about ReactJS and your #reactforbeginners course is definitely in my list, however I want to take this opportunity to ask you: why should I pay $59 for a beginners course when there's quite a few ReactJS Fundamentals free courses out there (, tylermcginnis' ReactJS Program, etc)? What make yours stand out?

Thanks Wes!

Glad you are enjoying the tutorials!

Both Egghead and Tyler produce fantastic courses. Both have free and paid courses, just like my (paid) and (free).

People take mine because they like my teaching style. They like how I'm able to explain things simply and get them past any barriers they previously had. You said it yourself 鈥 videos are exceptional, you clearly know how to teach. If you really think that, then $59 should be a no-brainer when trying to advance your career skillset.

Do you have any workflow tricks that specifically don't involve coding? In other words, what other apps on your computer help you? What habits are helpful in becoming a better coder or at least a coder with a better workflow? Do you use any physical tools, like a pad and pencil next to your computer? Do you listen to music while working? Stuff like that. (These are suggestions, you don't need to answer all the questions ;)

what other apps on your computer help you?

Things is a huge one. I follow the GTD (getting things done) methodology and this is an invaluable tool. It's so much more than a "todo app" that most people think it is.

What habits are helpful in becoming a better coder or at least a coder with a better workflow?

Great question - and I have a clear answer for that:

When something bugs you. When something is slow or inefficinent. When you feel like you could be doing something better in your workflow, stop and fix it. Spend the 10 minutes it takes to learn a new shortcut, research an application or ask a friends. It takes time upfront but pays off huge in the longrun.

Do you use any physical tools, like a pad and pencil next to your computer? Nothing physical - I hate paper. I use Things for everything.

Do you listen to music while working?

Yep! Lots of Hardcore on Spotify all day.

"stop and fix it" Interesting take. I mostly have to fight to avoid doing just that, since I tend to lose control and "wake up" two hours later finding that I'm debugging a tool which had NOTHING to do with my original problem, but which is useful to fix a bug in another tool which might. I guess balance is difficult...

So after the react for beginners and redux course, can we expect a react native course? ;)

Maybe! I've got a handful of courses I want to do first, but React Native is on the list, just lower on the list.

You should check out Scott Tolinkski's React Native course - it's the best one I've seen so far:

Are you sometimes fed up with so many different frameworks/libraries/compilers... aka JavaScript fatigue?

It sure does move pretty fast! Most of my job is to learn this stuff, evaluate it, and teach it if I like it and I can't even keep up.

That said, it doesn't bother me at all. It just means that people are figuring out ways to build better apps and websites. We're advancing a ton right now and it's pretty exciting.

I can understand that people feel burned when things change too quickly, but that is a huge part of our industry - it will never stand still.

How do you find the time to learn?

I either try work it into a paid client project, or explicitly create a small side project that I will finish.

I talk a little bit about my approach here:

How do you learn new frameworks or any programming language? Do you watch tutorials first and read documentation so you can see what's up with the stuff you are learning or are you just trying things without too much help, going coding without too much time spent on theory?

I'll usually watch a few tutorials, read a few blog posts and then dive into an existing application to see how it works.

Then as soon as I can, I'll start to build something from the ground up referencing docs, blog posts and tutorials as I need them.

Have you altered how/when you work since having a kid? Seems like working from home would make it tougher. I don't have much free time anymore, and I'm pretty beat when I find some. FYI, having a 2nd kid made it tougher. Just wondering how you're managing your time now. Thanks!

In many entrepreneurs I find that the dad/mom effect is real. When our first daughter was on her way, it made me kick things into high gear and that has allowed me to do what I like to do for fun during normal work hours.

I have pretty good energy and I attribute a ton of that to not having a commute. My office is on the 3rd floor of our house, so it's very separate.

In terms of time management, it really hasn't changed. I work generally 9-5 give or take an hour everyday and outside of that I'm pretty available. My wife and I are pretty good about not bluring the lines between work and play.

My wife is also a rock start at making life outside of work very enjoyable - when I get off it's less about house/life stress and more about enjoying our time together.

Hey wes, what the main feature of redux? and it's a frontend or backend 芦tool禄?

It's a front-end tool to manage your state- mostly done in React apps

Hello! Have you tried Elm? What do you think about it as React competitor?

Never tried it before. It sounds and looks pretty cool but that is all I have to say about it :)

Can you share some easy approach for Server Side rendering in Redux and Webpack?

It's not possible to do easily because it requires you to integrate it into your serverside stack. I've done it before with Express, but it was hell to get working.

This is one thing I hope gets better in the React ecosystem.

What's your opinion on MobX; the new state management solution for React?

Never tried it!

What tools do you recommend using(backend and frontend) for a chat application at the scale of facebook's messenger?

I'm far from qualified to answer this. I've used both Firebase and for chat systems in the past, but never at the scale of Facebook.

Hi Wes, awesome that your doing this AMA !

  1. What non-JS related frameworks / languages are you most looking forward to ?
  2. I find the React eco-system quite limited when it comes to getting data from your backend into your views. The most common approach seems to be either a Flux framework or Backbone. What is your opinion on this ?

I'm not sure about looking forward to, but I've been a huge fan of Stylus and Jade for the past ~4 years.

In terms of apps, I'm looking forward to MailTrain which is going to be an open source mailchimp 鈫

  1. Seems like Redux + Thunks, or Redux + Sagas are the way to go right now.

What process do you use, to set yourself ahead of other developers whenever a new package/framework/technology comes out? How well do you understand such new things to become a teacher in them?

It's kind of the other way around - if I want to learn something I do it as if I were to teach it. When you teach something it forces you to learn it indepth and ask all the hard questions.

I don't teach everything I learn, but I use that approach when learning something.

When a new framework/tech comes out I usually wait for it to become semi-popular before investing any time into it.

What, according to you, are some of the toughest/hard to understand concepts in React/Redux? How did you manage to explain those in your books React For Beginners and Learn Redux?

In React its the shift from thinking in the DOM to thinking about components and state.

In redux there are some new concepts for most devs - it's the first taste of functional programming for a many.

Hi, what would you advise to a frontend developer living in Italy and Hungary to get involved in the tech conferences around the world and meet "physically" new tech people to build a good network?

I'd say the best thing you can do is to either:

Volunteer at them - get a free ticket but also it puts you in a spot where you are meeting a lot of the speakers - great people to know.

Speak at them! its a bit scary for some, but a fantastic way to meet a ton of really great people.

Thanks for the reply!

Going on a huge dev conference on thursday (a lot of job prospects). What are some tips you can give to someone that wants to make the most out of a conference with big names?

Gooood question. I've got a blog post on this too 鈫

In short, try and make some friends. Meet as many people as you can while still being cool (dont come off as a "networker") and it will work out!

'Prototype interference' can cause problems due to JavaScript distinguishing between enumerable and nonenumerable properties. It states that All properties that we create by simply assigning to them are enumerable. The standard properties in Object.prototype are all nonenumerable. If you where to use a for/in statement to find out and test what values are being used in an object would it be correct to identify enumerable/nonenumerable as saying that methods already built-in JavaScript are nonenumerable ex: toString? where assigning Object.prototype is enumerable ex Object.prototype.speak? How concerned should we be with controlling the type of property in objects by using Object.defineProperty function? Also hello from Western Canada (Calgary) :)

{ response: 'crickets' }

Sorry - this didn't show up under unanswered because you "answered it" I guess.

I've actually always used prototype with hasOwnProperty, but I'll have to look into this one :)

Hey Wes, What do you think will soonish kick ass and keep clients connected with servers, Server-Sent-Events, Websockets or finally WebRTC/OpenRTC/EasyRTC? Or something on top of Google's QUIC and/or HTTP/2 protocol?

Realtime apps are definitely becoming popular.

My bets are on open standards - websockets with something like and WebRTC with whatever library you want.

Also hopeful that the new Firebase will bring us great tools.

Do some people ever get you confused with Sean McCabe (SeanWes). If not, I was the only one to confuse you two.

Not yet - this is the first I've heard. Though I wouldn't mind meeting him!

Hi Wes,

Two questions:

#1: What courses are you planning at the moment?

#2: With so many different e-learning platforms popping up, how are you going to differentiate yourself from others?

Cheers! :)

1) I won't say exactly, but lots of front end dev stuff :)

2) I'm not really worried about it. Platforms are nothing - it's all about the creators and what they are teaching. I'm just going to keep making good stuff and I hope it will work out :)

How do you test React components in your projects? Any specific tools/libraries?

I'm not totally happy with my setup just yet, so I'd look to other devs for their advice but right now I'm using Expect and Expect JSX with shallow rendering + function spys