internal/backport: add backports of current Go dev template, fs packages

This will let us use these APIs on App Engine before Go 1.16 is available.
The only thing we can't backport from Go 1.16 is embed, so that has to
be build-tagged off still, but we don't really need embed on App Engine.

This will let us move off App Engine Flex onto regular App Engine,
which will greatly simplify deployment and make it possible to do automatic

When App Engine adds Go 1.16 support, most of this can go away.
(The template packages will need to stay, as will need some
Go 1.17 bug fixes from them.)

Change-Id: I16ee64862a43f591a31fae04caf4caa0fdb5af62
Trust: Russ Cox <>
Run-TryBot: Russ Cox <>
TryBot-Result: Go Bot <>
Reviewed-by: Dmitri Shuralyov <>
131 files changed
tree: 954a6b484be8ee0394083e209465860ebd775a99
  1. _content/
  2. blog/
  3. cmd/
  5. internal/
  6. tour/
  7. .gitattributes
  8. .prettierrc
  10. codereview.cfg
  11. content.go
  15. go.mod
  16. go.sum

Go website

Go Reference

This repo holds content and serving programs for the web site.

Content is in _content/. Server code is in cmd/ and internal/.

To run the server to preview local content changes, use:

go run ./cmd/golangorg

The supporting programs cmd/admingolangorg and cmd/googlegolangorg are the servers for and (They do not use the _content/ directory.)

Each command directory has its own explaining deployment.

JS/CSS Formatting

This repository uses prettier to format JS and CSS files.

The version of prettier used is 1.18.2.

It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the website repository is located at Prefix your issue with “x/website:” in the subject line, so it is easy to find.