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 API10. Our third migration: Altering Posts Table11. Only show posts marked readyModule 7 - Adding Subscribers
1. What are the minimum requirements?2. Our fourth migration: Subscribers Table3. Creating the subscription form4. Adding some interactivity with HTMX5. Saving new subscribers in the database6. Verifying subscriber emails7. Our fifth migration: Tokens Table8. Email validation view9. Email validation tokens10. Sending validation emails with SES11. 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.