Source for
HTML Scala JavaScript CSS Shell Java
Latest commit 471d8fa Feb 22, 2017 @rich-nguyen rich-nguyen committed on GitHub Merge pull request #15928 from guardian/pre-flight-ad-call-load-id
Include load_id as request parameter too
Failed to load latest commit information.
.github Removing the warning about Continuous deployment in PR template Jan 19, 2017
admin admin-webpack can be blocking js Feb 17, 2017
applications Leading slash on id prevents pagination from working. Feb 21, 2017
archive Add platform to the 404 page Feb 7, 2017
article new tags design outside the new nav test, and on desktop Feb 22, 2017
commercial Merge pull request #15881 from guardian/kc-target-facia Feb 22, 2017
common Merge pull request #15924 from guardian/df-extend-ab-tests Feb 22, 2017
data Refactor test so its not effected by CAPI dependency changing. Feb 20, 2017
dev-build Merge branch 'master' of into rk-cleanup… Feb 20, 2017
dev Revert "Merge pull request #15803 from guardian/revert-15791-webpack-… Feb 10, 2017
diagnostics Include load_id as request parameter too Feb 22, 2017
discussion Make closed discussion long cache change permanent Jan 30, 2017
docs Merge pull request #15900 from guardian/docs-enhance-quickstart Feb 21, 2017
facia-press Add server-side ad targeting to pressed pages Feb 20, 2017
facia Merge branch 'master' into kc-target-facia Feb 21, 2017
git-hooks move taskrunner to directory Jan 3, 2017
identity Small formatting improvements Feb 13, 2017
integrated-tests Replace Dec 19, 2016
nginx Add the config for http as well as https Jan 17, 2017
onward Fix problems found by linter Jan 26, 2017
preview Remove legacy Soulmates creatives Feb 20, 2017
project Bump version of commercial-shared dependency Feb 20, 2017
rss Remove per-app deploys Dec 22, 2016
sanity-tests/test Changed trait to sealed trait Jun 24, 2014
sport Combine commercial properties Feb 20, 2017
static Merge pull request #15924 from guardian/df-extend-ab-tests Feb 22, 2017
tools Merge pull request #15910 from guardian/bye-bye-bower Feb 22, 2017
.babelrc remove transpilation in compile Feb 20, 2017
.editorconfig Unify the deploy using Riff-Raff's the new riff-raff.yaml configuration Nov 29, 2016
.eslintignore remove vestages of bower Feb 21, 2017
.eslintrc.js disallow touching prototypes Jan 13, 2017
.gitignore remove vestages of bower Feb 21, 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 mq-list was never part of sass-mq! Feb 21, 2017
Dockerfile-dev remove grunt Dec 8, 2016
LICENSE Update license year range to 2016 Jan 18, 2016 Revert "Test out If-None-Match" Feb 22, 2017
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 shhh Feb 14, 2017
package.json install curl with yarn Feb 21, 2017
riff-raff.yaml frontend-base AMI update while deploying the apps Feb 1, 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 make svg-loader more webpack-like Feb 22, 2017
yarn.lock install curl with yarn Feb 21, 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.