[{"data":1,"prerenderedAt":1068},["ShallowReactive",2],{"/blog/redesigning-gitlabs-navigation":3,"navigation-en-us":281,"banner-en-us":708,"footer-en-us":718,"blog-post-authors-en-us-Taurie Davis":963,"blog-related-posts-en-us-redesigning-gitlabs-navigation":978,"blog-promotions-en-us":1004,"next-steps-en-us":1058},{"id":4,"title":5,"authors":6,"body":8,"category":254,"date":255,"description":256,"extension":257,"externalUrl":258,"faq":258,"featured":259,"heroImage":260,"meta":261,"navigation":269,"path":270,"seo":271,"slug":275,"stem":276,"tags":277,"template":279,"updatedDate":258,"__hash__":280},"blogPosts/en-us/blog/redesigning-gitlabs-navigation.md","Redesigning GitLab's navigation",[7],"Taurie Davis",{"type":9,"value":10,"toc":244},"minimark",[11,22,27,36,53,62,69,78,82,103,111,114,118,121,124,130,133,139,148,154,158,161,203,212,216,225,231,235],[12,13,14,15,21],"p",{},"At GitLab, we are taking big steps towards refining our interface in an effort to make the ",[16,17,20],"a",{"href":18,"rel":19},"https://university.gitlab.com/",[],"idea to production"," workflow more productive. After a series of research and brainstorming sessions, we are excited to share with the community our redesign of GitLab's navigation.",[23,24,26],"h2",{"id":25},"research-and-insight","Research and insight",[12,28,29,30,35],{},"Back in March, we began our first of three rounds of user testing related to our navigation architecture. We knew from previous feedback that navigating GitLab's features was complex, difficult, and could be drastically improved. One of the major pitfalls we discovered in ",[16,31,34],{"href":32,"rel":33},"https://gitlab.com/gitlab-org/gitlab-ce/issues/29878",[],"this round"," was confusion between global content vs. contextual content for new users when navigating. This was a large source of frustration when trying to find projects, or distinguish between your personal space and memberships.",[37,38,39,47],"ul",{},[40,41,42,46],"li",{},[43,44,45],"strong",{},"Global content"," refers to the elements that are always available to you. Example: Your projects, issues, merge requests, and explore sections.",[40,48,49,52],{},[43,50,51],{},"Contextual content"," refers to the elements that change based on the page you are viewing. Example: The content of an individual group page vs. a project page.",[12,54,55,56,61],{},"Using the data we gathered from our first round of testing, we began putting together common themes. This allowed us to gather questions and assumptions, which informed our next ",[16,57,60],{"href":58,"rel":59},"https://gitlab-org.gitlab.io/gitlab-design/hosted/pedro/ux-research-4-navigation-usability-test-prototype-html-previews/#/screens/226216190",[],"prototype"," to test from. Our research team created a script that would walk users through a number of tasks. This script was then used to help us validate the assumptions we had made in our brainstorm session.",[12,63,64],{},[65,66],"img",{"alt":67,"src":68},"Script","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398903/blog/Content%20Images/redesigning-gitlabs-navigation/script.png",[12,70,71,72,77],{},"We ",[16,73,76],{"href":74,"rel":75},"https://gitlab.com/gitlab-org/ux-research/issues/5",[],"wrote up our findings from this round",", identifying problem areas through the insight we gained by watching real users interact with our prototype. The team then set out to create a new design that addressed the interaction flaws we had identified during our testing.",[23,79,81],{"id":80},"further-discovery","Further discovery",[12,83,84,85,90,91,96,97,102],{},"Through a series of brainstorm sessions, the team created two new prototypes to use in testing. During ",[16,86,89],{"href":87,"rel":88},"https://gitlab.com/gitlab-org/ux-research/issues/7",[],"this round of testing",", six users were shown ",[16,92,95],{"href":93,"rel":94},"https://gitlab-org.gitlab.io/gitlab-design/hosted/chris/ux-research-7-prototype--vertical-breadcrumbs.framer/",[],"Prototype A"," and another six were shown ",[16,98,101],{"href":99,"rel":100},"https://gitlab-org.gitlab.io/gitlab-design/hosted/chris/ux-research-7-prototype--horizontal-breadcrumbs.framer/",[],"Prototype B",". Each prototype used the same series of tasks, allowing us to track usability issues from each prototype individually, as well as compare the average time taken per task.",[12,104,105,108],{},[43,106,107],{},"Prototypes A and B",[65,109],{"alt":101,"src":110},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398903/blog/Content%20Images/redesigning-gitlabs-navigation/prototypes.gif",[12,112,113],{},"During this third round of testing, we discovered that the majority of users were able to identify the difference between their global content from their contextual content after a few completed tasks. This was an improvement from our previous research which showed that users could finish a usability testing session without gaining an understanding of global vs. contextual content.",[23,115,117],{"id":116},"a-shippable-product","A shippable product",[12,119,120],{},"From the data we gathered in our third and final round of testing, we began putting together a design that could be shipped in our 9.4 release. We took the most successful aspects of both prototypes and created a mockup that addressed the major pain points we discovered during all of our testing.",[12,122,123],{},"We knew from previous feedback and from our research that including the global navigation links on the top navigation bar was superior to hiding them in a hidden hamburger menu. Openly displaying them in the top navigation allows users to easily and quickly access the information that they revisit often.",[12,125,126],{},[65,127],{"alt":128,"src":129},"Sidebar","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398902/blog/Content%20Images/redesigning-gitlabs-navigation/navigation-global-links-sidebar.png",[12,131,132],{},"We also learned that including a standard breadcrumb menu helped users orient themselves. It became much easier for new and seasoned users to understand where they were located and navigate up a level.",[12,134,135],{},[65,136],{"alt":137,"src":138},"Breadcrumb","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398902/blog/Content%20Images/redesigning-gitlabs-navigation/navigation-global-links--longer-project.png",[12,140,141,142,147],{},"Key experience decisions like these gave us a base for finalizing the foundation of the redesign. Afterwards, we began to take a closer look at the interface, add color, and define different states. Color played a key role in not only giving GitLab its own look and feel, but also further differentiating the global content from the contextual. We worked through ",[16,143,146],{"href":144,"rel":145},"https://gitlab.com/gitlab-org/gitlab-ce/issues/34402",[],"many iterations",", until we nailed down an interface that used color as a guide and not as a distraction.",[12,149,150],{},[65,151],{"alt":152,"src":153},"Final redesign","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398901/blog/Content%20Images/redesigning-gitlabs-navigation/final.png",[23,155,157],{"id":156},"continuing-to-iterate","Continuing to iterate",[12,159,160],{},"We are excited to share our progress with the community and even more excited that this is just the beginning. There are a number of improvements that we are working on in order to further improve our navigation. A few of these features include:",[37,162,163,171,179,187,195],{},[40,164,165,166],{},"Adding a fly-out drop down to the contextual navigation, making it easier and faster to reach sub menu items. ",[16,167,170],{"href":168,"rel":169},"https://gitlab.com/gitlab-org/gitlab-ce/issues/34026",[],"#34026",[40,172,173,174],{},"Make the contextual sidebar collapsible to allow for more screen real estate. ",[16,175,178],{"href":176,"rel":177},"https://gitlab.com/gitlab-org/gitlab-ce/issues/34028",[],"#34028",[40,180,181,182],{},"Adding multiple color palette options for differentiating instances. ",[16,183,186],{"href":184,"rel":185},"https://gitlab.com/gitlab-org/gitlab-ce/issues/35012",[],"#35012",[40,188,189,190],{},"Adding content to global navigation dropdowns to allow easier access to recent projects and groups. ",[16,191,194],{"href":192,"rel":193},"https://gitlab.com/gitlab-org/gitlab-ce/issues/35010",[],"#35010",[40,196,197,198],{},"Adding the contextual navigation on mobile devices. ",[16,199,202],{"href":200,"rel":201},"https://gitlab.com/gitlab-org/gitlab-ce/issues/34036",[],"#34036",[12,204,205,206,211],{},"You can see our current list of issues planned for 9.5 in our ",[16,207,210],{"href":208,"rel":209},"https://gitlab.com/gitlab-org/gitlab-ce/issues/32794",[],"Meta: Global and contextual navigation"," issue.",[23,213,215],{"id":214},"try-it-yourself","Try it yourself",[12,217,218,219,224],{},"We know that a UI change as large as a navigation redesign can be disruptive to workflow and habits but we hope that you will find GitLab much easier to navigate in 9.4! We actively worked to turn research and analysis into insight that would inform a more productive navigation architecture for GitLab. We have a number of improvements to make, and are including a way to turn the new navigation on and off while we continue to gather feedback and iterate in the next release. To turn the new navigation on, click your user profile dropdown and select \"Turn on new navigation\" or visit ",[16,220,223],{"href":221,"rel":222},"https://gitlab.com/profile/preferences#new-navigation",[],"your user preferences",".",[12,226,227],{},[65,228],{"alt":229,"src":230},"Turn on new nav","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398904/blog/Content%20Images/redesigning-gitlabs-navigation/turn-on-nav.png",[23,232,234],{"id":233},"feedback","Feedback",[12,236,237,238,243],{},"After several rounds of UX research and taking into account the feedback received from the community, we believe we have a UX solution that greatly improves navigating GitLab. In addition to the roll out in 9.4 and the scheduled improvements for 9.5, we have created a ",[16,239,242],{"href":240,"rel":241},"https://gitlab.com/gitlab-org/gitlab-ce/issues/34917",[],"feedback issue"," to collect, track, and act upon further feedback from the community. We would love to hear your thoughts so don't hesitate to leave us a comment below or in the issue!",{"title":245,"searchDepth":246,"depth":246,"links":247},"",2,[248,249,250,251,252,253],{"id":25,"depth":246,"text":26},{"id":80,"depth":246,"text":81},{"id":116,"depth":246,"text":117},{"id":156,"depth":246,"text":157},{"id":214,"depth":246,"text":215},{"id":233,"depth":246,"text":234},"engineering","2017-07-17","After a series of research and brainstorming sessions, we are excited to share with the community our redesign of GitLab's navigation.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679771/Blog/Hero%20Images/redesign-navigation-cover-image.jpg",{"excerpt":262},{"type":9,"value":263},[264],[12,265,14,266,21],{},[16,267,20],{"href":18,"rel":268},[],true,"/en-us/blog/redesigning-gitlabs-navigation",{"title":5,"description":256,"ogTitle":5,"ogDescription":256,"noIndex":259,"ogImage":260,"ogUrl":272,"ogSiteName":273,"ogType":274,"canonicalUrls":272},"https://about.gitlab.com/blog/redesigning-gitlabs-navigation","https://about.gitlab.com","article","redesigning-gitlabs-navigation","en-us/blog/redesigning-gitlabs-navigation",[278],"UX","BlogPost","RtGfq1mM_KlgZvue-l1yiKoNJOO3EGjWnlKZsU7cn20",{"logo":282,"freeTrial":287,"sales":292,"login":297,"items":302,"search":628,"minimal":659,"duo":678,"switchNav":687,"pricingDeployment":698},{"config":283},{"href":284,"dataGaName":285,"dataGaLocation":286},"/","gitlab logo","header",{"text":288,"config":289},"Get free trial",{"href":290,"dataGaName":291,"dataGaLocation":286},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":293,"config":294},"Request a demo",{"href":295,"dataGaName":296,"dataGaLocation":286},"/sales/?contact-topic=request-demo","sales",{"text":298,"config":299},"Sign in",{"href":300,"dataGaName":301,"dataGaLocation":286},"https://gitlab.com/users/sign_in/","sign in",[303,332,432,437,550,606],{"text":304,"config":305,"menu":307},"Platform",{"dataNavLevelOne":306},"platform",{"type":308,"columns":309},"cards",[310,316,324],{"title":304,"description":311,"link":312},"The intelligent orchestration platform for DevSecOps",{"text":313,"config":314},"Explore our Platform",{"href":315,"dataGaName":306,"dataGaLocation":286},"/platform/",{"title":317,"description":318,"link":319},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":320,"config":321},"Meet GitLab Duo",{"href":322,"dataGaName":323,"dataGaLocation":286},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":325,"description":326,"link":327},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":328,"config":329},"Learn more",{"href":330,"dataGaName":331,"dataGaLocation":286},"/why-gitlab/","why gitlab",{"text":333,"left":269,"config":334,"menu":336},"Product",{"dataNavLevelOne":335},"solutions",{"type":337,"link":338,"columns":342,"feature":411},"lists",{"text":339,"config":340},"View all Solutions",{"href":341,"dataGaName":335,"dataGaLocation":286},"/solutions/",[343,367,390],{"title":344,"description":345,"link":346,"items":351},"Automation","CI/CD and automation to accelerate deployment",{"config":347},{"icon":348,"href":349,"dataGaName":350,"dataGaLocation":286},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[352,356,359,363],{"text":353,"config":354},"CI/CD",{"href":355,"dataGaLocation":286,"dataGaName":353},"/solutions/continuous-integration/",{"text":317,"config":357},{"href":322,"dataGaLocation":286,"dataGaName":358},"gitlab duo agent platform - product menu",{"text":360,"config":361},"Source Code Management",{"href":362,"dataGaLocation":286,"dataGaName":360},"/solutions/source-code-management/",{"text":364,"config":365},"Automated Software Delivery",{"href":349,"dataGaLocation":286,"dataGaName":366},"Automated software delivery",{"title":368,"description":369,"link":370,"items":375},"Security","Deliver code faster without compromising security",{"config":371},{"href":372,"dataGaName":373,"dataGaLocation":286,"icon":374},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[376,380,385],{"text":377,"config":378},"Application Security Testing",{"href":372,"dataGaName":379,"dataGaLocation":286},"Application security testing",{"text":381,"config":382},"Software Supply Chain Security",{"href":383,"dataGaLocation":286,"dataGaName":384},"/solutions/supply-chain/","Software supply chain security",{"text":386,"config":387},"Software Compliance",{"href":388,"dataGaName":389,"dataGaLocation":286},"/solutions/software-compliance/","software compliance",{"title":391,"link":392,"items":397},"Measurement",{"config":393},{"icon":394,"href":395,"dataGaName":396,"dataGaLocation":286},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[398,402,406],{"text":399,"config":400},"Visibility & Measurement",{"href":395,"dataGaLocation":286,"dataGaName":401},"Visibility and Measurement",{"text":403,"config":404},"Value Stream Management",{"href":405,"dataGaLocation":286,"dataGaName":403},"/solutions/value-stream-management/",{"text":407,"config":408},"Analytics & Insights",{"href":409,"dataGaLocation":286,"dataGaName":410},"/solutions/analytics-and-insights/","Analytics and insights",{"title":412,"type":337,"items":413},"GitLab for",[414,420,426],{"text":415,"config":416},"Enterprise",{"icon":417,"href":418,"dataGaLocation":286,"dataGaName":419},"Building","/enterprise/","enterprise",{"text":421,"config":422},"Small Business",{"icon":423,"href":424,"dataGaLocation":286,"dataGaName":425},"Work","/small-business/","small business",{"text":427,"config":428},"Public Sector",{"icon":429,"href":430,"dataGaLocation":286,"dataGaName":431},"Organization","/solutions/public-sector/","public sector",{"text":433,"config":434},"Pricing",{"href":435,"dataGaName":436,"dataGaLocation":286,"dataNavLevelOne":436},"/pricing/","pricing",{"text":438,"config":439,"menu":441},"Resources",{"dataNavLevelOne":440},"resources",{"type":337,"link":442,"columns":446,"feature":539},{"text":443,"config":444},"View all resources",{"href":445,"dataGaName":440,"dataGaLocation":286},"/resources/",[447,479,506],{"title":448,"items":449},"Getting started",[450,455,460,464,469,474],{"text":451,"config":452},"Install",{"href":453,"dataGaName":454,"dataGaLocation":286},"/install/","install",{"text":456,"config":457},"Quick start guides",{"href":458,"dataGaName":459,"dataGaLocation":286},"/get-started/","quick setup checklists",{"text":461,"config":462},"Learn",{"href":18,"dataGaLocation":286,"dataGaName":463},"learn",{"text":465,"config":466},"Product documentation",{"href":467,"dataGaName":468,"dataGaLocation":286},"https://docs.gitlab.com/","product documentation",{"text":470,"config":471},"Best practice videos",{"href":472,"dataGaName":473,"dataGaLocation":286},"/getting-started-videos/","best practice videos",{"text":475,"config":476},"Integrations",{"href":477,"dataGaName":478,"dataGaLocation":286},"/integrations/","integrations",{"title":480,"items":481},"Discover",[482,487,492,497,501],{"text":483,"config":484},"Customer success stories",{"href":485,"dataGaName":486,"dataGaLocation":286},"/customers/","customer success stories",{"text":488,"config":489},"Blog",{"href":490,"dataGaName":491,"dataGaLocation":286},"/blog/","blog",{"text":493,"config":494},"Demo Hub",{"href":495,"dataGaName":496,"dataGaLocation":286},"/demo-hub/","demo hub",{"text":498,"config":499},"The Source",{"href":500,"dataGaName":491,"dataGaLocation":286},"/the-source/",{"text":502,"config":503},"Remote",{"href":504,"dataGaName":505,"dataGaLocation":286},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":507,"items":508},"Connect",[509,514,519,524,529,534],{"text":510,"config":511},"GitLab Services",{"href":512,"dataGaName":513,"dataGaLocation":286},"/services/","services",{"text":515,"config":516},"Contribute",{"href":517,"dataGaName":518,"dataGaLocation":286},"https://contributors.gitlab.com","contribute",{"text":520,"config":521},"Community",{"href":522,"dataGaName":523,"dataGaLocation":286},"/community/","community",{"text":525,"config":526},"Forum",{"href":527,"dataGaName":528,"dataGaLocation":286},"https://forum.gitlab.com/","forum",{"text":530,"config":531},"Events",{"href":532,"dataGaName":533,"dataGaLocation":286},"/events/","events",{"text":535,"config":536},"Partners",{"href":537,"dataGaName":538,"dataGaLocation":286},"/partners/","partners",{"config":540,"title":543,"text":544,"link":545},{"background":541,"textColor":542},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":546,"config":547},"Read the latest",{"href":548,"dataGaName":549,"dataGaLocation":286},"/whats-new/","whats new",{"text":551,"config":552,"menu":554},"Company",{"dataNavLevelOne":553},"company",{"type":337,"columns":555},[556],{"items":557},[558,563,569,571,576,581,586,591,596,601],{"text":559,"config":560},"About",{"href":561,"dataGaName":562,"dataGaLocation":286},"/company/","about",{"text":564,"config":565,"footerGa":568},"Jobs",{"href":566,"dataGaName":567,"dataGaLocation":286},"/jobs/","jobs",{"dataGaName":567},{"text":530,"config":570},{"href":532,"dataGaName":533,"dataGaLocation":286},{"text":572,"config":573},"Leadership",{"href":574,"dataGaName":575,"dataGaLocation":286},"/company/team/e-group/","leadership",{"text":577,"config":578},"Handbook",{"href":579,"dataGaName":580,"dataGaLocation":286},"https://handbook.gitlab.com/","handbook",{"text":582,"config":583},"Investor relations",{"href":584,"dataGaName":585,"dataGaLocation":286},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":587,"config":588},"Trust Center",{"href":589,"dataGaName":590,"dataGaLocation":286},"/security/","trust center",{"text":592,"config":593},"AI Transparency Center",{"href":594,"dataGaName":595,"dataGaLocation":286},"/ai-transparency-center/","ai transparency center",{"text":597,"config":598},"Newsletter",{"href":599,"dataGaName":600,"dataGaLocation":286},"/company/contact/#contact-forms","newsletter",{"text":602,"config":603},"Press",{"href":604,"dataGaName":605,"dataGaLocation":286},"/press/","press",{"text":607,"config":608,"menu":609},"Contact us",{"dataNavLevelOne":553},{"type":337,"columns":610},[611],{"items":612},[613,618,623],{"text":614,"config":615},"Talk to sales",{"href":616,"dataGaName":617,"dataGaLocation":286},"/sales/","talk to sales",{"text":619,"config":620},"Support portal",{"href":621,"dataGaName":622,"dataGaLocation":286},"https://support.gitlab.com/hc/en-us","support portal",{"text":624,"config":625},"Customer portal",{"href":626,"dataGaName":627,"dataGaLocation":286},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":629,"login":630,"suggestions":637},"Close",{"text":631,"link":632},"To search repositories and projects, login to",{"text":633,"config":634},"gitlab.com",{"href":300,"dataGaName":635,"dataGaLocation":636},"search login","search",{"text":638,"default":639},"Suggestions",[640,642,646,648,652,656],{"text":317,"config":641},{"href":322,"dataGaName":317,"dataGaLocation":636},{"text":643,"config":644},"Code Suggestions (AI)",{"href":645,"dataGaName":643,"dataGaLocation":636},"/solutions/code-suggestions/",{"text":353,"config":647},{"href":355,"dataGaName":353,"dataGaLocation":636},{"text":649,"config":650},"GitLab on AWS",{"href":651,"dataGaName":649,"dataGaLocation":636},"/partners/technology-partners/aws/",{"text":653,"config":654},"GitLab on Google Cloud",{"href":655,"dataGaName":653,"dataGaLocation":636},"/partners/technology-partners/google-cloud-platform/",{"text":657,"config":658},"Why GitLab?",{"href":330,"dataGaName":657,"dataGaLocation":636},{"freeTrial":660,"mobileIcon":665,"desktopIcon":670,"secondaryButton":673},{"text":661,"config":662},"Start free trial",{"href":663,"dataGaName":291,"dataGaLocation":664},"https://gitlab.com/-/trials/new/","nav",{"altText":666,"config":667},"Gitlab Icon",{"src":668,"dataGaName":669,"dataGaLocation":664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":666,"config":671},{"src":672,"dataGaName":669,"dataGaLocation":664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":674,"config":675},"Get Started",{"href":676,"dataGaName":677,"dataGaLocation":664},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":679,"mobileIcon":683,"desktopIcon":685},{"text":680,"config":681},"Learn more about GitLab Duo",{"href":322,"dataGaName":682,"dataGaLocation":664},"gitlab duo",{"altText":666,"config":684},{"src":668,"dataGaName":669,"dataGaLocation":664},{"altText":666,"config":686},{"src":672,"dataGaName":669,"dataGaLocation":664},{"button":688,"mobileIcon":693,"desktopIcon":695},{"text":689,"config":690},"/switch",{"href":691,"dataGaName":692,"dataGaLocation":664},"#contact","switch",{"altText":666,"config":694},{"src":668,"dataGaName":669,"dataGaLocation":664},{"altText":666,"config":696},{"src":697,"dataGaName":669,"dataGaLocation":664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":699,"mobileIcon":704,"desktopIcon":706},{"text":700,"config":701},"Back to pricing",{"href":435,"dataGaName":702,"dataGaLocation":664,"icon":703},"back to pricing","GoBack",{"altText":666,"config":705},{"src":668,"dataGaName":669,"dataGaLocation":664},{"altText":666,"config":707},{"src":672,"dataGaName":669,"dataGaLocation":664},{"title":709,"titleMobile":710,"button":711,"config":716},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":328,"config":712},{"href":713,"dataGaName":714,"dataGaLocation":715},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":717,"disabled":259},"release",{"data":719},{"text":720,"source":721,"edit":727,"contribute":732,"config":737,"items":742,"minimal":952},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":722,"config":723},"View page source",{"href":724,"dataGaName":725,"dataGaLocation":726},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":728,"config":729},"Edit this page",{"href":730,"dataGaName":731,"dataGaLocation":726},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":733,"config":734},"Please contribute",{"href":735,"dataGaName":736,"dataGaLocation":726},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":738,"facebook":739,"youtube":740,"linkedin":741},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[743,790,844,888,920],{"title":433,"links":744,"subMenu":759},[745,749,754],{"text":746,"config":747},"View plans",{"href":435,"dataGaName":748,"dataGaLocation":726},"view plans",{"text":750,"config":751},"Why Premium?",{"href":752,"dataGaName":753,"dataGaLocation":726},"/pricing/premium/","why premium",{"text":755,"config":756},"Why Ultimate?",{"href":757,"dataGaName":758,"dataGaLocation":726},"/pricing/ultimate/","why ultimate",[760],{"title":761,"links":762},"Contact Us",[763,766,768,770,775,780,785],{"text":764,"config":765},"Contact sales",{"href":616,"dataGaName":296,"dataGaLocation":726},{"text":619,"config":767},{"href":621,"dataGaName":622,"dataGaLocation":726},{"text":624,"config":769},{"href":626,"dataGaName":627,"dataGaLocation":726},{"text":771,"config":772},"Status",{"href":773,"dataGaName":774,"dataGaLocation":726},"https://status.gitlab.com/","status",{"text":776,"config":777},"Terms of use",{"href":778,"dataGaName":779,"dataGaLocation":726},"/terms/","terms of use",{"text":781,"config":782},"Privacy statement",{"href":783,"dataGaName":784,"dataGaLocation":726},"/privacy/","privacy statement",{"text":786,"config":787},"Cookie preferences",{"dataGaName":788,"dataGaLocation":726,"id":789,"isOneTrustButton":269},"cookie preferences","ot-sdk-btn",{"title":333,"links":791,"subMenu":800},[792,796],{"text":793,"config":794},"DevSecOps platform",{"href":315,"dataGaName":795,"dataGaLocation":726},"devsecops platform",{"text":797,"config":798},"AI-Assisted Development",{"href":322,"dataGaName":799,"dataGaLocation":726},"ai-assisted development",[801],{"title":802,"links":803},"Topics",[804,809,814,819,824,829,834,839],{"text":805,"config":806},"CICD",{"href":807,"dataGaName":808,"dataGaLocation":726},"/topics/ci-cd/","cicd",{"text":810,"config":811},"GitOps",{"href":812,"dataGaName":813,"dataGaLocation":726},"/topics/gitops/","gitops",{"text":815,"config":816},"DevOps",{"href":817,"dataGaName":818,"dataGaLocation":726},"/topics/devops/","devops",{"text":820,"config":821},"Version Control",{"href":822,"dataGaName":823,"dataGaLocation":726},"/topics/version-control/","version control",{"text":825,"config":826},"DevSecOps",{"href":827,"dataGaName":828,"dataGaLocation":726},"/topics/devsecops/","devsecops",{"text":830,"config":831},"Cloud Native",{"href":832,"dataGaName":833,"dataGaLocation":726},"/topics/cloud-native/","cloud native",{"text":835,"config":836},"AI for Coding",{"href":837,"dataGaName":838,"dataGaLocation":726},"/topics/devops/ai-for-coding/","ai for coding",{"text":840,"config":841},"Agentic AI",{"href":842,"dataGaName":843,"dataGaLocation":726},"/topics/agentic-ai/","agentic ai",{"title":845,"links":846},"Solutions",[847,849,851,856,860,863,867,870,872,875,878,883],{"text":377,"config":848},{"href":372,"dataGaName":377,"dataGaLocation":726},{"text":366,"config":850},{"href":349,"dataGaName":350,"dataGaLocation":726},{"text":852,"config":853},"Agile development",{"href":854,"dataGaName":855,"dataGaLocation":726},"/solutions/agile-delivery/","agile delivery",{"text":857,"config":858},"SCM",{"href":362,"dataGaName":859,"dataGaLocation":726},"source code management",{"text":805,"config":861},{"href":355,"dataGaName":862,"dataGaLocation":726},"continuous integration & delivery",{"text":864,"config":865},"Value stream management",{"href":405,"dataGaName":866,"dataGaLocation":726},"value stream management",{"text":810,"config":868},{"href":869,"dataGaName":813,"dataGaLocation":726},"/solutions/gitops/",{"text":415,"config":871},{"href":418,"dataGaName":419,"dataGaLocation":726},{"text":873,"config":874},"Small business",{"href":424,"dataGaName":425,"dataGaLocation":726},{"text":876,"config":877},"Public sector",{"href":430,"dataGaName":431,"dataGaLocation":726},{"text":879,"config":880},"Education",{"href":881,"dataGaName":882,"dataGaLocation":726},"/solutions/education/","education",{"text":884,"config":885},"Financial services",{"href":886,"dataGaName":887,"dataGaLocation":726},"/solutions/finance/","financial services",{"title":438,"links":889},[890,892,894,896,899,901,904,906,908,910,912,914,916,918],{"text":451,"config":891},{"href":453,"dataGaName":454,"dataGaLocation":726},{"text":456,"config":893},{"href":458,"dataGaName":459,"dataGaLocation":726},{"text":461,"config":895},{"href":18,"dataGaName":463,"dataGaLocation":726},{"text":465,"config":897},{"href":467,"dataGaName":898,"dataGaLocation":726},"docs",{"text":488,"config":900},{"href":490,"dataGaName":491,"dataGaLocation":726},{"text":902,"config":903},"What's new",{"href":548,"dataGaName":549,"dataGaLocation":726},{"text":483,"config":905},{"href":485,"dataGaName":486,"dataGaLocation":726},{"text":502,"config":907},{"href":504,"dataGaName":505,"dataGaLocation":726},{"text":510,"config":909},{"href":512,"dataGaName":513,"dataGaLocation":726},{"text":515,"config":911},{"href":517,"dataGaName":518,"dataGaLocation":726},{"text":520,"config":913},{"href":522,"dataGaName":523,"dataGaLocation":726},{"text":525,"config":915},{"href":527,"dataGaName":528,"dataGaLocation":726},{"text":530,"config":917},{"href":532,"dataGaName":533,"dataGaLocation":726},{"text":535,"config":919},{"href":537,"dataGaName":538,"dataGaLocation":726},{"title":551,"links":921},[922,924,926,928,930,932,936,941,943,945,947],{"text":559,"config":923},{"href":561,"dataGaName":553,"dataGaLocation":726},{"text":564,"config":925},{"href":566,"dataGaName":567,"dataGaLocation":726},{"text":572,"config":927},{"href":574,"dataGaName":575,"dataGaLocation":726},{"text":577,"config":929},{"href":579,"dataGaName":580,"dataGaLocation":726},{"text":582,"config":931},{"href":584,"dataGaName":585,"dataGaLocation":726},{"text":933,"config":934},"Sustainability",{"href":935,"dataGaName":933,"dataGaLocation":726},"/sustainability/",{"text":937,"config":938},"Diversity, inclusion and belonging (DIB)",{"href":939,"dataGaName":940,"dataGaLocation":726},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":587,"config":942},{"href":589,"dataGaName":590,"dataGaLocation":726},{"text":597,"config":944},{"href":599,"dataGaName":600,"dataGaLocation":726},{"text":602,"config":946},{"href":604,"dataGaName":605,"dataGaLocation":726},{"text":948,"config":949},"Modern Slavery Transparency Statement",{"href":950,"dataGaName":951,"dataGaLocation":726},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":953},[954,957,960],{"text":955,"config":956},"Terms",{"href":778,"dataGaName":779,"dataGaLocation":726},{"text":958,"config":959},"Cookies",{"dataGaName":788,"dataGaLocation":726,"id":789,"isOneTrustButton":269},{"text":961,"config":962},"Privacy",{"href":783,"dataGaName":784,"dataGaLocation":726},[964],{"id":965,"title":7,"body":258,"config":966,"content":968,"description":258,"extension":972,"meta":973,"navigation":269,"path":974,"seo":975,"stem":976,"__hash__":977},"blogAuthors/en-us/blog/authors/taurie-davis.yml",{"template":967},"BlogAuthor",{"name":7,"config":969},{"headshot":970,"ctfId":971},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667191/Blog/Author%20Headshots/tauriedavis-headshot.jpg","tauriedavis","yml",{},"/en-us/blog/authors/taurie-davis",{},"en-us/blog/authors/taurie-davis","kDdWV6fBzLJzh9g9rA2G5cYszn9PyIKHuoeHku7KNPY",[979,988,996],{"title":980,"description":981,"heroImage":982,"category":254,"date":983,"authors":984,"slug":987,"externalUrl":258},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[985,986],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":989,"description":990,"heroImage":991,"category":254,"date":992,"authors":993,"slug":995,"externalUrl":258},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[994],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":997,"description":998,"heroImage":999,"category":254,"date":1000,"authors":1001,"slug":1003,"externalUrl":258},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[1002],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":1005},[1006,1020,1032,1044],{"id":1007,"categories":1008,"header":1010,"text":1011,"button":1012,"image":1017},"ai-modernization",[1009],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1013,"config":1014},"Get your AI maturity score",{"href":1015,"dataGaName":1016,"dataGaLocation":491},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1018},{"src":1019},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1021,"categories":1022,"header":1024,"text":1011,"button":1025,"image":1029},"devops-modernization",[1023,828],"product","Are you just managing tools or shipping innovation?",{"text":1026,"config":1027},"Get your DevOps maturity score",{"href":1028,"dataGaName":1016,"dataGaLocation":491},"/assessments/devops-modernization-assessment/",{"config":1030},{"src":1031},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1033,"categories":1034,"header":1036,"text":1011,"button":1037,"image":1041},"security-modernization",[1035],"security","Are you trading speed for security?",{"text":1038,"config":1039},"Get your security maturity score",{"href":1040,"dataGaName":1016,"dataGaLocation":491},"/assessments/security-modernization-assessment/",{"config":1042},{"src":1043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1045,"paths":1046,"header":1049,"text":1050,"button":1051,"image":1056},"github-azure-migration",[1047,1048],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1052,"config":1053},"See how GitLab compares to GitHub",{"href":1054,"dataGaName":1055,"dataGaLocation":491},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1057},{"src":1031},{"header":1059,"blurb":1060,"button":1061,"secondaryButton":1066},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1062,"config":1063},"Get your free trial",{"href":1064,"dataGaName":291,"dataGaLocation":1065},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":764,"config":1067},{"href":616,"dataGaName":296,"dataGaLocation":1065},1786803737147]