This was a presentation I gave at the Denver Go Meetup in September 2015.

My goal is to teach others and myself how to build a robust, modern web application in Go. My hope is that startups will turn to Go instead of Rails or Django when building web apps.

What is a “modern web app”? It’s a server that does all this:

  • Routing
  • Middleware
  • Request Scoped Data
  • User Authentication
  • Interfaces with a database
  • Compiles js, csss, images and other assets
  • Renders templates and views
  • Serves static files
  • Shuts down gracefully
  • Sends transactional email
  • Live reloading
  • Logging

and more.

Disclaimer: This is an exploration. I am not an expert on the subject. I’ve built microservices in Go but have yet to build a monolith similar to Rails or Django.

This is the first in a multi-part series. How many parts? I’m not sure yet.

Part 1 (you’re reading it)

Part 2

Warning: I make fun of Rails a LOT. On purpose. If you’re BFFs with DHH, consider yourself warned.

I welcome any feedback or criticism.

View the sample code here.