File Size Overall
  • There are 47 files with 2,232 lines of code.
    • 0 very long files (0 lines of code)
    • 0 long files (0 lines of code)
    • 2 medium size files (464 lines of code)
    • 3 small files (403 lines of code)
    • 42 very small files (1,365 lines of code)
0% | 0% | 20% | 18% | 61%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
scss0% | 0% | 52% | 0% | 47%
js0% | 0% | 36% | 19% | 43%
scala0% | 0% | 0% | 21% | 78%
css0% | 0% | 0% | 53% | 46%
html0% | 0% | 0% | 0% | 100%
xml0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
public0% | 0% | 36% | 16% | 46%
src0% | 0% | 36% | 19% | 43%
app0% | 0% | 0% | 19% | 80%
conf0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
nginx0% | 0% | 0% | 0% | 100%
Longest Files (Top 47)
File# lines# units
_header.scss
in public/styles/components
248 -
viewer.js
in src/modules/components
216 19
PreviewProxy.scala
in app/com/gu/viewer/proxy
178 8
application.js
in src/modules/controllers
117 11
socialShareMode.css
in public/styles
108 -
readerMode.css
in public/styles
95 -
RequestLoggingFilter.scala
in app/com/gu/viewer/logging
82 2
viewer.scala.html
in app/com/gu/viewer/views
74 -
61 -
ProxyClient.scala
in app/com/gu/viewer/proxy
56 1
_overlay.scss
in public/styles/components
56 -
PreviewSession.scala
in app/com/gu/viewer/proxy
53 3
ProxyResult.scala
in app/com/gu/viewer/proxy
52 2
Proxy.scala
in app/com/gu/viewer/controllers
52 3
_typography.scss
in public/styles/variables
51 -
LiveProxy.scala
in app/com/gu/viewer/proxy
50 3
keyboard.js
in src/modules/controllers
48 2
history.js
in src/modules/controllers
48 3
localStorage.js
in src/modules/utils
47 8
Email.scala
in app/com/gu/viewer/controllers
46 2
_viewer.scss
in public/styles/components
41 -
Application.scala
in app/com/gu/viewer/controllers
40 3
button.js
in src/modules/utils
40 5
AppConfig.scala
in app/com/gu/viewer/config
37 1
ProxyRequest.scala
in app/com/gu/viewer/proxy
32 2
_palette.scss
in public/styles/variables
26 -
26 -
AwsInstanceTags.scala
in app/com/gu/viewer/aws
22 1
index.scss
in public/styles
22 -
overlay.js
in src/modules/controllers
22 8
19 -
_orientation.scss
in public/styles/components
19 -
ProxyResponse.scala
in app/com/gu/viewer/proxy
16 1
modes.js
in src/modules
16 -
error.js
in src/modules/controllers
15 2
main.scala.html
in app/com/gu/viewer/views
14 -
api.js
in src/modules/utils
14 1
13 2
PanDomainAuthActions.scala
in app/com/gu/viewer/controllers
12 1
overlay.scala.html
in app/com/gu/viewer/views
10 -
loginRedirect.scala.html
in app/com/gu/viewer/views
10 -
Management.scala
in app/com/gu/viewer/controllers
7 -
index.js
in src
6 -
_buttons.scss
in public/styles/components
5 -
Loggable.scala
in app/com/gu/viewer/logging
4 -
4 -
ProxyError.scala
in app/com/gu/viewer/proxy
2 -
Large Files That Change Often (Top 8)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
viewer.js
in src/modules/components
216 ~1.5k–5k 2 ~150 ~2
viewer.scala.html
in app/com/gu/viewer/views
74 ~500–1.5k 4 ~7 ~10
application.js
in src/modules/controllers
117 ~700–2k 2 ~100 ~1
Application.scala
in app/com/gu/viewer/controllers
40 under 1k 4 ~10 ~5
history.js
in src/modules/controllers
48 under 1k 2 ~30 ~2
AppConfig.scala
in app/com/gu/viewer/config
37 under 1k 2 ~30 ~2
main.scala.html
in app/com/gu/viewer/views
14 under 1k 2 ~7 ~2
index.js
in src
6 under 1k 2 ~7 ~1

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 24)
File# lines# units
viewer.js
in src/modules/components
216 19
application.js
in src/modules/controllers
117 11
PreviewProxy.scala
in app/com/gu/viewer/proxy
178 8
localStorage.js
in src/modules/utils
47 8
overlay.js
in src/modules/controllers
22 8
button.js
in src/modules/utils
40 5
PreviewSession.scala
in app/com/gu/viewer/proxy
53 3
LiveProxy.scala
in app/com/gu/viewer/proxy
50 3
Proxy.scala
in app/com/gu/viewer/controllers
52 3
Application.scala
in app/com/gu/viewer/controllers
40 3
history.js
in src/modules/controllers
48 3
13 2
ProxyResult.scala
in app/com/gu/viewer/proxy
52 2
ProxyRequest.scala
in app/com/gu/viewer/proxy
32 2
Email.scala
in app/com/gu/viewer/controllers
46 2
RequestLoggingFilter.scala
in app/com/gu/viewer/logging
82 2
error.js
in src/modules/controllers
15 2
keyboard.js
in src/modules/controllers
48 2
ProxyResponse.scala
in app/com/gu/viewer/proxy
16 1
ProxyClient.scala
in app/com/gu/viewer/proxy
56 1
AppConfig.scala
in app/com/gu/viewer/config
37 1
AwsInstanceTags.scala
in app/com/gu/viewer/aws
22 1
PanDomainAuthActions.scala
in app/com/gu/viewer/controllers
12 1
api.js
in src/modules/utils
14 1
Files With Long Lines (Top 7)

There are 7 files with lines longer than 120 characters. In total, there are 25 long lines.

File# lines# units# long lines
viewer.scala.html
in app/com/gu/viewer/views
74 - 14
ProxyRequest.scala
in app/com/gu/viewer/proxy
32 2 3
RequestLoggingFilter.scala
in app/com/gu/viewer/logging
82 2 3
history.js
in src/modules/controllers
48 3 2
ProxyClient.scala
in app/com/gu/viewer/proxy
56 1 1
Proxy.scala
in app/com/gu/viewer/controllers
52 3 1
overlay.scala.html
in app/com/gu/viewer/views
10 - 1
Correlations

File Size vs. Commits (all time): 47 points

app/com/gu/viewer/controllers/Application.scala x: 54 commits (all time) y: 40 lines of code app/com/gu/viewer/views/viewer.scala.html x: 107 commits (all time) y: 74 lines of code src/modules/controllers/history.js x: 4 commits (all time) y: 48 lines of code app/com/gu/viewer/config/AppConfig.scala x: 10 commits (all time) y: 37 lines of code app/com/gu/viewer/views/main.scala.html x: 35 commits (all time) y: 14 lines of code src/index.js x: 7 commits (all time) y: 6 lines of code src/modules/components/viewer.js x: 4 commits (all time) y: 216 lines of code src/modules/controllers/application.js x: 4 commits (all time) y: 117 lines of code app/com/gu/viewer/proxy/LiveProxy.scala x: 20 commits (all time) y: 50 lines of code app/com/gu/viewer/proxy/PreviewProxy.scala x: 39 commits (all time) y: 178 lines of code app/com/gu/viewer/proxy/ProxyRequest.scala x: 19 commits (all time) y: 32 lines of code app/com/gu/viewer/proxy/ProxyResult.scala x: 17 commits (all time) y: 52 lines of code riff-raff.yaml x: 18 commits (all time) y: 19 lines of code app/AppComponents.scala x: 18 commits (all time) y: 61 lines of code app/com/gu/viewer/logging/RequestLoggingFilter.scala x: 30 commits (all time) y: 82 lines of code public/styles/components/_overlay.scss x: 9 commits (all time) y: 56 lines of code public/styles/variables/_typography.scss x: 7 commits (all time) y: 51 lines of code app/com/gu/viewer/controllers/Email.scala x: 27 commits (all time) y: 46 lines of code app/com/gu/viewer/controllers/Proxy.scala x: 46 commits (all time) y: 52 lines of code app/com/gu/viewer/aws/AwsInstanceTags.scala x: 8 commits (all time) y: 22 lines of code app/com/gu/viewer/proxy/PreviewSession.scala x: 8 commits (all time) y: 53 lines of code app/com/gu/viewer/proxy/ProxyResponse.scala x: 13 commits (all time) y: 16 lines of code app/com/gu/viewer/logging/Loggable.scala x: 20 commits (all time) y: 4 lines of code conf/logback.xml x: 21 commits (all time) y: 26 lines of code src/modules/controllers/error.js x: 2 commits (all time) y: 15 lines of code src/modules/controllers/keyboard.js x: 2 commits (all time) y: 48 lines of code src/modules/controllers/overlay.js x: 2 commits (all time) y: 22 lines of code src/modules/modes.js x: 2 commits (all time) y: 16 lines of code src/modules/utils/api.js x: 2 commits (all time) y: 14 lines of code src/modules/utils/button.js x: 2 commits (all time) y: 40 lines of code src/modules/utils/localStorage.js x: 2 commits (all time) y: 47 lines of code app/com/gu/viewer/proxy/ProxyClient.scala x: 8 commits (all time) y: 56 lines of code public/styles/socialShareMode.css x: 8 commits (all time) y: 108 lines of code app/AppLoader.scala x: 6 commits (all time) y: 13 lines of code app/com/gu/viewer/controllers/Management.scala x: 7 commits (all time) y: 7 lines of code app/com/gu/viewer/controllers/PanDomainAuthActions.scala x: 14 commits (all time) y: 12 lines of code public/styles/components/_viewer.scss x: 15 commits (all time) y: 41 lines of code public/styles/readerMode.css x: 10 commits (all time) y: 95 lines of code public/styles/components/_header.scss x: 49 commits (all time) y: 248 lines of code app/com/gu/viewer/views/overlay.scala.html x: 7 commits (all time) y: 10 lines of code public/styles/components/_buttons.scss x: 7 commits (all time) y: 5 lines of code public/styles/index.scss x: 11 commits (all time) y: 22 lines of code app/com/gu/viewer/proxy/ProxyError.scala x: 3 commits (all time) y: 2 lines of code app/com/gu/viewer/views/loginRedirect.scala.html x: 5 commits (all time) y: 10 lines of code public/styles/components/_orientation.scss x: 3 commits (all time) y: 19 lines of code public/styles/variables/_palette.scss x: 1 commits (all time) y: 26 lines of code nginx/nginx-mapping.yml x: 2 commits (all time) y: 4 lines of code
248.0
lines of code
  min: 2.0
  average: 47.49
  25th percentile: 14.0
  median: 37.0
  75th percentile: 53.0
  max: 248.0
0 107.0
commits (all time)
min: 1.0 | average: 15.21 | 25th percentile: 4.0 | median: 8.0 | 75th percentile: 19.0 | max: 107.0

File Size vs. Contributors (all time): 47 points

app/com/gu/viewer/controllers/Application.scala x: 13 contributors (all time) y: 40 lines of code app/com/gu/viewer/views/viewer.scala.html x: 16 contributors (all time) y: 74 lines of code src/modules/controllers/history.js x: 3 contributors (all time) y: 48 lines of code app/com/gu/viewer/config/AppConfig.scala x: 4 contributors (all time) y: 37 lines of code app/com/gu/viewer/views/main.scala.html x: 14 contributors (all time) y: 14 lines of code src/index.js x: 4 contributors (all time) y: 6 lines of code src/modules/components/viewer.js x: 4 contributors (all time) y: 216 lines of code src/modules/controllers/application.js x: 4 contributors (all time) y: 117 lines of code app/com/gu/viewer/proxy/LiveProxy.scala x: 6 contributors (all time) y: 50 lines of code app/com/gu/viewer/proxy/PreviewProxy.scala x: 10 contributors (all time) y: 178 lines of code app/com/gu/viewer/proxy/ProxyRequest.scala x: 7 contributors (all time) y: 32 lines of code app/com/gu/viewer/proxy/ProxyResult.scala x: 6 contributors (all time) y: 52 lines of code riff-raff.yaml x: 10 contributors (all time) y: 19 lines of code app/AppComponents.scala x: 4 contributors (all time) y: 61 lines of code app/com/gu/viewer/logging/RequestLoggingFilter.scala x: 10 contributors (all time) y: 82 lines of code public/styles/components/_overlay.scss x: 5 contributors (all time) y: 56 lines of code public/styles/variables/_typography.scss x: 6 contributors (all time) y: 51 lines of code app/com/gu/viewer/controllers/Email.scala x: 7 contributors (all time) y: 46 lines of code app/com/gu/viewer/controllers/Proxy.scala x: 5 contributors (all time) y: 52 lines of code app/com/gu/viewer/aws/AwsInstanceTags.scala x: 4 contributors (all time) y: 22 lines of code app/com/gu/viewer/proxy/PreviewSession.scala x: 5 contributors (all time) y: 53 lines of code app/com/gu/viewer/proxy/ProxyResponse.scala x: 6 contributors (all time) y: 16 lines of code app/com/gu/viewer/logging/Loggable.scala x: 8 contributors (all time) y: 4 lines of code conf/logback.xml x: 6 contributors (all time) y: 26 lines of code src/modules/controllers/error.js x: 2 contributors (all time) y: 15 lines of code src/modules/controllers/keyboard.js x: 2 contributors (all time) y: 48 lines of code src/modules/controllers/overlay.js x: 2 contributors (all time) y: 22 lines of code src/modules/modes.js x: 2 contributors (all time) y: 16 lines of code src/modules/utils/api.js x: 2 contributors (all time) y: 14 lines of code src/modules/utils/button.js x: 2 contributors (all time) y: 40 lines of code src/modules/utils/localStorage.js x: 2 contributors (all time) y: 47 lines of code app/com/gu/viewer/proxy/ProxyClient.scala x: 3 contributors (all time) y: 56 lines of code public/styles/socialShareMode.css x: 2 contributors (all time) y: 108 lines of code app/AppLoader.scala x: 2 contributors (all time) y: 13 lines of code app/com/gu/viewer/controllers/Management.scala x: 3 contributors (all time) y: 7 lines of code app/com/gu/viewer/controllers/PanDomainAuthActions.scala x: 5 contributors (all time) y: 12 lines of code public/styles/components/_viewer.scss x: 5 contributors (all time) y: 41 lines of code public/styles/readerMode.css x: 2 contributors (all time) y: 95 lines of code public/styles/components/_header.scss x: 7 contributors (all time) y: 248 lines of code app/com/gu/viewer/views/overlay.scala.html x: 2 contributors (all time) y: 10 lines of code public/styles/components/_buttons.scss x: 2 contributors (all time) y: 5 lines of code app/com/gu/viewer/proxy/ProxyError.scala x: 2 contributors (all time) y: 2 lines of code public/styles/components/_orientation.scss x: 1 contributors (all time) y: 19 lines of code public/styles/variables/_palette.scss x: 1 contributors (all time) y: 26 lines of code nginx/nginx-mapping.yml x: 1 contributors (all time) y: 4 lines of code
248.0
lines of code
  min: 2.0
  average: 47.49
  25th percentile: 14.0
  median: 37.0
  75th percentile: 53.0
  max: 248.0
0 16.0
contributors (all time)
min: 1.0 | average: 4.79 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 6.0 | max: 16.0

File Size vs. Commits (30 days): 0 points

No data for "commits (30d)" vs. "lines of code".

File Size vs. Contributors (30 days): 0 points

No data for "contributors (30d)" vs. "lines of code".


File Size vs. Commits (90 days): 0 points

No data for "commits (90d)" vs. "lines of code".

File Size vs. Contributors (90 days): 0 points

No data for "contributors (90d)" vs. "lines of code".

About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...