Source for
HTML Scala JavaScript CSS Shell Java
Latest commit ac572bb Jan 21, 2017 @philwills philwills committed on GitHub Merge pull request #15649 from guardian/twirl-edition
@ not $ to access variable
Failed to load latest commit information.
.github Removing the warning about Continuous deployment in PR template Jan 19, 2017
admin Move CommercialClientSideLogging job to admin app Jan 18, 2017
applications should be called variant seven Jan 20, 2017
archive Fix test by including a test request Jan 6, 2017
article should be called variant seven Jan 20, 2017
commercial Hosted Gallery call to action - fix layout when onward journeys are f… Jan 19, 2017
common @ not $ to access variable Jan 21, 2017
data Add test database files Jan 13, 2017
dev-build Moving breaking-news to onward Jan 19, 2017
dev use native eslint config to catch incorrect lodash usage Jan 13, 2017
diagnostics remove dfp timings Jan 4, 2017
discussion Remove per-app deploys Dec 22, 2016
docs Merge pull request #15631 from guardian/tb-update-config-version-remo… Jan 20, 2017
facia-press playable youtube media atoms on fronts (#15513) Jan 13, 2017
facia Only wrap inline elements in <a>, because Outlook Jan 19, 2017
git-hooks move taskrunner to directory Jan 3, 2017
identity Fix copy Jan 18, 2017
integrated-tests Replace Dec 19, 2016
nginx Add the config for http as well as https Jan 17, 2017
onward Merge pull request #15605 from guardian/nb-nav-changes Jan 19, 2017
preview Moving breaking-news to onward Jan 19, 2017
project set showinfo=1 on youtube atom embed. (#15619) Jan 20, 2017
router Play 2.5 + csrf fixes (#15367) Dec 16, 2016
rss Remove per-app deploys Dec 22, 2016
sanity-tests/test Changed trait to sealed trait Jun 24, 2014
sport Remove per-app deploys Dec 22, 2016
static Merge pull request #15643 from guardian/nb-header-seven Jan 20, 2017
tools de-AMD webpack build Jan 13, 2017
.babelrc add transform runtime plugin Jan 9, 2017
.editorconfig Unify the deploy using Riff-Raff's the new riff-raff.yaml configuration Nov 29, 2016
.eslintignore add transpilation step Jan 9, 2017
.eslintrc.js disallow touching prototypes Jan 13, 2017
.gitignore Merge pull request #15563 from guardian/nginx-setup-with-valid-ssl-ce… Jan 16, 2017
.nvmrc actaully let's go to 6 Jun 28, 2016
.prout.json Remove project name in Prout checkpoint Jan 9, 2017
.sass-lint.yml adding color: inherit back Dec 19, 2016
Dockerfile-dev remove grunt Dec 8, 2016
LICENSE Update license year range to 2016 Jan 18, 2016 remove grunt Dec 8, 2016
cla-corporate.txt Add Contributor License Agreements to the project Apr 19, 2013
cla-individual.txt Add Contributor License Agreements to the project Apr 19, 2013 Silence ECR login command Aug 18, 2016
docker-compose.yml Add possibility to run container in watch mode and overwrite port map… Aug 18, 2016 Force pulling the docker image and make install at startup Aug 18, 2016
makefile handle transpiled in watch task Jan 9, 2017
package.json remove loadscript Jan 17, 2017
riff-raff.yaml Moving breaking-news to onward Jan 19, 2017
sbt Revert "Merge pull request #15441 from guardian/tb-fix-logback-in-tests" Jan 4, 2017 remove grunt Dec 8, 2016
webpack.config.js this can be terser Jan 9, 2017
yarn.lock remove loadscript Jan 17, 2017


We're hiring!

Ever thought about joining us?


The Guardian website frontend.

Frontend is a set of Play Framework 2 Scala applications.

Frontend is built in two parts, using make for the client side asset build and SBT for the Play Framework backend.


All documentation notes and useful items can be found in the docs folder.

Core Development Principles (lines in the sand)

These principles apply to all requests on and (our Ajax URL)

On the server

  • Every request can be cached and has an appropriate Cache-Control header set.
  • Each request may only perform one I/O operation on the backend. (you cannot make two calls to the content API or any other 3rd party)
  • The average response time of any endpoint is less than 500ms.
  • Requests that take longer than two seconds will be terminated.

New developers

Welcome! The best place to start is here

To get set up, please follow the installation guide.

Fixes for common problems can be found here.

Please, read the development tips document to learn about more about development process.


Follow the steps described in the How to deploy document.