Historical results »
Source code »

Software Forge Performance Index

This webpage collects performance information about various hosted software development services. The reports are updated weekly, most recently on December 8, 2023 at 15:03 UTC, and were generated with Lighthouse 6.3.0. Patches welcome!

Disclaimer: This website is maintained by SourceHut.

Expand for details on methodology

We ran Lighthouse 6.3.0 on Alpine Linux x86_64, with the following command line:

lighthouse <url> \
    --only-categories=performance,accessibility \
    --profile=desktop \
    --throttling.cpuSlowdownMultiplier=1

The desktop profile is used because it's rare that a developer is coding on a mobile device — and some forges have separate mobile sites, so a separate test suite would be warranted.

We left the throttling settings at the Lighthouse default, because it's less rare that a developer is tethered to their phone or working from a community with less privileged internet access. The simulated latency also helps to reduce the variable impact of real-world latency. Additionally, simulating a low-bandwidth connection helps to draw out the differences between services more clearly. This controls for network conditions; the same tests have been run from various datacenters with various degrees of favorability to each hosting provider with no discernible change in the results.

CPU throttling is disabled to offset the effects of not having a GPU available in our testing environment. If you run these tests locally, it is recommended that you remove this constraint.

The source code is available if you wish to run these benchmarks on your own system; it takes about an hour.

0–49 50–89 90–100

All performance results

Bitbucket Codeberg GitHub GitLab Pagure SourceHut
Browsing Git repositories
Summary page 11 95 84 55 75 100
Tree (best case) 11 67 65 56 89 100
Tree (worst case) 8 5 56 26 41 94
Log (best case) 22 92 79 64 78 100
Log (worst case) 20 70 80 56 0 100
Commit 11 90 80 58 78 100
Source file (best case) 0 62 50 50 91 100
Source file (worst case) 0 5 35 49 32 100
Blame (best case) 48 36 37 64 44 100
Blame (worst case) 0 0 n/a 50 0 0
Browsing tickets/issues
Browsing 55 73 84 35 77 100
Search 54 76 84 31 77 100
Details and comments 52 44 65 33 70 100
Code review
Browsing patches 0 86 82 51 76 100
Patch discussion 16 85 53 35 48 98
Patch diff 16 74 64 46 53 99

Browsing Git repositories

Summary page

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 34 KiB 100 100 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 10 requests 550 KiB 95 78 2.7 s 1.9 s 1.9 s 3.9 s 4.2 s 90 ms HTMLJSONstderr
GitHub 110 requests 983 KiB 84 98 4.6 s 2.6 s 2.6 s 6.2 s 6.7 s 130 ms HTMLJSONstderr
Pagure 20 requests 721 KiB 75 67 2.6 s 2.6 s 4.5 s 4.5 s 4.5 s 20 ms HTMLJSONstderr
GitLab 62 requests 1896 KiB 55 83 4.8 s 1.7 s 3.3 s 3.3 s 11.8 s 270 ms HTMLJSONstderr
Bitbucket 59 requests 2090 KiB 11 100 10.6 s 10.0 s 11.4 s 14.3 s 14.3 s 730 ms HTMLJSONstderr

Tree (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 33 KiB 100 94 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Pagure 19 requests 519 KiB 89 96 2.5 s 2.5 s 3.1 s 3.1 s 3.1 s 20 ms HTMLJSONstderr
Codeberg 10 requests 532 KiB 67 86 8.0 s 2.5 s 2.5 s 4.5 s 5.2 s 120 ms HTMLJSONstderr
GitHub 111 requests 1085 KiB 65 100 4.9 s 2.6 s 2.6 s 7.9 s 9.0 s 270 ms HTMLJSONstderr
GitLab 58 requests 1873 KiB 56 88 5.7 s 1.8 s 3.6 s 3.6 s 11.4 s 410 ms HTMLJSONstderr
Bitbucket 58 requests 2086 KiB 11 100 10.6 s 10.0 s 11.6 s 13.7 s 14.2 s 790 ms HTMLJSONstderr

Tree (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 86 KiB 94 ? 5.3 s 1.4 s 1.4 s 1.6 s 1.6 s 130 ms HTMLJSONstderr
GitHub * 110 requests 1092 KiB 56 100 6.6 s 2.6 s 2.6 s 2.6 s 8.6 s 430 ms HTMLJSONstderr
Pagure 19 requests 1252 KiB 41 96 13.0 s 6.8 s 6.9 s 6.9 s 6.9 s 20 ms HTMLJSONstderr
GitLab 67 requests 1952 KiB 26 88 5.4 s 1.6 s 3.5 s 3.5 s 15.2 s 680 ms HTMLJSONstderr
Bitbucket * 59 requests 2098 KiB 8 100 10.8 s 10.1 s 11.3 s 11.3 s 14.3 s 760 ms HTMLJSONstderr
Codeberg 10 requests 3191 KiB 5 86 15.7 s 15.7 s 15.7 s 19.9 s 20.2 s 500 ms HTMLJSONstderr
Notes

Log (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 38 KiB 100 ? 1.3 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 15 requests 933 KiB 92 78 3.3 s 2.3 s 2.3 s 4.3 s 4.6 s 100 ms HTMLJSONstderr
GitHub 88 requests 874 KiB 79 100 4.1 s 2.7 s 2.7 s 6.4 s 6.9 s 140 ms HTMLJSONstderr
Pagure 69 requests 693 KiB 78 78 3.3 s 3.3 s 4.5 s 4.5 s 4.5 s 80 ms HTMLJSONstderr
GitLab 53 requests 1698 KiB 64 86 5.8 s 1.8 s 1.8 s 2.4 s 10.6 s 310 ms HTMLJSONstderr
Bitbucket 44 requests 1748 KiB 22 100 10.7 s 10.1 s 10.4 s 10.4 s 11.9 s 400 ms HTMLJSONstderr

Log (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 43 KiB 100 ? 1.5 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 96 requests 902 KiB 80 100 4.5 s 2.7 s 2.7 s 6.4 s 6.9 s 250 ms HTMLJSONstderr
Codeberg 11 requests 685 KiB 70 78 7.3 s 3.5 s 3.5 s 5.5 s 6.3 s 120 ms HTMLJSONstderr
GitLab 72 requests 1714 KiB 56 88 6.0 s 1.8 s 1.8 s 1.8 s 10.6 s 360 ms HTMLJSONstderr
Bitbucket 46 requests 1746 KiB 20 98 11.3 s 10.0 s 10.2 s 11.4 s 11.6 s 420 ms HTMLJSONstderr
Pagure n/an/a The page provided is not HTML (served as MIME type ). HTML JSON stderr

Commit

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 36 KiB 100 83 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 11 requests 761 KiB 90 78 3.3 s 2.3 s 2.3 s 4.5 s 5.1 s 110 ms HTMLJSONstderr
GitHub 88 requests 878 KiB 80 100 4.4 s 2.7 s 2.7 s 6.3 s 6.8 s 170 ms HTMLJSONstderr
Pagure 24 requests 797 KiB 78 72 4.2 s 2.2 s 3.3 s 5.7 s 6.1 s 170 ms HTMLJSONstderr
GitLab 51 requests 1823 KiB 58 93 5.0 s 1.7 s 3.4 s 3.4 s 12.0 s 160 ms HTMLJSONstderr
Bitbucket 60 requests 3371 KiB 11 ? 12.6 s 10.0 s 14.5 s 14.5 s 18.3 s 640 ms HTMLJSONstderr

Source file (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 5 requests 57 KiB 100 94 2.3 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
Pagure 22 requests 906 KiB 91 94 4.0 s 2.2 s 3.8 s 4.9 s 5.0 s 180 ms HTMLJSONstderr
Codeberg 9 requests 811 KiB 62 83 6.5 s 3.3 s 3.3 s 5.5 s 5.7 s 120 ms HTMLJSONstderr
GitHub 101 requests 1029 KiB 50 100 5.9 s 2.8 s 2.8 s 7.6 s 8.6 s 360 ms HTMLJSONstderr
GitLab 58 requests 2568 KiB 50 94 5.5 s 1.7 s 3.4 s 3.4 s 10.9 s 220 ms HTMLJSONstderr
Bitbucket n/an/a An error occured, see the log for more details. HTML JSON stderr

Source file (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 5 requests 39 KiB 100 94 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitLab 58 requests 2684 KiB 49 94 5.0 s 1.7 s 3.3 s 3.3 s 11.2 s 170 ms HTMLJSONstderr
GitHub 101 requests 1194 KiB 35 100 7.1 s 3.5 s 3.5 s 8.9 s 9.7 s 620 ms HTMLJSONstderr
Pagure 20 requests 1176 KiB 32 ? 8.7 s 5.2 s 6.9 s 7.8 s 8.3 s 1,240 ms HTMLJSONstderr
Codeberg 9 requests 5065 KiB 5 ? 25.0 s 25.0 s 25.1 s 29.3 s 29.4 s 2,490 ms HTMLJSONstderr
Bitbucket n/an/a An error occured, see the log for more details. HTML JSON stderr

Blame (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 5 requests 65 KiB 100 94 2.3 s 1.2 s 1.2 s 1.2 s 1.2 s 30 ms HTMLJSONstderr
GitLab 36 requests 1662 KiB 64 94 3.3 s 1.8 s 1.8 s 1.8 s 10.2 s 270 ms HTMLJSONstderr
Bitbucket 32 requests 25517 KiB 48 86 41.5 s 2.8 s 2.8 s 5.3 s 131.3 s 400 ms HTMLJSONstderr
Pagure 21 requests 1220 KiB 44 83 8.9 s 4.9 s 5.5 s 6.7 s 7.0 s 540 ms HTMLJSONstderr
GitHub 114 requests 1084 KiB 37 100 7.1 s 2.8 s 2.8 s 8.2 s 9.0 s 730 ms HTMLJSONstderr
Codeberg 14 requests 1700 KiB 36 83 6.5 s 6.5 s 6.6 s 9.1 s 9.6 s 440 ms HTMLJSONstderr

Blame (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
GitLab 36 requests 1697 KiB 50 96 25.5 s 1.9 s 1.9 s 1.9 s 10.3 s 290 ms HTMLJSONstderr
Bitbucket n/an/a Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: 500) HTML JSON stderr
Codeberg n/an/a An error occured, see the log for more details. HTML JSON stderr
Pagure n/an/a An error occured, see the log for more details. HTML JSON stderr
SourceHut n/an/a The page provided is not HTML (served as MIME type ). HTML JSON stderr
Notes

Browsing tickets/issues

Browsing

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 36 KiB 100 89 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 77 requests 824 KiB 84 100 3.6 s 2.5 s 2.5 s 5.9 s 6.6 s 180 ms HTMLJSONstderr
Pagure 21 requests 630 KiB 77 80 4.4 s 3.0 s 3.5 s 3.5 s 3.5 s 30 ms HTMLJSONstderr
Codeberg 29 requests 2116 KiB 73 76 3.7 s 2.7 s 2.7 s 4.8 s 5.1 s 140 ms HTMLJSONstderr
Bitbucket 28 requests 672 KiB 55 92 5.8 s 5.1 s 5.2 s 5.9 s 6.0 s 140 ms HTMLJSONstderr
GitLab 58 requests 1937 KiB 35 96 6.0 s 1.6 s 4.0 s 4.0 s 12.0 s 540 ms HTMLJSONstderr
Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 36 KiB 100 89 1.2 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 77 requests 825 KiB 84 98 4.5 s 2.5 s 2.5 s 6.1 s 6.6 s 160 ms HTMLJSONstderr
Pagure 20 requests 619 KiB 77 80 4.2 s 3.1 s 3.5 s 3.5 s 3.5 s 30 ms HTMLJSONstderr
Codeberg 29 requests 2096 KiB 76 78 3.3 s 2.4 s 2.4 s 4.6 s 4.9 s 200 ms HTMLJSONstderr
Bitbucket 28 requests 672 KiB 54 92 5.8 s 5.1 s 5.1 s 5.9 s 6.1 s 210 ms HTMLJSONstderr
GitLab 63 requests 1950 KiB 31 90 6.5 s 1.7 s 3.6 s 3.6 s 12.5 s 750 ms HTMLJSONstderr

Details and comments

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 49 KiB 100 91 1.9 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
Pagure 40 requests 3540 KiB 70 87 3.3 s 3.0 s 4.1 s 4.1 s 4.1 s 40 ms HTMLJSONstderr
GitHub 103 requests 1047 KiB 65 94 5.8 s 3.1 s 3.1 s 6.7 s 7.5 s 170 ms HTMLJSONstderr
Bitbucket 28 requests 672 KiB 52 92 6.6 s 5.3 s 5.4 s 6.1 s 6.2 s 160 ms HTMLJSONstderr
Codeberg 38 requests 2471 KiB 44 78 8.2 s 4.6 s 4.7 s 7.2 s 9.0 s 150 ms HTMLJSONstderr
GitLab 103 requests 2837 KiB 33 88 5.2 s 1.8 s 1.8 s 1.8 s 16.2 s 750 ms HTMLJSONstderr

Code review

Browsing patches

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 34 KiB 100 83 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 29 requests 2172 KiB 86 76 3.5 s 2.9 s 2.9 s 5.1 s 5.4 s 180 ms HTMLJSONstderr
GitHub 77 requests 823 KiB 82 98 4.2 s 2.5 s 2.5 s 6.0 s 6.5 s 120 ms HTMLJSONstderr
Pagure 18 requests 575 KiB 76 82 4.9 s 3.2 s 3.4 s 3.4 s 3.4 s 30 ms HTMLJSONstderr
GitLab 55 requests 1865 KiB 51 86 5.9 s 1.8 s 3.9 s 3.9 s 11.5 s 420 ms HTMLJSONstderr
Bitbucket n/an/a Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: 404) HTML JSON stderr

Patch discussion

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 83 KiB 98 ? 3.5 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Codeberg 14 requests 1199 KiB 85 76 4.3 s 2.6 s 2.6 s 4.7 s 5.3 s 100 ms HTMLJSONstderr
GitHub 108 requests 1087 KiB 53 100 6.9 s 3.1 s 3.1 s 7.1 s 8.0 s 380 ms HTMLJSONstderr
Pagure 40 requests 3905 KiB 48 85 8.9 s 4.7 s 5.5 s 5.7 s 5.9 s 90 ms HTMLJSONstderr
GitLab 93 requests 2548 KiB 35 90 6.9 s 1.9 s 4.8 s 4.8 s 15.0 s 480 ms HTMLJSONstderr
Bitbucket 109 requests 4171 KiB 16 ? 12.1 s 2.1 s 2.1 s 2.1 s 26.9 s 910 ms HTMLJSONstderr

Patch diff

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut * 4 requests 83 KiB 99 ? 3.3 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Codeberg 11 requests 982 KiB 74 78 4.3 s 3.4 s 3.4 s 5.8 s 6.0 s 110 ms HTMLJSONstderr
GitHub 102 requests 980 KiB 64 99 5.9 s 2.9 s 2.9 s 7.1 s 7.7 s 200 ms HTMLJSONstderr
Pagure 40 requests 3905 KiB 53 85 8.0 s 4.3 s 4.9 s 4.9 s 5.0 s 90 ms HTMLJSONstderr
GitLab 83 requests 2431 KiB 46 88 7.5 s 1.8 s 4.3 s 4.3 s 13.7 s 240 ms HTMLJSONstderr
Bitbucket * 109 requests 4176 KiB 16 ? 11.3 s 2.1 s 2.1 s 5.5 s 27.5 s 900 ms HTMLJSONstderr
Notes