Go is currently at version 1.13 and all code can expect all features present in that version. Formatting happens using
go fmt and
go vet is enforced in CI. In case you would like to contribute to Offen, but haven’t used Go before don’t be scared. It is easy to pick up and has great learning resources, head over to the Go wiki if you’re interested.
Offen tries to keep its build setup simple, which is why transpilers like babel are not part of the build pipeline. In turn this means, Offen uses ES5 syntax only (with the exception of nanohtml template strings, see section below) so older browsers do not choke on the bundle and can fall back gracefully. Another reason for not using ES6+ syntax is keeping the codebase readable for non-technical people who are interested in what Offen is doing under the hood.
An exception to the ES5-only rule is the use of tagged template literals when interacting with nanohtml. This code, however, will be compiled away into ES5 by its browserify transform, so the client will never receive these template literals in any way.