← all organisations

govuk-pay / Code

24 languages, 27.6 MB of source, and what the live estate is written in today.

Language figures come from GitHub's own per-repository byte counts, which measure source rather than a single headline label. File counts and repository sizes come from the mirrors themselves. The two tell different stories, and the difference is the point.

The codebase

24
languages in use
27.6 MB of source
29.1k
files at HEAD
across every analysed repository
0 B
on disk as mirrors
full history, every branch and tag
126.6 MB
largest repository
pay-products-ui

What stands out

One archived repository holds 22% of all the bytes.

pay-products-ui is 126.6 MB of git - a 2013 static snapshot of www.gov.uk, not source code. It single-handedly makes HTML the largest language by volume (4% of all source bytes). Any size or language statistic that does not exclude it is measuring an archive, not a codebase.

Sizes here are GitHub's reported figures.

This organisation was harvested with blobless partial clones, which fetch every commit and file path but not file contents, so there is no local size to measure against. Checked elsewhere in this dataset against 1,526 fully mirrored repositories, GitHub's reported size is accurate to within about six percent.

Ruby is the house language, but its share is falling.

Ruby is the primary language of 13% of archived repositories but only 0% of live ones. Python, Go, TypeScript and HCL have taken the difference - the signature of a shift from monolithic Rails publishing apps toward data pipelines, infrastructure-as-code and platform tooling.

Most repositories are small; a handful are enormous.

64% of repositories are under a megabyte of git data. The estate is not a monolith - it is a very long tail of small services, gems and prototypes around a few large publishing applications.

Languages, two ways

By volume of source

Bytes of code. Dominated by archived static HTML.

JavaJava: 15.2 MB15.2 MBJavaScriptJavaScript: 4.6 MB4.6 MBTypeScriptTypeScript: 1.9 MB1.9 MBCSSCSS: 1.6 MB1.6 MBHTMLHTML: 1.1 MB1.1 MBNunjucksNunjucks: 1.0 MB1.0 MBGoGo: 818.1 kB818.1 kBSCSSSCSS: 516.5 kB516.5 kBPklPkl: 335.3 kB335.3 kBShellShell: 138.0 kB138.0 kBPythonPython: 135.3 kB135.3 kBRubyRuby: 96.9 kB96.9 kBAPI BlueprintAPI Blueprint: 43.8 kB43.8 kBDockerfileDockerfile: 26.3 kB26.3 kB

By number of repositories

How many repositories name each language as their primary one. A better guide to what engineers actually work in.

ShellShell: 4242JavaScriptJavaScript: 3232DockerfileDockerfile: 3030HTMLHTML: 2121SCSSSCSS: 1818JavaJava: 1212RubyRuby: 1111CSSCSS: 1010TypeScriptTypeScript: 1010GoGo: 99NunjucksNunjucks: 99PythonPython: 77MakefileMakefile: 66PLpgSQLPLpgSQL: 44

Live estate versus archive

The same language ranking, split by whether the repository is still active. The shift is the clearest signal of technical direction in the whole dataset.

Active repositories

JavaScriptJavaScript: 66JavaJava: 1010GoGo: 22TypeScriptTypeScript: 55ShellShell: 44HTMLHTML: 22RubyRuby: 00PythonPython: 00PklPkl: 22CSSCSS: 00

Archived repositories

JavaScriptJavaScript: 77JavaJava: 22GoGo: 77TypeScriptTypeScript: 33ShellShell: 33HTMLHTML: 55RubyRuby: 66PythonPython: 55PklPkl: 00CSSCSS: 22

Scale

Repository size distribution

Git data per repository, log-ish buckets.

2619.5136.50< 10 kB: 5< 10 kB< 100 kB: 26< 100 kB< 1 MB: 25< 1 MB< 10 MB: 15< 10 MB< 100 MB: 15< 100 MB100 MB +: 1100 MB +

Commits against files

Each circle is a repository, sized by number of distinct authors. Both axes are logarithmic. The diagonal band is the normal relationship between codebase size and churn; outliers above it are long-lived apps with heavy iteration, below it are dumps and imports.

19.4k2.6k341.045.26.0326.8239.52.1k19.1kDD-payment-pages: 81 commits, 19,122 files, 6 authorscarbon-relay-ng: 1,228 commits, 184 files, 85 authorschef-auditd: 122 commits, 34 files, 16 authorschef-cloudwatch-logs: 19 commits, 11 files, 6 authorsconfiguration: 67 commits, 25 files, 8 authorscron-resource: 306 commits, 22 files, 23 authorsdev-environments: 7 commits, 14 files, 1 authorsdynolocker: 20 commits, 16 files, 1 authorsenvironment-config: 23 commits, 14 files, 1 authorshelm-charts: 23 commits, 43 files, 1 authorspaas-grafana-annotation-resource: 326 commits, 29 files, 18 authorspay-admin-dashboard: 23 commits, 64 files, 10 authorspay-adminusers: 8,704 commits, 480 files, 156 authorspay-adot: 125 commits, 18 files, 14 authorspay-agreement-frontend-prototype: 6 commits, 156 files, 4 authorspay-api-docs-generator: 39 commits, 17 files, 9 authorspay-authorisation-api: 7 commits, 3 files, 4 authorspay-aws-compliance: 719 commits, 10 files, 23 authorspay-cardid: 3,805 commits, 55 files, 115 authorspay-ci: 4,514 commits, 273 files, 69 authorspay-code-analysis-config: 12 commits, 6 files, 4 authorspay-connector: 19,383 commits, 1,682 files, 206 authorspay-dependabot-stats: 184 commits, 43 files, 12 authorspay-direct-debit-api-proposal: 7 commits, 4 files, 6 authorspay-direct-debit-connector: 3,558 commits, 491 files, 63 authorspay-direct-debit-demo: 19 commits, 70 files, 3 authorspay-direct-debit-frontend: 2,049 commits, 133 files, 64 authorspay-firebreak-go-cli: 33 commits, 28 files, 12 authorspay-frontend: 11,012 commits, 319 files, 209 authorspay-integration-php: 19 commits, 18 files, 4 authorspay-ivr-demo: 26 commits, 13 files, 10 authorspay-java-commons: 2,496 commits, 136 files, 67 authorspay-java-lambdas: 88 commits, 99 files, 13 authorspay-jenkins-library: 332 commits, 30 files, 54 authorspay-js-commons: 2,936 commits, 236 files, 66 authorspay-js-metrics: 154 commits, 23 files, 22 authorspay-ledger: 7,006 commits, 379 files, 63 authorspay-logger: 142 commits, 6 files, 11 authorspay-logging-firehose-transformation: 187 commits, 41 files, 11 authorspay-logging-s3-to-firehose-delivery: 108 commits, 23 files, 9 authorspay-migration-test-1: 11 commits, 8 files, 2 authorspay-nginx-proxy: 640 commits, 31 files, 76 authorspay-notifications: 382 commits, 17 files, 49 authorspay-online-prototype: 676 commits, 142 files, 39 authorspay-open-banking-demo: 67 commits, 63 files, 9 authorspay-open-banking-prototype: 78 commits, 36 files, 9 authorspay-pagerduty: 108 commits, 30 files, 24 authorspay-partner-integrations: 15 commits, 42 files, 7 authorspay-performance-platform: 10 commits, 9 files, 6 authorspay-performance-reporter: 1,291 commits, 38 files, 31 authorspay-pr-flow-stats: 160 commits, 21 files, 16 authorspay-process-logger: 44 commits, 13 files, 12 authorspay-product-page: 2,126 commits, 116 files, 96 authorspay-products: 4,479 commits, 196 files, 101 authorspay-products-ui: 6,114 commits, 168 files, 110 authorspay-prometheus-pushgateway-resource: 53 commits, 35 files, 9 authorspay-publicapi: 6,692 commits, 495 files, 167 authorspay-publicapistub: 48 commits, 9 files, 11 authorspay-publicauth: 4,029 commits, 76 files, 136 authorspay-recurring-card-payments: 13 commits, 23 files, 4 authorspay-release-hud: 51 commits, 20 files, 14 authorspay-request: 26 commits, 32 files, 7 authorspay-rota-generator: 167 commits, 14 files, 8 authorspay-run-amock: 105 commits, 35 files, 17 authorspay-s3-resource: 246 commits, 640 files, 68 authorspay-sample-integration: 161 commits, 57 files, 35 authorspay-selfservice: 17,601 commits, 1,452 files, 222 authorspay-sentry: 19 commits, 11 files, 9 authorspay-set-up-pre-commit: 13 commits, 5 files, 7 authorspay-sli-display: 63 commits, 8 files, 13 authorspay-smoke-tests: 503 commits, 32 files, 34 authorspay-stream-s3-sqs: 1,110 commits, 30 files, 35 authorspay-tcp-proxy: 72 commits, 14 files, 15 authorspay-tech-docs: 2,914 commits, 98 files, 94 authorspay-telephone-payments: 26 commits, 10 files, 6 authorspay-toolbox: 3,914 commits, 271 files, 81 authorspay-transaction-grouping-prototype: 64 commits, 35 files, 3 authorspay-user-support: 856 commits, 126 files, 13 authorspay-webhooks: 3,466 commits, 174 files, 49 authorspay-xray: 13 commits, 7 files, 7 authorspay_tag_stats: 6 commits, 10 files, 4 authorspkl-concourse-pipeline: 49 commits, 18 files, 8 authorspool-resource: 178 commits, 47 files, 52 authorssquid: 266 commits, 27 files, 50 authorsfiles at HEAD (log)commits (log)

The shape of a repository

Directory layout is the cheapest reliable signal of what a repository actually is. app/ with config/ and spec/ is a Rails application; src/ with test/ is Java or Node. Counted by how many repositories contain each top-level directory at HEAD.

Most common top-level directories

srcsrc: 2727docsdocs: 1313testtest: 1212appapp: 1010liblib: 88scriptsscripts: 88specspec: 77openapiopenapi: 77publicpublic: 55cmdcmd: 55templatestemplates: 55commoncommon: 55teststests: 55.vscode.vscode: 55configconfig: 44binbin: 44pkgpkg: 33recipesrecipes: 33

Most common file extensions

By total file count across the estate.

.js.js: 13.7k13.7k.java.java: 3.3k3.3k.json.json: 1.7k1.7k.md.md: 1.7k1.7k.ts.ts: 931931.png.png: 883883.go.go: 706706.yml.yml: 542542.njk.njk: 489489.scss.scss: 406406.html.html: 397397.sql.sql: 306306.yaml.yaml: 176176.xml.xml: 158158.css.css: 152152.txt.txt: 130130

The twenty largest repositories

RepositoryLanguageGit size CommitsFilesStatus
pay-products-uiJavaScript126.6 MB6,114168active
pay-frontendJavaScript84.1 MB11,012319active
pay-selfserviceJavaScript54.3 MB17,6011,452active
pay-connectorJava42.0 MB19,3831,682active
pay-publicapiJava35.0 MB6,692495active
pay-direct-debit-connectorJava28.8 MB3,558491archived
DD-payment-pagesHTML19.4 MB8119,122archived
pay-toolboxTypeScript18.6 MB3,914271active
pay-js-commonsSCSS17.2 MB2,936236active
pay-online-prototypeCSS13.1 MB676142archived
carbon-relay-ngGo12.6 MB1,228184archived
cron-resourceGo11.8 MB30622active
pay-adminusersJava11.7 MB8,704480active
pay-product-pageHTML10.9 MB2,126116active
pay-publicauthJava10.9 MB4,02976active
pay-tech-docsHTML10.6 MB2,91498active
pay-direct-debit-frontendJavaScript10.2 MB2,049133archived
pay-java-lambdasJava7.0 MB8899active
pay-ciPkl6.6 MB4,514273active
pay-ledgerJava6.3 MB7,006379active