blog: simplify app, stop being a submodule

This app has a lot of history. App Engine used to require different code
for local execution and running on App Engine, because the latter supplied
func main. No longer. Unify all the code into a simpler single file.

Also use the new x/website. (The old go.mod was pinning an older
x/website from before we adopted fs.FS. Now that we have a backported
io/fs, we can use the new x/website, which is what lets us get rid of
the submodule boundary.)

This brings blog in line with the other websites in this repo,
which will help smooth the eventual merge.

Change-Id: Ibe95674ac6765c15bb82a82dc52845a2377cebf7
Trust: Russ Cox <>
Reviewed-by: Jamal Carvalho <>
11 files changed
tree: d0945529953df335ddb66c6556f89914f1c2a203
  1. .gitattributes
  2. .prettierrc
  9. _content/
  10. blog/
  11. cmd/
  12. codereview.cfg
  13. content.go
  16. go.mod
  17. go.sum
  18. internal/
  19. tour/

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.