← all organisations

uktrade / Code

19 languages, 14.7 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

19
languages in use
14.7 MB of source
4.4k
files at HEAD
across every analysed repository
0 B
on disk as mirrors
full history, every branch and tag
138.8 MB
largest repository
redbox

What stands out

One archived repository holds 42% of all the bytes.

redbox is 138.8 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 6% 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.

62% 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.

PythonPython: 10.2 MB10.2 MBHCLHCL: 1.7 MB1.7 MBJupyter NotebookJupyter Notebook: 758.5 kB758.5 kBHTMLHTML: 620.1 kB620.1 kBGherkinGherkin: 449.5 kB449.5 kBJavaScriptJavaScript: 367.6 kB367.6 kBCSSCSS: 229.8 kB229.8 kBRubyRuby: 155.8 kB155.8 kBMakefileMakefile: 55.0 kB55.0 kBSCSSSCSS: 54.4 kB54.4 kBShellShell: 32.6 kB32.6 kBDockerfileDockerfile: 13.9 kB13.9 kBMakoMako: 4.5 kB4.5 kBJustJust: 2.7 kB2.7 kB

By number of repositories

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

PythonPython: 2828MakefileMakefile: 1616ShellShell: 1515HTMLHTML: 1010JavaScriptJavaScript: 99CSSCSS: 77DockerfileDockerfile: 77Jupyter NotebookJupyter Notebook: 33MakoMako: 22HCLHCL: 22RubyRuby: 11GherkinGherkin: 11JustJust: 11PLpgSQLPLpgSQL: 11

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

PythonPython: 1717ShellShell: 00JavaScriptJavaScript: 00HTMLHTML: 00RubyRuby: 00Jupyter NotebookJupyter Notebook: 00CSSCSS: 00GherkinGherkin: 00HCLHCL: 00

Archived repositories

PythonPython: 55ShellShell: 33JavaScriptJavaScript: 22HTMLHTML: 22RubyRuby: 11Jupyter NotebookJupyter Notebook: 11CSSCSS: 11GherkinGherkin: 11HCLHCL: 11

Scale

Repository size distribution

Git data per repository, log-ish buckets.

1712.88.54.20< 10 kB: 3< 10 kB< 100 kB: 3< 100 kB< 1 MB: 17< 1 MB< 10 MB: 9< 10 MB< 100 MB: 4< 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.

10.4k1.7k270.343.57.029.242.2193.9891.0.github: 174 commits, 12 files, 16 authorsActiveRecordExtended: 398 commits, 88 files, 20 authorsdatabaker: 473 commits, 35 files, 16 authorsdirectory-form-dashboard: 9 commits, 42 files, 3 authorsdirectory-form-data: 75 commits, 53 files, 6 authorsdirectory-form-ui: 72 commits, 228 files, 8 authorsdirectory-forms-api-client: 222 commits, 28 files, 40 authorsdirectory-header-footer: 169 commits, 71 files, 13 authorsdirectory-nginx-proxy: 25 commits, 2 files, 5 authorsdirectory-periodic-tests: 471 commits, 53 files, 8 authorsdirectory-sso-api-client: 382 commits, 33 files, 49 authorsdirectory-sso-nginx-proxy: 16 commits, 2 files, 5 authorsdirectory-ui-export-readiness: 2,407 commits, 439 files, 27 authorsdirectory-ui-verify-matching-service-adapter: 7 commits, 6 files, 3 authorsdjango-audit-log-middleware: 31 commits, 17 files, 6 authorsdjango-db-anonymiser: 220 commits, 64 files, 14 authorsdjango-log-formatter-asim: 275 commits, 35 files, 20 authorsdjango-staff-sso-client: 250 commits, 37 files, 42 authorsdjangosaml2idp2: 211 commits, 94 files, 34 authorsgithub-standards: 602 commits, 76 files, 19 authorsgovuk-onelogin-django: 322 commits, 52 files, 13 authorsgreat.gov.uk-structure: 61 commits, 18 files, 6 authorsgreat.gov.uk-website: 107 commits, 95 files, 10 authorsidscrub: 99 commits, 32 files, 10 authorsmatchbox: 3,392 commits, 275 files, 32 authorsmessytables: 609 commits, 88 files, 51 authorsords: 73 commits, 15 files, 6 authorspii-secret-check-hooks: 186 commits, 34 files, 17 authorspip-audit: 801 commits, 82 files, 47 authorsplatform-tools: 10,438 commits, 588 files, 100 authorspysaml2: 3,712 commits, 456 files, 204 authorsredbox: 9,324 commits, 891 files, 114 authorsstream-read-xbrl: 605 commits, 37 files, 23 authorsstream-unzip: 586 commits, 57 files, 25 authorsstream-zip: 659 commits, 41 files, 21 authorsterraform-platform-modules: 2,816 commits, 189 files, 45 authorsxypath: 370 commits, 49 files, 15 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

teststests: 1111docsdocs: 99srcsrc: 55testtest: 55.circleci.circleci: 33.vscode.vscode: 33fixturesfixtures: 33liblib: 22binbin: 22alicealice: 22datadata: 22gunicorngunicorn: 22scriptsscripts: 22notebooksnotebooks: 22docdoc: 22workflow-templatesworkflow-templates: 11assetsassets: 11templatestemplates: 11

Most common file extensions

By total file count across the estate.

.py.py: 1.6k1.6k.html.html: 275275.tf.tf: 267267.png.png: 243243.yml.yml: 236236.md.md: 230230.scss.scss: 144144.js.js: 141141.svg.svg: 115115.xml.xml: 7373.json.json: 7272.hcl.hcl: 6161.txt.txt: 4949.sh.sh: 4848.xsd.xsd: 4848.rb.rb: 4646

The twenty largest repositories

RepositoryLanguageGit size CommitsFilesStatus
redboxPython138.8 MB9,324891active
directory-ui-export-readinessPython100.1 MB2,407439archived
great.gov.uk-websiteHTML21.7 MB10795archived
pysaml2Python16.9 MB3,712456active
matchboxPython16.1 MB3,392275active
platform-toolsPython6.8 MB10,438588active
messytablesHTML5.3 MB60988archived
xypathPython3.7 MB37049archived
databakerJupyter Notebook2.4 MB47335archived
stream-read-xbrlPython2.1 MB60537active
stream-zipPython1.5 MB65941active
stream-unzipPython1.3 MB58657active
pip-auditPython1.2 MB80182archived
idscrubPython1.1 MB9932active
govuk-onelogin-djangoPython898.0 kB32252active
terraform-platform-modulesHCL875.5 kB2,816189archived
directory-form-uiCSS857.1 kB72228archived
django-db-anonymiserPython790.5 kB22064active
directory-forms-api-clientPython687.1 kB22228active
github-standardsPython679.9 kB60276active