---
layout: default
title: GitLab Pricing
description: "See the options to self-host GitLab or use GitLab.com."
canonical_path: "/pricing/"
suppress_header: true
extra_css:
- gitlab-com.css
- pricing-6865-control.css
- pricing-6865-test.css
- experiments.css
extra_js:
- faq.js
- tabs.js
---
%script{ type: 'text/javascript', 'data-cookieconsent': 'ignore', crossorigin: 'anonymous', src: 'https://unpkg.com/launchdarkly-js-client-sdk@2' }
%script{ type: 'text/javascript', 'data-cookieconsent': 'ignore', src: '/javascripts/run-experiment.js' }
%script{ type: 'text/javascript', 'data-cookieconsent': 'ignore' }
:plain
function controllCallback() {
track("page_view", null, "control");
}
function testCallback() {
track("page_view", null, "group");
}
runExperiment('6865', 'pricing-6865', controllCallback, testCallback, 'production');
document.addEventListener(
"click",
function(event) {
var el = event.target;
if (el.matches(".experiment-test .plan .btn")) {
track("open_modal", el.dataset.target.match(/#(.*)-modal/)[1], "group");
} else if (el.matches(".experiment-test .btn-pricing")) {
if (el.href.match(/sign_in/)) {
track("cta_click", "free_saas", "group");
} else if (el.href.match(/install/)) {
track("cta_click", "free_self_managed", "group");
} else {
track("cta_click", el.href.match(/plan_id=(.*)&/)[1], "group");
}
} else if (el.matches(".experiment-control .btn-pricing")) {
console.log(el);
if (el.href.match(/sign_in/)) {
track("cta_click", "free_saas", "control");
} else if (el.href.match(/install/)) {
track("cta_click", "free_self_managed", "control");
} else {
track("cta_click", el.href.match(/plan_id=(.*)/)[1], "control");
}
}
},
false
);
function track(action, label, se_property) {
window.snowplow("trackStructEvent", "pricing_page", action, label, se_property, "");
}
#experiment6865{ style: 'min-height: 100vh;' }
.loading-experiment
.experiment-container.experiment-control
= partial '/experiments/6865-control'
.experiment-container.experiment-test
= partial '/experiments/6865-test'