[{"data":1,"prerenderedAt":1070},["ShallowReactive",2],{"/blog/gl-for-pm-prt-2":3,"navigation-en-us":284,"banner-en-us":712,"footer-en-us":722,"blog-post-authors-en-us-Sara Kassabian":966,"blog-related-posts-en-us-gl-for-pm-prt-2":980,"blog-promotions-en-us":1006,"next-steps-en-us":1060},{"id":4,"title":5,"authors":6,"body":8,"category":262,"date":263,"description":264,"extension":265,"externalUrl":266,"faq":266,"featured":267,"heroImage":268,"meta":269,"navigation":270,"path":271,"seo":272,"slug":276,"stem":277,"tags":278,"template":282,"updatedDate":266,"__hash__":283},"blogPosts/en-us/blog/gl-for-pm-prt-2.md","2 Examples of how marketing uses GitLab to manage complex projects",[7],"Sara Kassabian",{"type":9,"value":10,"toc":251},"minimark",[11,24,33,36,39,47,68,71,78,81,84,91,94,97,100,105,108,113,122,131,134,137,140,164,167,171,174,177,181,196,199,202,206,209,212,215,224,237],[12,13,14],"p",{},[15,16,17,18,23],"em",{},"In ",[19,20,22],"a",{"href":21},"/blog/gitlab-for-project-management-one/","part one of this series"," we looked at the pervasive problems around collaboration and how GitLab was built to resolve those challenges both in and out of the software development space. In this second part we take a detailed look at how our marketing teams used GitLab for project management.",[12,25,26,27,32],{},"When we jumped in to using GitLab for project management, we did it in a big way. The ",[19,28,31],{"href":29,"rel":30},"https://gitlab.com/groups/gitlab-com/marketing/-/epics/7",[],"Just Commit marketing campaign"," which launched in January 2019 is a good example of how the marketing team uses GitLab features like issues and epics.",[12,34,35],{},"\"It was our first integrated campaign, and if you're not familiar with what that means, it's basically landing a single message across all channels,\" says Jackie Gragnola, marketing programs manager. “So using social media, digital marketing, all of our content, our website. and in doing so, it was involving a lot of different team members.\"",[12,37,38],{},"Since there were so many stakeholders involved, it was unrealistic that something like a Google Doc could provide the infrastructure necessary for efficient and transparent collaboration. Jackie migrated her kick-off document from Google Docs over to GitLab. \"It was the first test into using epics to give the high-level information and then organize the group into a single unified vision for what this campaign would become,\" she explains.",[12,40,41,46],{},[42,43],"img",{"alt":44,"src":45},"justcommit-integratedcampaign","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398374/blog/Content%20Images/gitlab-for-proj-management2/justcommit_integratedcampaign.png","\nThe Just Commit integrated campaign epic included the JustCommit label, as well as campaign goals, personas the campaign is targeting, links to recorded meetings, and more.",[12,48,49,50,55,56,61,62,67],{},"The Just Commit ancestor epic also included details such as ",[19,51,54],{"href":52,"rel":53},"https://gitlab.com/groups/gitlab-com/marketing/-/epics/7#utm-for-tracking-urls",[],"UTM tracking links",", a ",[19,57,60],{"href":58,"rel":59},"https://gitlab.com/groups/gitlab-com/marketing/-/epics/7#teams-involved-roles-responsibilities",[],"list of teams and DRIs involved in the campaign",", and a ",[19,63,66],{"href":64,"rel":65},"https://gitlab.com/groups/gitlab-com/marketing/-/epics/7#key-timeline-dates",[],"timeline of key dates and deliverables"," in the lead-up to the Feb. 18, 2019 launch.",[12,69,70],{},"A level below the ancestor epic are child epics, which were organized by areas of action items. Some examples include organic search, webcasts, emails, and events; messaging and positioning, etc.",[12,72,73,77],{},[42,74],{"alt":75,"src":76},"justcommit-child epics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398372/blog/Content%20Images/gitlab-for-proj-management2/jc-childepics.png","\nExamples of some of the child epics for the Just Commit integrated campaign.",[12,79,80],{},"The Just Commit label that was created was tagged to issues related to the campaign. It is simple enough to get a high-level overview of what issues are related to the Just Commit campaign by searching for the label.",[12,82,83],{},"In order to dig deeper into the different categories of work, you’d look at the issue list within the different child epics. The issue list functions essentially as a list of what needs to get done, and provides a good overview of what’s left to accomplish on the list.",[12,85,86,90],{},[42,87],{"alt":88,"src":89},"justcommit-issue list","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398372/blog/Content%20Images/gitlab-for-proj-management2/jc-strategy-and-design.png","\nThis is an example of the issue list from the strategy and design child epic.",[12,92,93],{},"Inside each issue is a DRI and a due date. The due dates were important not just to stay ahead of deadline, but also because there were a lot of dependencies baked into the integrated campaign.",[12,95,96],{},"\"We couldn't work on the content until we knew what the message was, and we couldn't work on anything related to digital marketing until we had the designs approved,\" says Jackie. \"So, this just kept us organized by saying what we needed to get done by what dates and kept us up-to-date on the timeline that would help us hit that delivery date.\"",[12,98,99],{},"By using GitLab features such as ancestor epics, child epics, issues, and labels, the Just Commit integrated campaign kept all stakeholders updated on their progress and accountable for their deliverables.",[101,102,104],"h2",{"id":103},"how-product-marketing-uses-gitlab","How product marketing uses GitLab",[12,106,107],{},"Tye Davis is a technical marketing manager and he uses GitLab for managing product marketing projects.",[109,110,112],"h3",{"id":111},"use-issue-boards-to-get-a-global-overview-of-work","Use issue boards to get a global overview of work",[12,114,115,116,121],{},"Tye works primarily within the ",[19,117,120],{"href":118,"rel":119},"https://gitlab.com/gitlab-com/marketing/product-marketing",[],"product marketing project",", which is housed in the broader marketing group. Just like we saw in the Just Commit integrated campaign, there are various ancestor epics, child epics, and issues housed within this project.",[12,123,124,125,130],{},"The ",[19,126,129],{"href":127,"rel":128},"https://docs.gitlab.com/user/project/issue_board/",[],"issue board view"," is a useful way to visualize and organize all the issues and activity happening within a specific group or project. Viewing an issue board is simple enough: Just select boards under the issues tab to see all of the issues within a specific group, or to narrow the scope select a specific project. But building one is another matter entirely.",[12,132,133],{},"It is important to think strategically about the level at which you build your issue board, because that will impact how much information is rolled up into the board.",[12,135,136],{},"\"You have to think about where your work lies and where you should be building your issue boards in epics,\" says JJ Cordz, senior marketing ops manager. \"As an example, in marketing ops we presently work across departments so we do a lot of with sales ops, biz ops, sales in general, and all of those are individual projects and groups. So our issue board is actually built at this highest level (i.e., marketing group level) because we need to pull in everything else.\"",[12,138,139],{},"But not every team is as integrated as marketing ops. Sometimes building an issue board at the team level, instead of the group or project level, makes the most sense for your workflow.",[12,141,124,142,147,148,152,153,152,156,159,160,163],{},[19,143,146],{"href":144,"rel":145},"https://gitlab.com/gitlab-com/marketing/product-marketing/-/boards/926375?&label_name%5B%5D=tech-pmm",[],"technical marketing team has its own issue board",", and it is sorted by labels. The labels it uses are uniform across the marketing group to indicate the status of a particular issue – ",[149,150,151],"code",{},"status: plan",", ",[149,154,155],{},"status: WIP",[149,157,158],{},"status: scheduled",", or ",[149,161,162],{},"status: review",". The labels automatically change when a particular issue is dragged between label lanes.",[12,165,166],{},"The use of these labels and the different team boards that live within the product marketing group allows anyone to take a look at the status of both individual issues and larger projects.",[109,168,170],{"id":169},"team-boards","Team boards",[12,172,173],{},"Another option to configure an issue board is to base it on teams and sort based on an assignee. The team board view sorted by assignee allows you to see what each team member is working on.",[12,175,176],{},"“We create boards based on assignee. This allows us to see who has what issue and what they're working on,\" says Tye. “Maybe your manager just wants to see what the team's working on or you're being a collaborative Agile team and want to just see what everyone's doing or what you could work on together.\"",[109,178,180],{"id":179},"tracking-progress","Tracking progress",[12,182,183,184,189,190,195],{},"There are two main options for measuring work progress from a project management perspective: ",[19,185,188],{"href":186,"rel":187},"https://docs.gitlab.com/user/project/milestones/#project-milestones-and-group-milestones",[],"milestones"," and ",[19,191,194],{"href":192,"rel":193},"https://docs.gitlab.com/user/project/milestones/burndown_and_burnup_charts/",[],"burndown charts",".",[12,197,198],{},"Milestones are time-bound and track work output based on a specific timeframe (e.g., Q1 FY20 – a four-month period). When creating an issue, you can assign it to a specific milestone.",[12,200,201],{},"Burndown charts reflect all the issues that are completed within the specific milestone. Once the time period (e.g., Q1 FY20), is up, you move any remaining and new work over to the next milestone (e.g., Q2 FY 2020).",[109,203,205],{"id":204},"relating-to-gitlab-customers","Relating to GitLab customers",[12,207,208],{},"While the marketing team and other teams across the company use GitLab as a project management tool, the majority of our customers are engineers that use GitLab as an Agile planning tool for developing code.",[12,210,211],{},"We can still relate to our customers through our use of issues and merge requests to make changes to the handbook, publish blog posts, among other activities in different repositories within GitLab.",[12,213,214],{},"Whether you’re an infrastructure engineer, product marketing manager, or even an editor for the GitLab blog, the GitLab product functions as a sophisticated and customizable project management tool where collaboration and efficiency are baked into the function and design.",[12,216,217,218,223],{},"Watch the video from ",[19,219,222],{"href":220,"rel":221},"https://handbook.gitlab.com/handbook/company/culture/summit/",[],"GitLab Contribute"," in New Orleans to see an overview of how GitLab can be used for project management, plus more on using GitLab for integrated campaigns and product marketing.",[225,226,229,230],"figure",{"className":227},[228],"video_container","\n  ",[231,232,236],"iframe",{"src":233,"frameBorder":234,"allowFullScreen":235},"https://www.youtube-nocookie.com/embed/tbg8KSyIWVg","0","true"," ",[12,238,239,240,245,246,195],{},"Cover image by ",[19,241,244],{"href":242,"rel":243},"https://unsplash.com/@startaeteam",[],"Startaê Team"," on ",[19,247,250],{"href":248,"rel":249},"https://unsplash.com/s/photos/sticky-notes",[],"Unsplash",{"title":252,"searchDepth":253,"depth":253,"links":254},"",2,[255],{"id":103,"depth":253,"text":104,"children":256},[257,259,260,261],{"id":111,"depth":258,"text":112},3,{"id":169,"depth":258,"text":170},{"id":179,"depth":258,"text":180},{"id":204,"depth":258,"text":205},"engineering","2019-12-11","How GitLab technology powers integrated marketing campaigns and product marketing projects.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680908/Blog/Hero%20Images/stickynotes.jpg",{},true,"/en-us/blog/gl-for-pm-prt-2",{"title":5,"description":264,"ogTitle":5,"ogDescription":264,"noIndex":267,"ogImage":268,"ogUrl":273,"ogSiteName":274,"ogType":275,"canonicalUrls":273},"https://about.gitlab.com/blog/gl-for-pm-prt-2","https://about.gitlab.com","article","gl-for-pm-prt-2","en-us/blog/gl-for-pm-prt-2",[279,280,281],"DevOps","workflow","collaboration","BlogPost","XISZ2B11gvdhEjOkG1hBpHLlGhOlaPd870JcJraE6qE",{"logo":285,"freeTrial":290,"sales":295,"login":300,"items":305,"search":632,"minimal":663,"duo":682,"switchNav":691,"pricingDeployment":702},{"config":286},{"href":287,"dataGaName":288,"dataGaLocation":289},"/","gitlab logo","header",{"text":291,"config":292},"Get free trial",{"href":293,"dataGaName":294,"dataGaLocation":289},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":296,"config":297},"Request a demo",{"href":298,"dataGaName":299,"dataGaLocation":289},"/sales/?contact-topic=request-demo","sales",{"text":301,"config":302},"Sign in",{"href":303,"dataGaName":304,"dataGaLocation":289},"https://gitlab.com/users/sign_in/","sign in",[306,335,435,440,554,610],{"text":307,"config":308,"menu":310},"Platform",{"dataNavLevelOne":309},"platform",{"type":311,"columns":312},"cards",[313,319,327],{"title":307,"description":314,"link":315},"The intelligent orchestration platform for DevSecOps",{"text":316,"config":317},"Explore our Platform",{"href":318,"dataGaName":309,"dataGaLocation":289},"/platform/",{"title":320,"description":321,"link":322},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":323,"config":324},"Meet GitLab Duo",{"href":325,"dataGaName":326,"dataGaLocation":289},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":328,"description":329,"link":330},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":331,"config":332},"Learn more",{"href":333,"dataGaName":334,"dataGaLocation":289},"/why-gitlab/","why gitlab",{"text":336,"left":270,"config":337,"menu":339},"Product",{"dataNavLevelOne":338},"solutions",{"type":340,"link":341,"columns":345,"feature":414},"lists",{"text":342,"config":343},"View all Solutions",{"href":344,"dataGaName":338,"dataGaLocation":289},"/solutions/",[346,370,393],{"title":347,"description":348,"link":349,"items":354},"Automation","CI/CD and automation to accelerate deployment",{"config":350},{"icon":351,"href":352,"dataGaName":353,"dataGaLocation":289},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[355,359,362,366],{"text":356,"config":357},"CI/CD",{"href":358,"dataGaLocation":289,"dataGaName":356},"/solutions/continuous-integration/",{"text":320,"config":360},{"href":325,"dataGaLocation":289,"dataGaName":361},"gitlab duo agent platform - product menu",{"text":363,"config":364},"Source Code Management",{"href":365,"dataGaLocation":289,"dataGaName":363},"/solutions/source-code-management/",{"text":367,"config":368},"Automated Software Delivery",{"href":352,"dataGaLocation":289,"dataGaName":369},"Automated software delivery",{"title":371,"description":372,"link":373,"items":378},"Security","Deliver code faster without compromising security",{"config":374},{"href":375,"dataGaName":376,"dataGaLocation":289,"icon":377},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[379,383,388],{"text":380,"config":381},"Application Security Testing",{"href":375,"dataGaName":382,"dataGaLocation":289},"Application security testing",{"text":384,"config":385},"Software Supply Chain Security",{"href":386,"dataGaLocation":289,"dataGaName":387},"/solutions/supply-chain/","Software supply chain security",{"text":389,"config":390},"Software Compliance",{"href":391,"dataGaName":392,"dataGaLocation":289},"/solutions/software-compliance/","software compliance",{"title":394,"link":395,"items":400},"Measurement",{"config":396},{"icon":397,"href":398,"dataGaName":399,"dataGaLocation":289},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[401,405,409],{"text":402,"config":403},"Visibility & Measurement",{"href":398,"dataGaLocation":289,"dataGaName":404},"Visibility and Measurement",{"text":406,"config":407},"Value Stream Management",{"href":408,"dataGaLocation":289,"dataGaName":406},"/solutions/value-stream-management/",{"text":410,"config":411},"Analytics & Insights",{"href":412,"dataGaLocation":289,"dataGaName":413},"/solutions/analytics-and-insights/","Analytics and insights",{"title":415,"type":340,"items":416},"GitLab for",[417,423,429],{"text":418,"config":419},"Enterprise",{"icon":420,"href":421,"dataGaLocation":289,"dataGaName":422},"Building","/enterprise/","enterprise",{"text":424,"config":425},"Small Business",{"icon":426,"href":427,"dataGaLocation":289,"dataGaName":428},"Work","/small-business/","small business",{"text":430,"config":431},"Public Sector",{"icon":432,"href":433,"dataGaLocation":289,"dataGaName":434},"Organization","/solutions/public-sector/","public sector",{"text":436,"config":437},"Pricing",{"href":438,"dataGaName":439,"dataGaLocation":289,"dataNavLevelOne":439},"/pricing/","pricing",{"text":441,"config":442,"menu":444},"Resources",{"dataNavLevelOne":443},"resources",{"type":340,"link":445,"columns":449,"feature":543},{"text":446,"config":447},"View all resources",{"href":448,"dataGaName":443,"dataGaLocation":289},"/resources/",[450,483,510],{"title":451,"items":452},"Getting started",[453,458,463,468,473,478],{"text":454,"config":455},"Install",{"href":456,"dataGaName":457,"dataGaLocation":289},"/install/","install",{"text":459,"config":460},"Quick start guides",{"href":461,"dataGaName":462,"dataGaLocation":289},"/get-started/","quick setup checklists",{"text":464,"config":465},"Learn",{"href":466,"dataGaLocation":289,"dataGaName":467},"https://university.gitlab.com/","learn",{"text":469,"config":470},"Product documentation",{"href":471,"dataGaName":472,"dataGaLocation":289},"https://docs.gitlab.com/","product documentation",{"text":474,"config":475},"Best practice videos",{"href":476,"dataGaName":477,"dataGaLocation":289},"/getting-started-videos/","best practice videos",{"text":479,"config":480},"Integrations",{"href":481,"dataGaName":482,"dataGaLocation":289},"/integrations/","integrations",{"title":484,"items":485},"Discover",[486,491,496,501,505],{"text":487,"config":488},"Customer success stories",{"href":489,"dataGaName":490,"dataGaLocation":289},"/customers/","customer success stories",{"text":492,"config":493},"Blog",{"href":494,"dataGaName":495,"dataGaLocation":289},"/blog/","blog",{"text":497,"config":498},"Demo Hub",{"href":499,"dataGaName":500,"dataGaLocation":289},"/demo-hub/","demo hub",{"text":502,"config":503},"The Source",{"href":504,"dataGaName":495,"dataGaLocation":289},"/the-source/",{"text":506,"config":507},"Remote",{"href":508,"dataGaName":509,"dataGaLocation":289},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":511,"items":512},"Connect",[513,518,523,528,533,538],{"text":514,"config":515},"GitLab Services",{"href":516,"dataGaName":517,"dataGaLocation":289},"/services/","services",{"text":519,"config":520},"Contribute",{"href":521,"dataGaName":522,"dataGaLocation":289},"https://contributors.gitlab.com","contribute",{"text":524,"config":525},"Community",{"href":526,"dataGaName":527,"dataGaLocation":289},"/community/","community",{"text":529,"config":530},"Forum",{"href":531,"dataGaName":532,"dataGaLocation":289},"https://forum.gitlab.com/","forum",{"text":534,"config":535},"Events",{"href":536,"dataGaName":537,"dataGaLocation":289},"/events/","events",{"text":539,"config":540},"Partners",{"href":541,"dataGaName":542,"dataGaLocation":289},"/partners/","partners",{"config":544,"title":547,"text":548,"link":549},{"background":545,"textColor":546},"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":550,"config":551},"Read the latest",{"href":552,"dataGaName":553,"dataGaLocation":289},"/whats-new/","whats new",{"text":555,"config":556,"menu":558},"Company",{"dataNavLevelOne":557},"company",{"type":340,"columns":559},[560],{"items":561},[562,567,573,575,580,585,590,595,600,605],{"text":563,"config":564},"About",{"href":565,"dataGaName":566,"dataGaLocation":289},"/company/","about",{"text":568,"config":569,"footerGa":572},"Jobs",{"href":570,"dataGaName":571,"dataGaLocation":289},"/jobs/","jobs",{"dataGaName":571},{"text":534,"config":574},{"href":536,"dataGaName":537,"dataGaLocation":289},{"text":576,"config":577},"Leadership",{"href":578,"dataGaName":579,"dataGaLocation":289},"/company/team/e-group/","leadership",{"text":581,"config":582},"Handbook",{"href":583,"dataGaName":584,"dataGaLocation":289},"https://handbook.gitlab.com/","handbook",{"text":586,"config":587},"Investor relations",{"href":588,"dataGaName":589,"dataGaLocation":289},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":591,"config":592},"Trust Center",{"href":593,"dataGaName":594,"dataGaLocation":289},"/security/","trust center",{"text":596,"config":597},"AI Transparency Center",{"href":598,"dataGaName":599,"dataGaLocation":289},"/ai-transparency-center/","ai transparency center",{"text":601,"config":602},"Newsletter",{"href":603,"dataGaName":604,"dataGaLocation":289},"/company/contact/#contact-forms","newsletter",{"text":606,"config":607},"Press",{"href":608,"dataGaName":609,"dataGaLocation":289},"/press/","press",{"text":611,"config":612,"menu":613},"Contact us",{"dataNavLevelOne":557},{"type":340,"columns":614},[615],{"items":616},[617,622,627],{"text":618,"config":619},"Talk to sales",{"href":620,"dataGaName":621,"dataGaLocation":289},"/sales/","talk to sales",{"text":623,"config":624},"Support portal",{"href":625,"dataGaName":626,"dataGaLocation":289},"https://support.gitlab.com/hc/en-us","support portal",{"text":628,"config":629},"Customer portal",{"href":630,"dataGaName":631,"dataGaLocation":289},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":633,"login":634,"suggestions":641},"Close",{"text":635,"link":636},"To search repositories and projects, login to",{"text":637,"config":638},"gitlab.com",{"href":303,"dataGaName":639,"dataGaLocation":640},"search login","search",{"text":642,"default":643},"Suggestions",[644,646,650,652,656,660],{"text":320,"config":645},{"href":325,"dataGaName":320,"dataGaLocation":640},{"text":647,"config":648},"Code Suggestions (AI)",{"href":649,"dataGaName":647,"dataGaLocation":640},"/solutions/code-suggestions/",{"text":356,"config":651},{"href":358,"dataGaName":356,"dataGaLocation":640},{"text":653,"config":654},"GitLab on AWS",{"href":655,"dataGaName":653,"dataGaLocation":640},"/partners/technology-partners/aws/",{"text":657,"config":658},"GitLab on Google Cloud",{"href":659,"dataGaName":657,"dataGaLocation":640},"/partners/technology-partners/google-cloud-platform/",{"text":661,"config":662},"Why GitLab?",{"href":333,"dataGaName":661,"dataGaLocation":640},{"freeTrial":664,"mobileIcon":669,"desktopIcon":674,"secondaryButton":677},{"text":665,"config":666},"Start free trial",{"href":667,"dataGaName":294,"dataGaLocation":668},"https://gitlab.com/-/trials/new/","nav",{"altText":670,"config":671},"Gitlab Icon",{"src":672,"dataGaName":673,"dataGaLocation":668},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":670,"config":675},{"src":676,"dataGaName":673,"dataGaLocation":668},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":678,"config":679},"Get Started",{"href":680,"dataGaName":681,"dataGaLocation":668},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":683,"mobileIcon":687,"desktopIcon":689},{"text":684,"config":685},"Learn more about GitLab Duo",{"href":325,"dataGaName":686,"dataGaLocation":668},"gitlab duo",{"altText":670,"config":688},{"src":672,"dataGaName":673,"dataGaLocation":668},{"altText":670,"config":690},{"src":676,"dataGaName":673,"dataGaLocation":668},{"button":692,"mobileIcon":697,"desktopIcon":699},{"text":693,"config":694},"/switch",{"href":695,"dataGaName":696,"dataGaLocation":668},"#contact","switch",{"altText":670,"config":698},{"src":672,"dataGaName":673,"dataGaLocation":668},{"altText":670,"config":700},{"src":701,"dataGaName":673,"dataGaLocation":668},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":703,"mobileIcon":708,"desktopIcon":710},{"text":704,"config":705},"Back to pricing",{"href":438,"dataGaName":706,"dataGaLocation":668,"icon":707},"back to pricing","GoBack",{"altText":670,"config":709},{"src":672,"dataGaName":673,"dataGaLocation":668},{"altText":670,"config":711},{"src":676,"dataGaName":673,"dataGaLocation":668},{"title":713,"titleMobile":714,"button":715,"config":720},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":331,"config":716},{"href":717,"dataGaName":718,"dataGaLocation":719},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":721,"disabled":267},"release",{"data":723},{"text":724,"source":725,"edit":731,"contribute":736,"config":741,"items":746,"minimal":955},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":726,"config":727},"View page source",{"href":728,"dataGaName":729,"dataGaLocation":730},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":732,"config":733},"Edit this page",{"href":734,"dataGaName":735,"dataGaLocation":730},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":737,"config":738},"Please contribute",{"href":739,"dataGaName":740,"dataGaLocation":730},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":742,"facebook":743,"youtube":744,"linkedin":745},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[747,794,847,891,923],{"title":436,"links":748,"subMenu":763},[749,753,758],{"text":750,"config":751},"View plans",{"href":438,"dataGaName":752,"dataGaLocation":730},"view plans",{"text":754,"config":755},"Why Premium?",{"href":756,"dataGaName":757,"dataGaLocation":730},"/pricing/premium/","why premium",{"text":759,"config":760},"Why Ultimate?",{"href":761,"dataGaName":762,"dataGaLocation":730},"/pricing/ultimate/","why ultimate",[764],{"title":765,"links":766},"Contact Us",[767,770,772,774,779,784,789],{"text":768,"config":769},"Contact sales",{"href":620,"dataGaName":299,"dataGaLocation":730},{"text":623,"config":771},{"href":625,"dataGaName":626,"dataGaLocation":730},{"text":628,"config":773},{"href":630,"dataGaName":631,"dataGaLocation":730},{"text":775,"config":776},"Status",{"href":777,"dataGaName":778,"dataGaLocation":730},"https://status.gitlab.com/","status",{"text":780,"config":781},"Terms of use",{"href":782,"dataGaName":783,"dataGaLocation":730},"/terms/","terms of use",{"text":785,"config":786},"Privacy statement",{"href":787,"dataGaName":788,"dataGaLocation":730},"/privacy/","privacy statement",{"text":790,"config":791},"Cookie preferences",{"dataGaName":792,"dataGaLocation":730,"id":793,"isOneTrustButton":270},"cookie preferences","ot-sdk-btn",{"title":336,"links":795,"subMenu":804},[796,800],{"text":797,"config":798},"DevSecOps platform",{"href":318,"dataGaName":799,"dataGaLocation":730},"devsecops platform",{"text":801,"config":802},"AI-Assisted Development",{"href":325,"dataGaName":803,"dataGaLocation":730},"ai-assisted development",[805],{"title":806,"links":807},"Topics",[808,813,818,822,827,832,837,842],{"text":809,"config":810},"CICD",{"href":811,"dataGaName":812,"dataGaLocation":730},"/topics/ci-cd/","cicd",{"text":814,"config":815},"GitOps",{"href":816,"dataGaName":817,"dataGaLocation":730},"/topics/gitops/","gitops",{"text":279,"config":819},{"href":820,"dataGaName":821,"dataGaLocation":730},"/topics/devops/","devops",{"text":823,"config":824},"Version Control",{"href":825,"dataGaName":826,"dataGaLocation":730},"/topics/version-control/","version control",{"text":828,"config":829},"DevSecOps",{"href":830,"dataGaName":831,"dataGaLocation":730},"/topics/devsecops/","devsecops",{"text":833,"config":834},"Cloud Native",{"href":835,"dataGaName":836,"dataGaLocation":730},"/topics/cloud-native/","cloud native",{"text":838,"config":839},"AI for Coding",{"href":840,"dataGaName":841,"dataGaLocation":730},"/topics/devops/ai-for-coding/","ai for coding",{"text":843,"config":844},"Agentic AI",{"href":845,"dataGaName":846,"dataGaLocation":730},"/topics/agentic-ai/","agentic ai",{"title":848,"links":849},"Solutions",[850,852,854,859,863,866,870,873,875,878,881,886],{"text":380,"config":851},{"href":375,"dataGaName":380,"dataGaLocation":730},{"text":369,"config":853},{"href":352,"dataGaName":353,"dataGaLocation":730},{"text":855,"config":856},"Agile development",{"href":857,"dataGaName":858,"dataGaLocation":730},"/solutions/agile-delivery/","agile delivery",{"text":860,"config":861},"SCM",{"href":365,"dataGaName":862,"dataGaLocation":730},"source code management",{"text":809,"config":864},{"href":358,"dataGaName":865,"dataGaLocation":730},"continuous integration & delivery",{"text":867,"config":868},"Value stream management",{"href":408,"dataGaName":869,"dataGaLocation":730},"value stream management",{"text":814,"config":871},{"href":872,"dataGaName":817,"dataGaLocation":730},"/solutions/gitops/",{"text":418,"config":874},{"href":421,"dataGaName":422,"dataGaLocation":730},{"text":876,"config":877},"Small business",{"href":427,"dataGaName":428,"dataGaLocation":730},{"text":879,"config":880},"Public sector",{"href":433,"dataGaName":434,"dataGaLocation":730},{"text":882,"config":883},"Education",{"href":884,"dataGaName":885,"dataGaLocation":730},"/solutions/education/","education",{"text":887,"config":888},"Financial services",{"href":889,"dataGaName":890,"dataGaLocation":730},"/solutions/finance/","financial services",{"title":441,"links":892},[893,895,897,899,902,904,907,909,911,913,915,917,919,921],{"text":454,"config":894},{"href":456,"dataGaName":457,"dataGaLocation":730},{"text":459,"config":896},{"href":461,"dataGaName":462,"dataGaLocation":730},{"text":464,"config":898},{"href":466,"dataGaName":467,"dataGaLocation":730},{"text":469,"config":900},{"href":471,"dataGaName":901,"dataGaLocation":730},"docs",{"text":492,"config":903},{"href":494,"dataGaName":495,"dataGaLocation":730},{"text":905,"config":906},"What's new",{"href":552,"dataGaName":553,"dataGaLocation":730},{"text":487,"config":908},{"href":489,"dataGaName":490,"dataGaLocation":730},{"text":506,"config":910},{"href":508,"dataGaName":509,"dataGaLocation":730},{"text":514,"config":912},{"href":516,"dataGaName":517,"dataGaLocation":730},{"text":519,"config":914},{"href":521,"dataGaName":522,"dataGaLocation":730},{"text":524,"config":916},{"href":526,"dataGaName":527,"dataGaLocation":730},{"text":529,"config":918},{"href":531,"dataGaName":532,"dataGaLocation":730},{"text":534,"config":920},{"href":536,"dataGaName":537,"dataGaLocation":730},{"text":539,"config":922},{"href":541,"dataGaName":542,"dataGaLocation":730},{"title":555,"links":924},[925,927,929,931,933,935,939,944,946,948,950],{"text":563,"config":926},{"href":565,"dataGaName":557,"dataGaLocation":730},{"text":568,"config":928},{"href":570,"dataGaName":571,"dataGaLocation":730},{"text":576,"config":930},{"href":578,"dataGaName":579,"dataGaLocation":730},{"text":581,"config":932},{"href":583,"dataGaName":584,"dataGaLocation":730},{"text":586,"config":934},{"href":588,"dataGaName":589,"dataGaLocation":730},{"text":936,"config":937},"Sustainability",{"href":938,"dataGaName":936,"dataGaLocation":730},"/sustainability/",{"text":940,"config":941},"Diversity, inclusion and belonging (DIB)",{"href":942,"dataGaName":943,"dataGaLocation":730},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":591,"config":945},{"href":593,"dataGaName":594,"dataGaLocation":730},{"text":601,"config":947},{"href":603,"dataGaName":604,"dataGaLocation":730},{"text":606,"config":949},{"href":608,"dataGaName":609,"dataGaLocation":730},{"text":951,"config":952},"Modern Slavery Transparency Statement",{"href":953,"dataGaName":954,"dataGaLocation":730},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":956},[957,960,963],{"text":958,"config":959},"Terms",{"href":782,"dataGaName":783,"dataGaLocation":730},{"text":961,"config":962},"Cookies",{"dataGaName":792,"dataGaLocation":730,"id":793,"isOneTrustButton":270},{"text":964,"config":965},"Privacy",{"href":787,"dataGaName":788,"dataGaLocation":730},[967],{"id":968,"title":7,"body":266,"config":969,"content":971,"description":266,"extension":974,"meta":975,"navigation":270,"path":976,"seo":977,"stem":978,"__hash__":979},"blogAuthors/en-us/blog/authors/sara-kassabian.yml",{"template":970},"BlogAuthor",{"name":7,"config":972},{"headshot":252,"ctfId":973},"skassabian","yml",{},"/en-us/blog/authors/sara-kassabian",{},"en-us/blog/authors/sara-kassabian","6cCCPpjzkCDfb77tMVCyG8_FImRVQXA2VCMyiAjhFX0",[981,990,998],{"title":982,"description":983,"heroImage":984,"category":262,"date":985,"authors":986,"slug":989,"externalUrl":266},"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",[987,988],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":991,"description":992,"heroImage":993,"category":262,"date":994,"authors":995,"slug":997,"externalUrl":266},"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",[996],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":999,"description":1000,"heroImage":1001,"category":262,"date":1002,"authors":1003,"slug":1005,"externalUrl":266},"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",[1004],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":1007},[1008,1022,1034,1046],{"id":1009,"categories":1010,"header":1012,"text":1013,"button":1014,"image":1019},"ai-modernization",[1011],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1015,"config":1016},"Get your AI maturity score",{"href":1017,"dataGaName":1018,"dataGaLocation":495},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1020},{"src":1021},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1023,"categories":1024,"header":1026,"text":1013,"button":1027,"image":1031},"devops-modernization",[1025,831],"product","Are you just managing tools or shipping innovation?",{"text":1028,"config":1029},"Get your DevOps maturity score",{"href":1030,"dataGaName":1018,"dataGaLocation":495},"/assessments/devops-modernization-assessment/",{"config":1032},{"src":1033},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1035,"categories":1036,"header":1038,"text":1013,"button":1039,"image":1043},"security-modernization",[1037],"security","Are you trading speed for security?",{"text":1040,"config":1041},"Get your security maturity score",{"href":1042,"dataGaName":1018,"dataGaLocation":495},"/assessments/security-modernization-assessment/",{"config":1044},{"src":1045},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1047,"paths":1048,"header":1051,"text":1052,"button":1053,"image":1058},"github-azure-migration",[1049,1050],"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":1054,"config":1055},"See how GitLab compares to GitHub",{"href":1056,"dataGaName":1057,"dataGaLocation":495},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1059},{"src":1033},{"header":1061,"blurb":1062,"button":1063,"secondaryButton":1068},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1064,"config":1065},"Get your free trial",{"href":1066,"dataGaName":294,"dataGaLocation":1067},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":768,"config":1069},{"href":620,"dataGaName":299,"dataGaLocation":1067},1786803734279]