JavaScript CSS Java Shell Python Ruby journalism HTML Scala
Need help with frontend?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
guardian

Description

The Guardian Dot Com.

5.5K Stars 567 Forks Other 93.7K Commits 60 Opened issues

Services available

Need anything else?

We're hiring!

Ever thought about joining us? https://workforus.theguardian.com/careers/digital-development/

Frontend

The Guardian website frontend.

For everybody who engages with our journalism, theguardian.com is an industry-best news website that is fast, accessible and easy to use. Unlike other ways of developing products, ours puts the audience first.

Frontend is a set of Play Framework 2 Scala applications. It is built in two parts, using

make
for the client side asset build and SBT for the Play Framework backend.

Moving to main

The

master
branch in the frontend repository has now been renamed to
main
. If you work with this repository, there are two things you need to do!

First, you need to make some changes to your local repository. We recommend you run the following sequence of commands, which will rename your master branch to main and set main as your default branch.

git fetch --all
git remote set-head origin -a
git branch master --set-upstream-to origin/main
git branch -m master main

Second, you’ll need to rebase or merge from main on any branch you’ve started working on before the rename. This is because frontend has a pre-push git hook that is hardcoded to look for

origin/master
. This has been patched in main, so you’ll need to integrate that change into your branch to be able to push to github.

Documentation

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

www.theguardian.com
and
api.nextgen.guardianapps.co.uk
(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.

Deploying

Follow the steps described in the How to deploy document.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.