A CRUD blog with a basic auth system made with the MERN stack
You can turn the action types to constants.
Have action creators 


https://redux.js.org/recipes/reducing-boilerplate/


In deletePosts you're passing a cb that's never used
For readability I would always wrap args in ( ) in arrow function (params)
A trivial comment/preference... I would make sure I use data in args so I don't have to assign it to prop axios.put('/edit', { data: changes }) I would just doaxios.put('/edit', { data })`