|
|
|
@ -31,21 +31,29 @@ Alternately, even just feedback is great: |
|
|
|
|
|
|
|
|
|
# Design Decisions |
|
|
|
|
|
|
|
|
|
* TLS is terminated somewhere else, like on a sidecar or reverse proxy. |
|
|
|
|
* no TLS in this code |
|
|
|
|
* do it somewhere else, like on a sidecar or reverse proxy |
|
|
|
|
* this might have to change to support http > 1 later |
|
|
|
|
* logging: [rs/zerolog](https://github.com/rs/zerolog) |
|
|
|
|
* configuration: [spf13/viper](https://github.com/spf13/viper) |
|
|
|
|
* used as a wrapper around env vars |
|
|
|
|
* used as a wrapper around env vars, because of typed getters |
|
|
|
|
* router is Chi: [go-chi/chi](https://github.com/go-chi/chi) |
|
|
|
|
* Prometheus-style metrics via [slok/go-http-metrics](https://github.com/slok/go-http-metrics) |
|
|
|
|
* code formatted with [mvdan.cc/gofumpt](https://mvdan.cc/gofumpt) |
|
|
|
|
* code style checked with [golangci/golangci-lint](https://github.com/golangci/golangci-lint) |
|
|
|
|
|
|
|
|
|
# Pending Design Decisions |
|
|
|
|
|
|
|
|
|
* database: TBD (thinking about [go-gorm/gorm](https://github.com/go-gorm/gorm)) |
|
|
|
|
* templating: TBD (suggestions welcome) |
|
|
|
|
|
|
|
|
|
# TODO |
|
|
|
|
|
|
|
|
|
* Basic HTML Templates |
|
|
|
|
* Database Boilerplate |
|
|
|
|
* Sessions Middleware |
|
|
|
|
* sync.Once example for precompiling templates |
|
|
|
|
* Bundling Static Assets Into Binary |
|
|
|
|
* sync.Once example for re-compiling templates |
|
|
|
|
* Bundling static assets into binary |
|
|
|
|
|
|
|
|
|
# Known Bugs (more TODO) |
|
|
|
|
|
|
|
|
|