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 April 16, 2021 at 15:30 UTC, and were generated with Lighthouse 7.3.0. Patches welcome!

Disclaimer: This website is maintained by SourceHut.

Expand for details on methodology

We ran Lighthouse 7.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 20 89 94 49 73 100
Tree (best case) 31 97 87 47 81 100
Tree (worst case) 10 0 72 21 47 94
Log (best case) 26 75 93 66 65 100
Log (worst case) 27 80 87 67 53 100
Commit 63 75 92 58 62 100
Source file (best case) 15 77 85 47 62 100
Source file (worst case) 9 12 32 30 15 64
Blame (best case) 46 44 91 46 27 100
Blame (worst case) 0 0 n/a 0 0 0
Browsing tickets/issues
Browsing 62 89 88 60 62 100
Search 59 74 89 61 66 100
Details and comments 57 55 66 33 60 97
Code review
Browsing patches 29 87 90 62 79 100
Patch discussion 18 61 80 34 40 87
Patch diff 18 64 80 26 43 87

Browsing Git repositories

Summary page

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 32 KiB 100 100 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 39 requests 383 KiB 94 96 2.7 s 2.4 s 2.4 s 2.4 s 2.4 s 50 ms HTMLJSONstderr
Codeberg 15 requests 607 KiB 89 78 3.2 s 1.7 s 2.5 s 3.8 s 3.8 s 180 ms HTMLJSONstderr
Pagure 19 requests 704 KiB 73 67 3.7 s 2.8 s 2.8 s 5.0 s 6.2 s 70 ms HTMLJSONstderr
GitLab 36 requests 1416 KiB 49 74 4.8 s 1.9 s 5.3 s 9.2 s 9.4 s 430 ms HTMLJSONstderr
Bitbucket 59 requests 1645 KiB 20 100 10.2 s 8.7 s 9.0 s 11.9 s 11.9 s 770 ms HTMLJSONstderr

Tree (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 30 KiB 100 93 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 14 requests 601 KiB 97 81 3.1 s 1.7 s 1.7 s 3.7 s 3.7 s 130 ms HTMLJSONstderr
GitHub 27 requests 322 KiB 87 98 2.3 s 2.3 s 2.3 s 3.5 s 3.8 s 80 ms HTMLJSONstderr
Pagure 18 requests 503 KiB 81 96 2.8 s 2.8 s 2.8 s 2.8 s 2.8 s 30 ms HTMLJSONstderr
GitLab 35 requests 1385 KiB 47 80 6.1 s 1.8 s 5.2 s 8.9 s 9.0 s 420 ms HTMLJSONstderr
Bitbucket 58 requests 1643 KiB 31 100 10.0 s 8.8 s 9.3 s 11.3 s 11.5 s 820 ms HTMLJSONstderr

Tree (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 74 KiB 94 93 5.4 s 1.4 s 1.4 s 1.7 s 1.7 s 90 ms HTMLJSONstderr
GitHub * 25 requests 519 KiB 72 98 4.0 s 3.3 s 3.3 s 5.0 s 5.4 s 640 ms HTMLJSONstderr
Pagure 18 requests 1229 KiB 47 96 6.9 s 6.6 s 6.6 s 6.6 s 6.6 s 40 ms HTMLJSONstderr
GitLab 59 requests 1494 KiB 21 80 7.9 s 2.6 s 5.9 s 30.0 s 30.1 s 1,990 ms HTMLJSONstderr
Bitbucket * 58 requests 1655 KiB 10 100 13.0 s 9.0 s 9.4 s 12.3 s 12.4 s 1,020 ms HTMLJSONstderr
Codeberg n/an/a The page provided is not HTML (served as MIME type ). HTML JSON stderr
Notes

Log (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 33 KiB 100 94 2.6 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 28 requests 319 KiB 93 100 3.2 s 2.4 s 2.4 s 3.2 s 3.5 s 110 ms HTMLJSONstderr
Codeberg 42 requests 756 KiB 75 90 8.4 s 2.3 s 2.3 s 4.7 s 4.7 s 270 ms HTMLJSONstderr
GitLab 33 requests 560 KiB 66 79 5.5 s 1.8 s 2.6 s 5.0 s 5.2 s 410 ms HTMLJSONstderr
Pagure 68 requests 702 KiB 65 78 4.3 s 3.7 s 5.2 s 5.2 s 6.4 s 180 ms HTMLJSONstderr
Bitbucket 44 requests 1360 KiB 26 100 9.2 s 8.7 s 8.8 s 9.8 s 10.0 s 740 ms HTMLJSONstderr

Log (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 39 KiB 100 94 1.3 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 42 requests 367 KiB 87 100 3.0 s 2.4 s 2.4 s 3.0 s 3.6 s 80 ms HTMLJSONstderr
Codeberg 48 requests 638 KiB 80 90 8.0 s 2.0 s 2.0 s 4.4 s 4.4 s 250 ms HTMLJSONstderr
GitLab 53 requests 581 KiB 67 79 4.8 s 1.8 s 2.4 s 4.9 s 5.1 s 420 ms HTMLJSONstderr
Pagure 73 requests 703 KiB 53 78 42.3 s 3.7 s 5.5 s 5.5 s 6.0 s 170 ms HTMLJSONstderr
Bitbucket 47 requests 1355 KiB 27 98 9.9 s 8.9 s 9.2 s 10.1 s 10.1 s 820 ms HTMLJSONstderr

Commit

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 33 KiB 100 83 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 24 requests 327 KiB 92 97 2.7 s 2.3 s 2.3 s 2.9 s 3.2 s 70 ms HTMLJSONstderr
Codeberg 22 requests 854 KiB 75 88 4.4 s 2.0 s 2.0 s 4.9 s 4.9 s 150 ms HTMLJSONstderr
Bitbucket 37 requests 2369 KiB 63 94 6.0 s 2.8 s 2.8 s 5.2 s 15.9 s 640 ms HTMLJSONstderr
Pagure 23 requests 781 KiB 62 72 3.8 s 3.2 s 4.7 s 6.9 s 8.1 s 260 ms HTMLJSONstderr
GitLab 34 requests 721 KiB 58 83 4.2 s 1.8 s 3.2 s 5.8 s 5.9 s 400 ms HTMLJSONstderr

Source file (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 3 requests 53 KiB 100 94 2.1 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitHub 26 requests 375 KiB 85 98 2.8 s 2.3 s 2.3 s 3.6 s 4.0 s 150 ms HTMLJSONstderr
Codeberg 12 requests 621 KiB 77 96 9.3 s 2.3 s 2.3 s 4.7 s 4.7 s 190 ms HTMLJSONstderr
Pagure 21 requests 889 KiB 62 94 3.4 s 3.0 s 5.3 s 5.9 s 5.9 s 360 ms HTMLJSONstderr
GitLab 30 requests 1207 KiB 47 89 4.7 s 1.8 s 5.0 s 8.2 s 8.3 s 470 ms HTMLJSONstderr
Bitbucket 66 requests 2124 KiB 15 98 11.3 s 8.8 s 10.6 s 15.3 s 15.3 s 800 ms HTMLJSONstderr

Source file (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 3 requests 322 KiB 64 ? 8.2 s 2.6 s 2.6 s 3.8 s 3.9 s 200 ms HTMLJSONstderr
GitHub 36 requests 755 KiB 32 ? 6.2 s 4.2 s 4.2 s 9.9 s 10.0 s 370 ms HTMLJSONstderr
GitLab 30 requests 1442 KiB 30 ? 6.4 s 1.9 s 5.5 s 10.6 s 10.9 s 1,920 ms HTMLJSONstderr
Pagure 19 requests 1157 KiB 15 ? 13.7 s 5.3 s 6.7 s 8.7 s 8.7 s 1,620 ms HTMLJSONstderr
Codeberg 12 requests 1103 KiB 12 ? 24.8 s 6.0 s 6.0 s 16.1 s 16.2 s 1,750 ms HTMLJSONstderr
Bitbucket 69 requests 2819 KiB 9 98 12.1 s 8.8 s 10.6 s 16.0 s 19.3 s 790 ms HTMLJSONstderr

Blame (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 3 requests 60 KiB 100 94 2.5 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitHub 35 requests 374 KiB 91 98 3.1 s 2.6 s 2.6 s 3.8 s 4.3 s 290 ms HTMLJSONstderr
Bitbucket 32 requests 2450 KiB 46 85 8.2 s 2.9 s 2.9 s 4.9 s 16.1 s 580 ms HTMLJSONstderr
GitLab 34 requests 582 KiB 46 86 4.4 s 1.9 s 3.4 s 7.4 s 7.7 s 1,550 ms HTMLJSONstderr
Codeberg 38 requests 771 KiB 44 96 8.8 s 2.6 s 2.6 s 5.6 s 5.7 s 720 ms HTMLJSONstderr
Pagure 20 requests 1202 KiB 27 83 8.4 s 4.4 s 7.2 s 8.1 s 8.2 s 810 ms HTMLJSONstderr

Blame (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
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 The page provided is not HTML (served as MIME type ). HTML JSON stderr
GitLab 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
Pagure 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 2 requests 35 KiB 100 100 1.4 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 27 requests 884 KiB 89 86 4.3 s 2.2 s 2.2 s 4.4 s 4.4 s 190 ms HTMLJSONstderr
GitHub 24 requests 313 KiB 88 98 2.5 s 2.4 s 2.4 s 3.4 s 3.7 s 80 ms HTMLJSONstderr
Bitbucket 40 requests 2329 KiB 62 92 5.5 s 2.8 s 2.8 s 5.1 s 16.5 s 700 ms HTMLJSONstderr
Pagure 17 requests 620 KiB 62 78 5.6 s 3.9 s 3.9 s 4.9 s 6.4 s 70 ms HTMLJSONstderr
GitLab 39 requests 735 KiB 60 78 3.6 s 1.8 s 2.5 s 5.8 s 5.8 s 480 ms HTMLJSONstderr
Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 35 KiB 100 100 2.3 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 24 requests 313 KiB 89 98 2.5 s 2.4 s 2.4 s 3.3 s 3.5 s 70 ms HTMLJSONstderr
Codeberg 27 requests 884 KiB 74 86 12.8 s 2.7 s 2.7 s 4.8 s 4.9 s 170 ms HTMLJSONstderr
Pagure 18 requests 592 KiB 66 78 5.3 s 3.4 s 3.4 s 4.6 s 5.7 s 80 ms HTMLJSONstderr
GitLab 38 requests 735 KiB 61 72 3.8 s 1.7 s 2.4 s 5.8 s 5.8 s 470 ms HTMLJSONstderr
Bitbucket 41 requests 2330 KiB 59 92 5.7 s 2.8 s 2.8 s 5.1 s 16.2 s 680 ms HTMLJSONstderr

Details and comments

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 58 KiB 97 91 3.9 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitHub 51 requests 540 KiB 66 98 6.3 s 3.9 s 3.9 s 3.9 s 4.7 s 230 ms HTMLJSONstderr
Pagure 38 requests 3527 KiB 60 87 3.4 s 3.3 s 3.3 s 6.3 s 8.0 s 80 ms HTMLJSONstderr
Bitbucket 35 requests 2333 KiB 57 94 8.0 s 2.7 s 2.7 s 4.5 s 14.4 s 640 ms HTMLJSONstderr
Codeberg 44 requests 1349 KiB 55 84 9.1 s 2.9 s 2.9 s 7.4 s 8.5 s 210 ms HTMLJSONstderr
GitLab 84 requests 2123 KiB 33 72 5.2 s 1.8 s 1.8 s 8.7 s 10.8 s 1,520 ms HTMLJSONstderr

Code review

Browsing patches

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 31 KiB 100 91 1.4 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 23 requests 302 KiB 90 98 2.6 s 2.3 s 2.3 s 2.8 s 3.1 s 70 ms HTMLJSONstderr
Codeberg 27 requests 884 KiB 87 86 3.0 s 1.8 s 1.8 s 3.9 s 4.0 s 170 ms HTMLJSONstderr
Pagure 17 requests 543 KiB 79 82 4.5 s 3.0 s 3.0 s 3.0 s 3.0 s 40 ms HTMLJSONstderr
GitLab 32 requests 675 KiB 62 78 4.0 s 1.8 s 2.5 s 5.6 s 5.6 s 440 ms HTMLJSONstderr
Bitbucket 77 requests 2258 KiB 29 100 8.7 s 8.7 s 8.8 s 10.7 s 12.7 s 730 ms HTMLJSONstderr

Patch discussion

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 70 KiB 87 ? 9.0 s 1.1 s 1.1 s 1.1 s 1.1 s 50 ms HTMLJSONstderr
GitHub 39 requests 601 KiB 80 98 6.1 s 2.8 s 2.8 s 3.8 s 4.4 s 80 ms HTMLJSONstderr
Codeberg 21 requests 879 KiB 61 84 20.3 s 3.1 s 3.1 s 6.7 s 7.0 s 180 ms HTMLJSONstderr
Pagure 39 requests 2987 KiB 40 68 8.9 s 5.4 s 6.5 s 6.5 s 10.1 s 140 ms HTMLJSONstderr
GitLab 57 requests 1417 KiB 34 80 6.4 s 1.8 s 4.6 s 9.1 s 9.2 s 790 ms HTMLJSONstderr
Bitbucket 122 requests 2563 KiB 18 ? 10.1 s 1.8 s 1.8 s 6.3 s 17.7 s 540 ms HTMLJSONstderr

Patch diff

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut * 2 requests 70 KiB 87 ? 9.3 s 1.1 s 1.1 s 1.1 s 1.2 s 70 ms HTMLJSONstderr
GitHub 25 requests 473 KiB 80 97 4.6 s 2.9 s 3.1 s 3.1 s 3.3 s 150 ms HTMLJSONstderr
Codeberg 20 requests 873 KiB 64 87 15.0 s 2.8 s 2.8 s 5.9 s 6.2 s 180 ms HTMLJSONstderr
Pagure 39 requests 2987 KiB 43 68 7.9 s 4.8 s 6.3 s 8.3 s 9.7 s 140 ms HTMLJSONstderr
GitLab 55 requests 1454 KiB 26 86 7.6 s 1.8 s 5.5 s 12.0 s 12.6 s 1,520 ms HTMLJSONstderr
Bitbucket * 122 requests 2563 KiB 18 ? 9.7 s 1.8 s 1.8 s 6.2 s 17.3 s 570 ms HTMLJSONstderr
Notes