Waffle
2024 – present
A Go web application framework designed for production-ready services. Modular, layered, composable. The engine behind this site, ibweb, and the Strata ecosystem.
Waffle — Web Application Framework for Flavorful Layered Engineering — is a Go framework that bundles the pieces I reach for every time I build a web service: a Chi-based router with sensible middleware, structured logging with Zap, Viper-backed configuration, graceful shutdown, and optional Let's Encrypt TLS with both HTTP-01 and DNS-01 challenges. It's opinionated where it helps and unopinionated where it hurts.
The heart of Waffle is the pantry — 40-plus reusable packages covering authentication (JWT, OAuth2 for 25+ providers including the education-specific ones like Clever, Canvas, and Schoology), database drivers (MongoDB, PostgreSQL, MySQL, SQLite, Redis), caching and sessions, templating with per-feature template sets, file serving with pre-compression, background job pools, WebSockets and Server-Sent Events, email, push notifications, and structured errors with HTTP status mapping.
The philosophy is simple: start from a foundation instead of a kitchen sink. Applications pick the pantry packages they need and leave the rest. Both this site and Intelligence Builders are built on Waffle, and the Strata education-analytics services share the same bones.