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 February 7, 2024 at 11:14 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 33 88 67 58 76 100
Tree (best case) 28 89 67 58 92 100
Tree (worst case) 19 9 49 33 55 86
Log (best case) 36 96 47 59 83 100
Log (worst case) 36 94 47 57 0 90
Commit 32 97 74 61 69 100
Source file (best case) 0 75 43 55 77 100
Source file (worst case) 0 8 49 54 42 97
Blame (best case) 61 47 64 64 54 100
Blame (worst case) 0 0 n/a 51 0 0
Browsing tickets/issues
Browsing 55 93 90 50 91 100
Search 55 93 87 52 88 100
Details and comments 56 49 71 50 71 100
Code review
Browsing patches 0 90 84 55 82 100
Patch discussion 25 95 70 51 62 100
Patch diff 25 85 59 50 60 100

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 585 KiB 88 78 2.2 s 1.7 s 1.7 s 1.7 s 1.7 s 40 ms HTMLJSONstderr
Pagure 20 requests 721 KiB 76 67 3.1 s 2.6 s 4.2 s 4.2 s 4.2 s 20 ms HTMLJSONstderr
GitHub 131 requests 1174 KiB 67 98 4.7 s 2.6 s 2.6 s 7.6 s 8.3 s 70 ms HTMLJSONstderr
GitLab 60 requests 1907 KiB 58 89 5.6 s 1.8 s 1.8 s 1.8 s 11.6 s 150 ms HTMLJSONstderr
Bitbucket 54 requests 2140 KiB 33 100 9.6 s 9.6 s 11.1 s 14.5 s 13.7 s 290 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 ? 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Pagure 19 requests 519 KiB 92 96 2.5 s 2.5 s 3.1 s 3.1 s 3.1 s 20 ms HTMLJSONstderr
Codeberg 10 requests 498 KiB 89 86 1.6 s 1.5 s 1.5 s 1.5 s 1.5 s 50 ms HTMLJSONstderr
GitHub 110 requests 1107 KiB 67 92 5.6 s 2.6 s 2.6 s 7.3 s 8.0 s 100 ms HTMLJSONstderr
GitLab 57 requests 1888 KiB 58 91 6.1 s 1.7 s 3.4 s 3.4 s 11.0 s 190 ms HTMLJSONstderr
Bitbucket 53 requests 2136 KiB 28 100 9.6 s 9.6 s 11.2 s 12.7 s 12.8 s 390 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 86 ? 11.1 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Pagure 19 requests 1248 KiB 55 96 5.7 s 5.7 s 5.7 s 5.7 s 5.7 s 20 ms HTMLJSONstderr
GitHub * 112 requests 1120 KiB 49 92 7.4 s 3.6 s 3.6 s 8.8 s 9.7 s 190 ms HTMLJSONstderr
GitLab 66 requests 1964 KiB 33 91 2.8 s 1.7 s 3.5 s 3.5 s 12.5 s 360 ms HTMLJSONstderr
Bitbucket * 53 requests 2144 KiB 19 100 9.6 s 9.6 s 11.2 s 11.2 s 12.9 s 390 ms HTMLJSONstderr
Codeberg 10 requests 3160 KiB 9 86 14.9 s 14.9 s 14.9 s 16.4 s 16.7 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.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 15 requests 817 KiB 96 78 2.6 s 2.1 s 2.1 s 2.1 s 2.1 s 40 ms HTMLJSONstderr
Pagure 69 requests 693 KiB 83 78 3.6 s 3.1 s 4.2 s 4.2 s 4.2 s 40 ms HTMLJSONstderr
GitLab 54 requests 1712 KiB 59 88 5.1 s 1.9 s 1.9 s 1.9 s 10.7 s 160 ms HTMLJSONstderr
GitHub 118 requests 1076 KiB 47 100 6.1 s 3.6 s 3.6 s 8.4 s 8.9 s 370 ms HTMLJSONstderr
Bitbucket 37 requests 1674 KiB 36 100 9.6 s 9.6 s 9.8 s 9.9 s 10.1 s 170 ms HTMLJSONstderr

Log (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
Codeberg 11 requests 651 KiB 94 78 3.6 s 2.3 s 2.3 s 2.3 s 2.3 s 40 ms HTMLJSONstderr
SourceHut 4 requests 43 KiB 90 ? 7.2 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitLab 73 requests 1728 KiB 57 91 5.9 s 1.9 s 1.9 s 1.9 s 10.4 s 160 ms HTMLJSONstderr
GitHub 114 requests 1069 KiB 47 100 5.4 s 2.8 s 2.8 s 7.3 s 8.0 s 310 ms HTMLJSONstderr
Bitbucket 40 requests 1672 KiB 36 98 9.6 s 9.6 s 9.9 s 10.0 s 10.2 s 170 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 729 KiB 97 78 2.1 s 2.1 s 2.1 s 2.1 s 2.1 s 50 ms HTMLJSONstderr
GitHub 89 requests 911 KiB 74 100 4.6 s 2.7 s 3.1 s 5.9 s 6.6 s 60 ms HTMLJSONstderr
Pagure 24 requests 797 KiB 69 72 3.5 s 2.7 s 3.9 s 5.4 s 5.7 s 70 ms HTMLJSONstderr
GitLab 50 requests 1824 KiB 61 93 4.7 s 1.5 s 3.4 s 3.4 s 11.0 s 100 ms HTMLJSONstderr
Bitbucket 62 requests 3328 KiB 32 ? 10.6 s 9.6 s 14.1 s 14.1 s 17.8 s 220 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 1.5 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
Pagure 22 requests 906 KiB 77 94 2.7 s 2.5 s 5.1 s 5.6 s 5.7 s 90 ms HTMLJSONstderr
Codeberg 9 requests 780 KiB 75 83 3.2 s 3.0 s 3.0 s 3.0 s 3.0 s 50 ms HTMLJSONstderr
GitLab 58 requests 2583 KiB 55 94 4.7 s 1.5 s 3.4 s 3.4 s 10.8 s 170 ms HTMLJSONstderr
GitHub 105 requests 1055 KiB 43 92 9.0 s 3.9 s 3.9 s 8.3 s 8.7 s 170 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 97 94 4.0 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitLab 57 requests 2698 KiB 54 94 5.1 s 1.7 s 3.4 s 3.4 s 10.9 s 170 ms HTMLJSONstderr
GitHub 102 requests 1223 KiB 49 92 6.2 s 3.5 s 3.5 s 8.1 s 8.8 s 300 ms HTMLJSONstderr
Pagure 20 requests 1176 KiB 42 ? 9.5 s 5.1 s 5.5 s 6.8 s 6.8 s 320 ms HTMLJSONstderr
Codeberg 9 requests 5037 KiB 8 ? 24.3 s 24.3 s 24.3 s 27.1 s 27.3 s 1,080 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 1.9 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitLab 36 requests 1676 KiB 64 94 4.0 s 1.8 s 1.8 s 1.8 s 10.2 s 130 ms HTMLJSONstderr
GitHub 116 requests 1114 KiB 64 92 5.9 s 2.7 s 2.7 s 7.1 s 7.5 s 200 ms HTMLJSONstderr
Bitbucket 32 requests 25551 KiB 61 85 45.1 s 2.9 s 2.9 s 5.5 s 131.0 s 210 ms HTMLJSONstderr
Pagure 21 requests 1220 KiB 54 83 7.7 s 4.2 s 4.2 s 4.9 s 5.3 s 150 ms HTMLJSONstderr
Codeberg 16 requests 1710 KiB 47 83 6.5 s 6.5 s 6.5 s 6.8 s 7.0 s 160 ms HTMLJSONstderr

Blame (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
GitLab 36 requests 1712 KiB 51 96 12.5 s 2.0 s 2.0 s 2.0 s 10.3 s 160 ms HTMLJSONstderr
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
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
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
Codeberg 29 requests 2094 KiB 93 78 2.3 s 2.3 s 2.3 s 4.3 s 4.6 s 70 ms HTMLJSONstderr
Pagure 21 requests 633 KiB 91 80 4.1 s 2.7 s 2.7 s 2.7 s 2.7 s 20 ms HTMLJSONstderr
GitHub 78 requests 854 KiB 90 100 3.1 s 2.5 s 2.5 s 4.9 s 5.3 s 70 ms HTMLJSONstderr
Bitbucket 27 requests 671 KiB 55 92 6.1 s 5.3 s 5.3 s 5.3 s 5.3 s 60 ms HTMLJSONstderr
GitLab 60 requests 1960 KiB 50 96 6.8 s 1.5 s 3.9 s 3.9 s 12.0 s 250 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.7 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 29 requests 2095 KiB 93 78 2.3 s 2.3 s 2.3 s 4.2 s 4.5 s 70 ms HTMLJSONstderr
Pagure 20 requests 619 KiB 88 80 3.9 s 2.7 s 2.7 s 2.7 s 2.7 s 20 ms HTMLJSONstderr
GitHub 78 requests 855 KiB 87 98 3.7 s 2.4 s 2.4 s 5.5 s 6.2 s 60 ms HTMLJSONstderr
Bitbucket 28 requests 672 KiB 55 92 6.0 s 5.2 s 5.2 s 5.2 s 5.3 s 70 ms HTMLJSONstderr
GitLab 60 requests 1959 KiB 52 90 6.1 s 1.5 s 3.9 s 3.9 s 12.1 s 250 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.2 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
Pagure 40 requests 3540 KiB 71 87 3.5 s 3.1 s 4.2 s 4.2 s 4.2 s 20 ms HTMLJSONstderr
GitHub 105 requests 1077 KiB 71 94 5.1 s 3.2 s 3.2 s 5.3 s 5.8 s 70 ms HTMLJSONstderr
Bitbucket 27 requests 671 KiB 56 92 5.9 s 5.2 s 5.2 s 5.2 s 5.3 s 60 ms HTMLJSONstderr
GitLab 103 requests 2852 KiB 50 88 5.4 s 1.9 s 1.9 s 1.9 s 15.0 s 240 ms HTMLJSONstderr
Codeberg 38 requests 2478 KiB 49 78 8.1 s 4.1 s 5.2 s 6.1 s 7.9 s 120 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 2142 KiB 90 78 2.6 s 2.6 s 2.6 s 4.5 s 4.8 s 70 ms HTMLJSONstderr
GitHub 78 requests 854 KiB 84 98 3.4 s 2.6 s 2.6 s 4.6 s 4.9 s 80 ms HTMLJSONstderr
Pagure 19 requests 577 KiB 82 82 4.7 s 2.8 s 2.8 s 2.8 s 2.8 s 20 ms HTMLJSONstderr
GitLab 57 requests 1882 KiB 55 86 6.6 s 1.7 s 1.7 s 1.7 s 11.4 s 190 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 100 ? 2.1 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Codeberg 14 requests 1173 KiB 95 76 3.2 s 2.3 s 2.3 s 2.3 s 2.3 s 50 ms HTMLJSONstderr
GitHub 103 requests 1071 KiB 70 100 5.1 s 3.2 s 3.2 s 7.0 s 7.6 s 100 ms HTMLJSONstderr
Pagure 40 requests 3934 KiB 62 85 8.3 s 4.4 s 4.4 s 4.4 s 4.4 s 30 ms HTMLJSONstderr
GitLab 94 requests 2524 KiB 51 90 6.7 s 1.9 s 4.5 s 4.5 s 14.5 s 160 ms HTMLJSONstderr
Bitbucket 109 requests 4247 KiB 25 ? 11.8 s 2.3 s 2.3 s 2.3 s 26.7 s 400 ms HTMLJSONstderr

Patch diff

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut * 4 requests 83 KiB 100 ? 2.1 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Codeberg 11 requests 951 KiB 85 72 3.2 s 3.2 s 3.2 s 3.2 s 3.2 s 40 ms HTMLJSONstderr
Pagure 40 requests 3934 KiB 60 85 7.9 s 4.3 s 4.3 s 4.3 s 4.3 s 30 ms HTMLJSONstderr
GitHub 100 requests 1002 KiB 59 99 5.4 s 2.9 s 2.9 s 6.8 s 7.6 s 130 ms HTMLJSONstderr
GitLab 84 requests 2444 KiB 50 88 9.1 s 1.9 s 4.5 s 4.5 s 13.9 s 190 ms HTMLJSONstderr
Bitbucket * 109 requests 4247 KiB 25 ? 12.0 s 2.3 s 2.3 s 2.3 s 26.5 s 390 ms HTMLJSONstderr
Notes