Module 1 - Introduction
1. Welcome to the course2. Why Go3. Why start and build a blog?4. What about React/Vue/Angular?5. Getting setup and source filesModule 2 - Tech Stack Walkthrough
1. Introduction to Golang Part 12. Introduction to Golang Part 23. Introduction to Golang Part 34. Structuring Golang Applications5. Templating with Templ6. Just enough interactivity with HTMX7. Getting started with postgres8. Servers, routers and endpointsModule 3 - Creating the MVP
1. What are the minimal requirements?2. Doing some initial plumbing3. Embedding static assets4. Creating our first views5. Tailwind & Utility-first CSS6. Styling the Landing Page7. Styling the Article PageModule 4 - Managing Content
1. Choose your own adventure2. Writing in Markdown3. Parsing Markdown to HTML4. Frontmatter and Meta Information5. Making our code examples look nice6. Adding error pagesModule 5 - Adding the Database
1. What is a Migration?2. Our first migration: articles table3. Creating the Database Layer4. Showing the Latest Posts5. Slugs and Human Readable URLsModule 6 - Managing the Blog
1. What are the minimum requirements?2. A new layout approaches3. Introduction to authentication4. Our second migration: Users Table5. Storing passwords securely6. Authenticating users Part One7. Authenticating users Part Two8. Remember me/Forget me9. Managing posts using a hypermedia API - Part One10. Managing posts using a hypermedia API - Part Two11. Managing posts using a hypermedia API - Part Three12. Managing posts using a hypermedia API - Part Four13. Implementing CRUD For Articles - Part One14. Implementing CRUD For Articles - Part Two15. Implementing CRUD For Articles - Part Three16. Implementing CRUD For Articles - Part Four17. Flashing Ourselves/Providing Visual Feedback - Part One18. Flashing Ourselves/Providing Visual Feedback - Part Two19. Flashing Ourselves/Providing Visual Feedback - Part ThreeModule 7 - Adding Subscribers
1. What are the minimum requirements?2. Expanding the database: Tokens & Subscribers3. Creating the token and subscriber models - Part One4. Creating the token and subscriber models - Part Two5. Creating the subscription form6. Saving and verifying subscribers - Part One7. Saving and verifying subscribers - Part Two8. Saving and verifying subscribers - Part Three9. Emails and Clients - Part One10. Emails and Clients - Part Two11. Emails and Clients - Part Three12. Our fifth migration: Tokens Table13. Email validation view14. Email validation tokens15. Sending validation emails with SES16. Making it all come togetherManaging the Blog
What are the minimum requirements?
Summary
In this video, I introduce Module 6 of the blog development series, focusing on transforming our blog into a professional content management system. I'll demonstrate implementing user authentication, secure password storage, and article management features. The module will cover critical security considerations like protecting against password attacks, securing user sessions, and maintaining data integrity. By the end, viewers will have a fully functional blog management system, setting the stage for future modules on subscribers and newsletters.
Transcript
Welcome to Module 6. This is where we start to move our blog away from just displaying articles, but actually being a fully featured content management system, where we can control our articles' metadata in the next modules. We will also be able to control our subscribers. We will also be able to send out newsletters. This is where we start to actually make this feel a bit more like a professional blog, or what you would expect from a professional blog. What are the minimum requirements? We want to be able to log in. We want to be able to manage our articles. We probably also want to be able to securely store passwords. The focus here is going to be implementing a simple content management system for articles, so we can mark them released or not released. We can update metadata, but also implement a fully-fledged user authentication system, so we can sign up, we can log in, and we can do stuff like password resets. Hopefully, after this module is done, you'll also see how it is really straightforward to roll your own off. It's not as hard. You don't need a service. The focus is basically user authentication system, content management. That is the minimum requirements for this module. The technical challenge we will address is something like security considerations. How do we protect against the password attacks? How do we secure user sessions? How do we prevent unauthorized access? How do we maintain data integrity? How do we make sure that when we update an article, it fulfills some validation logic that we have? All of this will start to come together in our blog here by the end of this module. We will have a fully functional blog management system with user authentication, and then we will build upon this in the upcoming modules in 7 and 8, where we'll start to add subscribers and then finally also newsletters. Strap-in, there's going to be a lot of ground code in this video, but also where we start to build something that's a bit more interesting, at least in my opinion, compared to just displaying some text on our website.