--- title: Features description: "Learn about the various features of GitLab, including issue tracking, time tracking, reporting, file locking, and more." suppress_header: true extra_css: - features-v2.css - release-posts.css - product.css extra_js: - features.js - bootstrap-tooltip.js --- .blank-header = image_tag "/images/home/icons-pattern-left.svg", class: "image-border image-border-left", alt: "Gitlab hero border pattern left svg" = image_tag "/images/home/icons-pattern-right.svg", class: "image-border image-border-right", alt: "Gitlab hero border pattern right svg" .header-content %h1 All GitLab Features %p :markdown GitLab is a [complete DevOps](/stages-devops-lifecycle/) platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate and build software. From idea to production, GitLab helps teams improve cycle time from weeks to minutes, reduce development costs and time to market while increasing developer productivity. %a.btn.cta-btn.btn-red{ href: '/demo/' } Watch a GitLab demo .page-container.table-of-contents.text-center{ :style => "padding-bottom: 35px;" } .container{ style: "max-width: 900px;" } = link_to "/stages-devops-lifecycle/", class: "title-link" do %h2 Stages of the DevOps lifecycle %ul - data.stages.stages.select{|stageKey,stage| stage.marketing}.each do |key, stage| = link_to stage.display_name, "##{key}"    - Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage| .page-container.feature-gallery.text-center.animated{ id: stage.key } .container %a.title-link{ href: "/stages-devops-lifecycle/#{stage.key}" } %h2 = stage.display_name %p.subhead = stage.description - stage.categories.each do |category| - next unless category.features? - url = category.best_link %a{ href: "#{url}"} %h4.text-left{style: "max-width: none;"} = category.name .features-description.features-description-separation - category.features.each do |feature| - next if feature.missing? - if feature.screenshot? = partial "includes/features/feature-item-with-image", locals: { feature: feature } - category.features.each do |feature| - next if feature.missing? - if !feature.screenshot? = partial "includes/features/feature-item", locals: { feature: feature } - if category.missing_features? %h4.text-left{style: "max-width: none;"} = category.name \- Missing Features .features-description.features-description-separation - category.features.each do |feature| - next unless feature.missing? - if feature.screenshot? = partial "includes/features/feature-item-with-image", locals: { feature: feature } - category.features.each do |feature| - next unless feature.missing? - if !feature.screenshot? = partial "includes/features/feature-item", locals: { feature: feature } .gitlab-cta-container.text-center.animated .container %h1 Choose the version of GitLab that is best for you %h4 Host GitLab on your servers or let us host it for you = link_to "/products", class: "btn cta-btn red hidden-sm hidden-xs" do Explore our products = link_to "/products", class: "btn cta-btn red visible-sm visible-xs" do Explore