Source for
HTML Scala JavaScript CSS Shell Java
Latest commit 514ee19 Feb 17, 2017 @regiskuckaertz regiskuckaertz committed on GitHub Merge pull request #15872 from guardian/rk-sonobi-hash
Enable Sonobi when #sonobi
Failed to load latest commit information.
.github Removing the warning about Continuous deployment in PR template Jan 19, 2017
admin Increase frequency of email front refresh Feb 10, 2017
applications Merge branch 'master' of into rk-remove-… Feb 15, 2017
archive Add platform to the 404 page Feb 7, 2017
article add publisher logo required field for non-AMP pages. (#15851) Feb 16, 2017
commercial added whitespace between ophan and gogleanalytics tracking Feb 16, 2017
common Fix end slate display on Media Atom video pages (#15867) Feb 17, 2017
data Move the Slice MPU insertion from JS, to Scala Feb 15, 2017
dev-build Add JSON endpoint for inline book component Feb 3, 2017
dev Revert "Merge pull request #15803 from guardian/revert-15791-webpack-… Feb 10, 2017
diagnostics remove dfp timings Jan 4, 2017
discussion Make closed discussion long cache change permanent Jan 30, 2017
docs Additional documentation Jan 25, 2017
facia-press Integrate shared commercial library Jan 31, 2017
facia Move the Slice MPU insertion from JS, to Scala Feb 15, 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 Moving breaking-news to onward Jan 19, 2017
project Bumped identity version to force release of… Feb 17, 2017
rss Remove per-app deploys Dec 22, 2016
sanity-tests/test Changed trait to sealed trait Jun 24, 2014
sport Use shared ad targeting Feb 14, 2017
static Merge pull request #15872 from guardian/rk-sonobi-hash Feb 17, 2017
tools bump yarn version Feb 17, 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 shhh Feb 14, 2017
package.json install ophan from npm Feb 17, 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 install ophan from npm Feb 17, 2017
yarn.lock install ophan from npm Feb 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.