Skip to content

Instantly share code, notes, and snippets.

@corylanou
Last active March 5, 2025 16:30
Show Gist options
  • Save corylanou/c6a6ce75667b2ff326e2ad8661020416 to your computer and use it in GitHub Desktop.
Save corylanou/c6a6ce75667b2ff326e2ad8661020416 to your computer and use it in GitHub Desktop.
Modern Web Development with Go Workshop

Workshop Overview

This hands-on workshop will guide you through building a modern web application using a powerful and efficient tech stack. You'll create a complete web application with server-side rendering, dynamic frontend interactions, database operations, and beautiful styling—all with minimal JavaScript.

Duration: 2 hours
Format: Live coding with attendee participation

Tech Stack Overview

Go

What it is: A statically typed, compiled language designed for simplicity, efficiency, and safety. Perfect for building robust web servers.

Templ

What it is: A type-safe HTML templating language for Go that compiles templates to Go code, providing excellent performance and compile-time safety.

HTMX

What it is: A lightweight JavaScript library that allows you to access modern browser features directly from HTML, enabling dynamic content without writing JavaScript.

SQLC

What it is: A tool that generates type-safe Go code from SQL queries, making database interactions safer and more efficient.

MySQL

What it is: A popular relational database system (we'll use an in-memory version for the workshop).

Tailwind CSS

What it is: A utility-first CSS framework that enables rapid UI development with predefined classes.

Installation Instructions

Workshop Project: Task Manager Application

For our workshop project, we'll build a simple task management application. This is an ideal starter project because:

  1. It demonstrates basic CRUD operations (Create, Read, Update, Delete)
  2. The data model is straightforward
  3. It provides opportunities to showcase HTMX interactions
  4. It's practical and relatable

Features we'll implement:

  • Creating new tasks
  • Listing all tasks
  • Marking tasks as complete
  • Editing task details
  • Deleting tasks
  • Filtering tasks by status

Workshop Agenda

Project Structure

Key Implementation Details

Note on Identity Management and Access (IMA)

IMA refers to Identity Management and Access, which encompasses user authentication, authorization, and account management for web applications. While we won't be implementing IMA in this workshop due to time constraints, it's an essential consideration for production applications.

For those interested in adding authentication to their applications, here are recommended third-party solutions:

  1. Auth0: A complete identity platform with features like single sign-on, multi-factor authentication, and social logins.

  2. Clerk: A developer-friendly authentication solution that provides pre-built components and SDKs for various frameworks.

  3. WorkOS: Enterprise-ready authentication with features like SSO, directory sync, and audit logs.

These solutions save development time and provide robust security compared to building authentication systems from scratch.

AI Integration During Workshop

Throughout the workshop, we'll be leveraging AI to enhance our development process:

  1. Code Generation: Using AI to generate boilerplate code and repetitive components
  2. Debugging Assistance: Getting help with error messages and implementation challenges
  3. Feature Expansion: Brainstorming with AI for additional features or improvements
  4. Code Explanations: Having AI explain complex patterns or unfamiliar syntax

Workshop attendees are encouraged to bring accounts for Claude, ChatGPT, or GitHub Copilot. The Cursor editor with built-in AI support is also an excellent option.

Getting Started

  1. Review the installation guide and set up your development environment
  2. Clone the starter repository (will be provided at the workshop)
  3. Familiarize yourself with the tech stack components
  4. Bring questions and ideas to the workshop!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment