---
title: Michael Washburn Jr's Blog | Tutorials
description: Tutorials |
---

Filter by tag

All Tutorials React Engineering Best Practices JavaScript Python Django Product Ownership Web Apps Redux Research

# Posts about Tutorials

[![Apple MacBook, pad and paper, coffee cup, and smartphone on a table](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/home-office-336378_1280.jpg?height=370&name=home-office-336378_1280.jpg) 

](https://michaelwashburnjr.com/blog/apple-push-notification-service-certificates)

[Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react)

 January 6, 2020

### [How to use Apple Push Notification Certificates](https://michaelwashburnjr.com/blog/apple-push-notification-service-certificates)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

Something as simple as sending a push notification should be one of the easiest parts of building your app. Why then is it so complicated? When I was building my React Native app, I was baffled at how difficult it was to implement push notifications myself [after I ejected from Expo](https://michaelwashburnjr.com/2019/12/18/eject-expo-bare-workflow/). 

[Read More](https://michaelwashburnjr.com/blog/apple-push-notification-service-certificates)

[![Ejecting to Expo’s Bare Workflow – IOS](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/expo-workflow.jpg?height=370&name=expo-workflow.jpg) 

](https://michaelwashburnjr.com/blog/eject-expo-bare-workflow)

[Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react)

 December 18, 2019

### [Ejecting to Expo’s Bare Workflow – IOS](https://michaelwashburnjr.com/blog/eject-expo-bare-workflow)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

I loved learning React Native through Expo. Expo’s managed workflow is so simple and elegant; it makes it easy for any beginner to jump into app development.

[Read More](https://michaelwashburnjr.com/blog/eject-expo-bare-workflow)

[![Refactoring JQuery to React](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/refactoring-to-react.jpg?height=370&name=refactoring-to-react.jpg) 

](https://michaelwashburnjr.com/blog/refactoring-jquery-react)

[Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 January 30, 2018

### [Refactoring JQuery to React](https://michaelwashburnjr.com/blog/refactoring-jquery-react)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

JQuery is quickly becoming a thing of the past, and in it’s place stands React. I mean, [even John Resig, author of JQuery, uses React now](https://twitter.com/jeresig/status/726058698989277185). So how can you refactor your website to use React instead of JQuery?

[Read More](https://michaelwashburnjr.com/blog/refactoring-jquery-react)

[![Redux: Drawing the Line Between Actions and Middleware](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/redux-actions-middleware.jpeg?height=370&name=redux-actions-middleware.jpeg) 

](https://michaelwashburnjr.com/blog/redux-actions-middleware)

[Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [Redux](https://michaelwashburnjr.com/blog/tag/redux), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 November 30, 2017

### [Redux: Drawing the Line Between Actions and Middleware](https://michaelwashburnjr.com/blog/redux-actions-middleware)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

.When I first started out using [Redux](https://redux.js.org/), I learned very quickly how to use (read: abuse) Redux actions. [Actions](https://redux.js.org/docs/basics/Actions.html) and [middleware](https://redux.js.org/docs/advanced/Middleware.html) used to be simple: if it’s synchronous, put it in an action, but if it’s asynchronous then you should use middleware.

[Read More](https://michaelwashburnjr.com/blog/redux-actions-middleware)

[![The Best Way to Store Tokens in Redux](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/redux-localstorage.jpg?height=370&name=redux-localstorage.jpg) 

](https://michaelwashburnjr.com/blog/best-way-to-store-tokens-redux)

[Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [Redux](https://michaelwashburnjr.com/blog/tag/redux), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 November 21, 2017

### [What’s the Best Way to Store Tokens in Redux?](https://michaelwashburnjr.com/blog/best-way-to-store-tokens-redux)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

One problem I’ve been struggling with lately is: what is the best way to store tokens when using redux? I could store it in the Redux state, but then it wouldn’t be there after refresh. I could just store it in the browser’s localStorage, but where would I do that?

[Read More](https://michaelwashburnjr.com/blog/best-way-to-store-tokens-redux)

[![Django REST framework](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/django-auth.jpeg?height=370&name=django-auth.jpeg) 

](https://michaelwashburnjr.com/blog/django-user-authentication)

[Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 November 14, 2017

### [User Authentication with Django REST Framework](https://michaelwashburnjr.com/blog/django-user-authentication)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

User Authentication is a simple concept, but when it comes to properly implementing it in Django, things can get complicated. Django offers an abundance of different authentication mechanisms: `BasicAuthentication`, `TokenAuthentication`, `SessionAuthentication`, and various ways to implement custom authentication mechanisms. 

[Read More](https://michaelwashburnjr.com/blog/django-user-authentication)

[![Building a Web App: Developing a React.js Frontend for an API](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/react-icon_svg_.png?height=370&name=react-icon_svg_.png) 

](https://michaelwashburnjr.com/blog/building-web-app-ground-developing-react-js-frontend-api-part-4)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 September 11, 2017

### [Building a Web App: Developing a React.js Frontend for an API — Part 4](https://michaelwashburnjr.com/blog/building-web-app-ground-developing-react-js-frontend-api-part-4)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

*This post is part of a series of mine on building web applications from the ground up. It covers everything you need to know to completely finish a web application. If you haven’t been following the series, please go back and [read part 1](https://michaelwashburnjr.com/2017/08/15/building-webapp-tutorial-p1). *

[Read More](https://michaelwashburnjr.com/blog/building-web-app-ground-developing-react-js-frontend-api-part-4)

[![](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/coding.jpg?height=370&name=coding.jpg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 August 29, 2017

### [Building a Web App: Django Rest Framework API Development — Part 3](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

*This post is part of a series of mine on building web applications from the ground up. It covers everything you need to know to completely finish a web application. If you haven’t been following the series, please go back and [read part 1](https://michaelwashburnjr.com/2017/08/15/building-webapp-tutorial-p1). *

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

[![Django REST Framework](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/django-rest.jpeg?height=370&name=django-rest.jpeg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 August 22, 2017

### [Building a Web App From the Ground Up: API Setup— Part 2](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

*This post is part of a series of mine on building web applications from the ground up. It covers everything you need to know to completely finish a web application. If you haven’t been following the series, please go back and [read part 1](https://michaelwashburnjr.com/2017/08/15/building-webapp-tutorial-p1). *

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

[![building construction site with crane](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/construction.jpeg?height=370&name=construction.jpeg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

[Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 August 15, 2017

### [Building a Web App with React and Django: Getting Started — Part 1](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

So you want to build a web app. Well, what’s stopping you? If you’re reading this, you’ve probably already been programming for some time, but you’re just missing some of the steps. I’ve been there before. I know how frustrating it can be to know 70% of what you need to do to build a killer web app for an idea you have, but not have enough knowledge to take the idea from beginning to end.

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

 Prev [1](https://michaelwashburnjr.com/blog) [2](https://michaelwashburnjr.com/blog/tag/tutorials/page/2) [ Next ](https://michaelwashburnjr.com/blog/tag/tutorials/page/2)