A curated collection of small, focused examples showing how to build web apps with goflash. Each example is a tiny program you can run locally to explore a specific feature or pattern.
- Prerequisites: Go 1.22+ installed.
- Clone this repo, then run any example from its folder.
Example:
cd categories/routing/basic
go run .Most examples start a server on http://localhost:8080 unless stated otherwise.
| Example | What it shows |
|---|---|
| basic | Minimal server and one route |
| any_methods | Handle any HTTP method on a route |
| grouping | Route groups and lightweight middleware |
| group_nested | Nested groups with layered middleware |
| headers_status | Setting headers and custom HTTP status |
| http_mount | Mount net/http handlers on flash and mix routing |
| method_not_allowed | Custom 405 Method Not Allowed handler |
| nethttp_compat | net/http compatibility: mount handlers and params |
| query_params | Read query params and respond with JSON |
| Example | What it shows |
|---|---|
| cors_timeout | CORS and per-route timeout middleware |
| csrf | CSRF protection middleware and a simple form |
| gzip_requestid_ratelimit | Gzip + request ID + rate limit + buffer middleware |
| logger_from_context | Structured logging with slog pulled from context |
| middleware | Tiny middleware example adding a header |
| sessions | Cookie and header-based sessions |
| Example | What it shows |
|---|---|
| context | Store/get values from the per-request context |
| context_cancel | Respect context deadlines and client disconnects |
| custom_logger_zap | Using zap via a minimal slog adapter + access logs |
| error_handling | Custom error handling and 404 responses |
| graceful_shutdown | Graceful HTTP server shutdown |
| onerror_notfound | Override OnError and NotFound handlers |
| otel | OpenTelemetry tracing middleware (stdout exporter) |
| Example | What it shows |
|---|---|
| cookies | Setting and reading cookies |
| static | Serve static files from multiple directories |
| templates | HTML templates rendering |
| websocket | WebSocket upgrade and echo |
| Example | What it shows |
|---|---|
| binding_json | JSON request binding and JSON response |
| validation | Validate input and return field errors |
| validation_with_i18n | Validation with i18n translations |
From the repository root:
./scripts/build.sh- If you see missing modules, run
go mod tidyin the example folder. - Some examples depend on third-party libs (e.g.,
gorilla/websocket,zap, OpenTelemetry). Go will fetch them automatically. - Port already in use? Change the port in the example's
main.go.
Enjoy exploring! ✨