{"id":13397768,"url":"https://github.com/guardian/frontend","last_synced_at":"2025-05-12T15:27:44.322Z","repository":{"id":3327290,"uuid":"4370755","full_name":"guardian/frontend","owner":"guardian","description":"The Guardian DotCom.","archived":false,"fork":false,"pushed_at":"2025-05-08T14:42:25.000Z","size":699216,"stargazers_count":5861,"open_issues_count":136,"forks_count":563,"subscribers_count":202,"default_branch":"main","last_synced_at":"2025-05-08T15:37:12.122Z","etag":null,"topics":["production"],"latest_commit_sha":null,"homepage":"https://theguardian.com","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guardian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-05-18T15:39:15.000Z","updated_at":"2025-05-08T14:42:35.000Z","dependencies_parsed_at":"2023-09-21T19:32:36.422Z","dependency_job_id":"25e23bd5-8317-4267-967d-59b1caca051b","html_url":"https://github.com/guardian/frontend","commit_stats":{"total_commits":71463,"total_committers":446,"mean_commits":"160.23094170403587","dds":0.9566908749982508,"last_synced_commit":"024ae62a28f76d43fe37791fa99ee5a2aedb1e18"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Ffrontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Ffrontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Ffrontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Ffrontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guardian","download_url":"https://codeload.github.com/guardian/frontend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253765105,"owners_count":21960673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["production"],"created_at":"2024-07-30T18:01:43.886Z","updated_at":"2025-05-12T15:27:39.308Z","avatar_url":"https://github.com/guardian.png","language":"Scala","funding_links":[],"categories":["HTML","Scala"],"sub_categories":[],"readme":"## We're hiring!\nEver thought about joining us?\n[https://workforus.theguardian.com/careers/product-engineering/](https://workforus.theguardian.com/careers/product-engineering/)\n\n# Frontend\nThe Guardian website frontend.\n\n**For everybody who engages with our journalism, [theguardian.com](https://www.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.**\n\nFrontend is [a set of Play Framework 2 Scala applications](docs/02-architecture/01-applications-architecture.md). It is built in two parts, using `make` for the client side asset build and SBT for the Play Framework backend.\n\nFor Articles, Frontend's responsiblity is to build JSON to pass to the modern rendering service, [Dotcom Rendering](https://github.com/guardian/dotcom-rendering).\n\n# Core Development Principles (lines in the sand)\nThese principles apply to all requests on `www.theguardian.com` and `api.nextgen.guardianapps.co.uk` (our Ajax URL)\n\n* Every request can be cached and has an appropriate Cache-Control header set.\n* 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)\n* The average response time of any endpoint is less than 500ms.\n* Requests that take longer than two seconds will be terminated.\n\n# Documentation\n\n**[All documentation notes and useful items can be found in the `docs` folder](docs).**\n\n# New developers\nWelcome! **[How to set up and run frontend](docs/01-start-here).**\n\nTo get set up, please follow [the installation guide](docs/01-start-here/01-installation-steps.md).\n\nFixes for common problems can be found [here](docs/01-start-here/04-troubleshooting.md).\n\nPlease read the [development tips](docs/01-start-here/05-development-tips.md) document to learn about more about development process.\n\nFor our deployment process, see [how to deploy](docs/01-start-here/03-how-to-deploy.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguardian%2Ffrontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguardian%2Ffrontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguardian%2Ffrontend/lists"}