Creating a Guestbook Application

This tutorial shows you how to implement a Go application for App Engine—a simple guestbook that lets users post messages to a public message board. It uses the Go http package to serve web pages and Go's html/template package.

The UI for the application looks like this:


  1. Clone the tutorial project.
  2. Walk through the code to see how to integrate your application with Google accounts, handle web forms, and store data in Google Cloud Datastore.
  3. Run, test, and deploy the project.


There are no costs associated with running this tutorial. This application does not exceed the free quota.

Before you begin

  1. If you don't have it installed, download Python 2.7. The Go software development kit (SDK) uses modified versions of the development tools from the Python SDK.
  2. Download the App Engine SDK for Go.
  3. Optionally, to simplify development and deployment, add the directory to the Go SDK to your PATH environment variable by adding the following line to your $HOME/.profile, $HOME/.bashrc, or equivalent:

  4. Create or select a Cloud Platform project in the Cloud Platform Console and then ensure that project includes an App Engine application:

    Go to App Engine

    The Dashboard opens if an App Engine application already exists in your project. Otherwise, you are prompted to choose the region where you want your App Engine application located.

  5. Note the Project ID, which might be different from the project name and is used in commands.

Cloning the project from GitHub

  1. Clone the Guestbook application repository to your local machine:

    git clone
  2. Switch to the branch with the final version of the application:

    cd appengine-guestbook-go/
    git fetch
    git checkout part4-usingdatastore

The cloned project contains several branches. In this tutorial we will only cover the project in the branch named part4-usingdatastore.

Building and running locally

To build and run the sample locally:

  1. From the project appengine-guestbook-go in the branch part4-usingdatastore, invoke the command:

    goapp serve
  2. The development web server is now running, and you can visit this URL in your browser:


  3. The app serves a page that allows anonymous users to sign the guestbook.

  4. Terminate the development server by pressing Control+C.

Understanding the code

To walk through the application code and see how it works, continue to the next page.

Send feedback about...

App Engine standard environment for Go