[{"data":1,"prerenderedAt":1296},["ShallowReactive",2],{"/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab":3,"navigation-en-us":509,"banner-en-us":937,"footer-en-us":947,"blog-post-authors-en-us-David Russell":1192,"blog-related-posts-en-us-gitpitch-slideshow-presentations-for-developers-on-gitlab":1207,"blog-promotions-en-us":1232,"next-steps-en-us":1286},{"id":4,"title":5,"authors":6,"body":8,"category":482,"date":483,"description":484,"extension":485,"externalUrl":486,"faq":486,"featured":487,"heroImage":488,"meta":489,"navigation":499,"path":500,"seo":501,"slug":505,"stem":506,"tags":486,"template":507,"updatedDate":486,"__hash__":508},"blogPosts/en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab.md","GitPitch Slideshow Presentations for Developers on GitLab",[7],"David Russell",{"type":9,"value":10,"toc":468},"minimark",[11,27,30,33,40,45,57,63,73,99,103,106,113,125,131,134,160,172,178,181,227,231,240,246,267,310,314,323,329,338,344,348,353,356,367,370,376,379,392,396,404,424,442,446,464],[12,13,14,15,21,22,26],"p",{},"Today I would like to introduce ",[16,17,20],"a",{"href":18,"rel":19},"https://gitpitch.com",[],"GitPitch",", a slideshow presentation service for developers on ",[16,23,25],{"href":24},"","GitLab",".\nGitPitch supports building, sharing, and presenting online and offline slideshow presentations. Presentations powered entirely by Markdown and Git.",[12,28,29],{},"As developers and advocates, we often need to communicate with diverse audiences about our code.\nWe find ourselves needing to present everything from designs and best practices, to code snippets and complete frameworks.\nOur audiences include colleagues, clients, customers, end-users, and sometimes meetups and conferences.",[12,31,32],{},"With GitPitch, we no longer need to turn to external toolsets like Keynote or Powerpoint to prepare for these kinds of presentations.\nIn fact, now the only tools we need are the tools we live in, our preferred code editor and a GitLab repo.\nAnd with these tools we can quickly create compelling, responsive, online and offline slideshow presentations.",[12,34,35],{},[36,37],"img",{"alt":38,"src":39},"Slideshow-Master","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398446/blog/Content%20Images/gitpitch-slideshow-presentations-for-developers-on-gitlab/slideshow-master.jpg",[41,42,44],"h2",{"id":43},"how-gitpitch-works","How GitPitch Works",[12,46,47,48,52,53,56],{},"As GitLab users, we are already familiar with the convention of adding a ",[49,50,51],"strong",{},"README.md"," to our projects.\nGitPitch introduces a new convention for GitLab users, called ",[49,54,55],{},"PITCHME.md",".",[12,58,59,60,62],{},"As soon as we add a ",[49,61,55],{}," markdown file to the root directory of our GitLab.com project, GitPitch instantly creates an online slideshow presentation based on the content in that file.\nThat slideshow presentation is then automatically made available at its public URL:",[64,65,70],"pre",{"className":66,"code":68,"language":69,"meta":24},[67],"language-text","https://gitpitch.com/user/project/branch?grs=gitlab\n","text",[71,72,68],"code",{"__ignoreMap":24},[12,74,75,76,79,80,83,84,87,88,90,91,94,95,98],{},"Here ",[71,77,78],{},"user"," and ",[71,81,82],{},"project"," matches our GitLab.com user and project names respectively and ",[71,85,86],{},"branch"," matches the repository branch where we committed our ",[49,89,55],{}," file.\nNote, the ",[71,92,93],{},"/branch"," can be omitted from the slideshow URL if we are referencing the ",[71,96,97],{},"master"," branch.",[41,100,102],{"id":101},"gitpitch-in-60-seconds","GitPitch In 60 Seconds",[12,104,105],{},"To experience just how simple it is to create a GitPitch slideshow presentation follow along with this short tutorial.",[107,108,110,111],"h3",{"id":109},"step-1-create-pitchmemd","Step 1: Create ",[49,112,55],{},[12,114,115,116,121,122,124],{},"Using the ",[16,117,120],{"href":118,"rel":119},"https://gitlab.com/help/user/project/repository/web_editor.md",[],"GitLab web editor",", or your preferred code editor, create a file called ",[49,123,55],{}," in the root directory of your repo, then add and save the following Markdown content:",[64,126,129],{"className":127,"code":128,"language":69,"meta":24},[67],"# Flux\n\nAn application architecture for React\n\n#HSLIDE\n\n### Flux Design\n\n- Dispatcher: Manages Data Flow\n- Stores: Handle State & Logic\n- Views: Render Data via React\n\n#HSLIDE\n\n![Flux Explained](https://facebook.github.io/flux/img/flux-simple-f8-diagram-explained-1300w.png)\n",[71,130,128],{"__ignoreMap":24},[12,132,133],{},"Before moving on to the next step it's worthwhile to note the following:",[135,136,137,144,154],"ol",{},[138,139,140,141,143],"li",{},"The ",[49,142,55],{}," file name is case sensitive.",[138,145,140,146,148,149,56],{},[49,147,55],{}," file content is ",[16,150,153],{"href":151,"rel":152},"https://daringfireball.net/projects/markdown/syntax",[],"standard Markdown",[138,155,140,156,159],{},[71,157,158],{},"#HSLIDE"," markdown fragment acts as a delimiter between slides.",[12,161,162,163,165,166,171],{},"Using ",[71,164,158],{}," is another GitPitch convention, acting as a delimiter to denote the separation between content on different slides in your presentation.\nYou can use ",[16,167,170],{"href":168,"rel":169},"https://github.com/gitpitch/gitpitch/wiki/Custom-Slide-Delimiters",[],"custom delimiters"," if you prefer.\nFor this example, when GitPitch processes the Markdown content it will result in a simple presentation with just three slides.",[107,173,175,176],{"id":174},"step-2-commit-pitchmemd","Step 2: Commit ",[49,177,55],{},[12,179,180],{},"If you used the GitLab web editor in step 1 then go directly to step 3.\nOtherwise, manually add this file to the root directory of your Git repo and push to GitLab:",[64,182,186],{"className":183,"code":184,"language":185,"meta":24,"style":24},"language-shell shiki shiki-themes github-light","git add PITCHME.md\ngit commit -m \"Added my first GitPitch slideshow content.\"\ngit push\n","shell",[71,187,188,204,219],{"__ignoreMap":24},[189,190,193,197,201],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"s7eDp","git",[189,198,200],{"class":199},"sYBdl"," add",[189,202,203],{"class":199}," PITCHME.md\n",[189,205,207,209,212,216],{"class":191,"line":206},2,[189,208,196],{"class":195},[189,210,211],{"class":199}," commit",[189,213,215],{"class":214},"sYu0t"," -m",[189,217,218],{"class":199}," \"Added my first GitPitch slideshow content.\"\n",[189,220,222,224],{"class":191,"line":221},3,[189,223,196],{"class":195},[189,225,226],{"class":199}," push\n",[107,228,230],{"id":229},"step-3-done","Step 3: Done!",[12,232,233,234,239],{},"Your GitPitch slideshow presentation is now waiting for you to share or present at its public URL.\nTo see a live demonstration of this slideshow presentation ",[16,235,238],{"href":236,"rel":237},"https://gitpitch.com/gitpitch/in-60-seconds?grs=gitlab",[],"click here",".\nYour own presentation should look a lot like this:",[12,241,242],{},[36,243],{"alt":244,"src":245},"Slideshow-In-60-Seconds","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398446/blog/Content%20Images/gitpitch-slideshow-presentations-for-developers-on-gitlab/slideshow-in-60-seconds.jpg",[12,247,248,249,254,255,260,261,266],{},"Immediately you can ",[16,250,253],{"href":251,"rel":252},"https://github.com/gitpitch/gitpitch/wiki/Slideshow-Offline",[],"download"," your slideshow for offline presentation, ",[16,256,259],{"href":257,"rel":258},"https://github.com/gitpitch/gitpitch/wiki/Slideshow-Printing",[],"print"," it as a PDF document, or ",[16,262,265],{"href":263,"rel":264},"https://github.com/gitpitch/gitpitch/wiki/Slideshow-Sharing",[],"share"," it on social media.\nBut first, you might want to apply some personal touches using GitPitch customization, the topic we'll look at next.",[12,268,269,270,275,276,275,281,286,287,292,293,298,299,304,305,56],{},"Note that beyond support for standard Markdown on presentation slides, GitPitch delivers a number of features tailored for developers, including support for ",[16,271,274],{"href":272,"rel":273},"https://github.com/gitpitch/gitpitch/wiki/Code-Slides",[],"code blocks",", ",[16,277,280],{"href":278,"rel":279},"https://github.com/gitpitch/gitpitch/wiki/GIST-Slides",[],"GitHub GIST",[16,282,285],{"href":283,"rel":284},"https://github.com/gitpitch/gitpitch/wiki/Math-Notation-Slides",[],"math formulas"," along with ",[16,288,291],{"href":289,"rel":290},"https://github.com/gitpitch/gitpitch/wiki/Image-Slides",[],"image",", and ",[16,294,297],{"href":295,"rel":296},"https://github.com/gitpitch/gitpitch/wiki/Video-Slides",[],"video"," support.\nThe full set of GitPitch features are documented on the ",[16,300,303],{"href":301,"rel":302},"https://github.com/gitpitch/gitpitch/wiki",[],"GitPitch Wiki",".\nTo see a live slideshow demonstration of these features try out the GitPitch ",[16,306,309],{"href":307,"rel":308},"https://gitpitch.com/gitpitch/kitchen-sink?grs=gitlab",[],"Kitchen Sink",[41,311,313],{"id":312},"gitpitch-customization","GitPitch Customization",[12,315,316,317,322],{},"As with any presentation, a GitPitch presentation not only needs to capture and render compelling content, it also needs to be able to reflect the style, image or brand of the associated project, product or organization.\nTo help us develop a strong visual identity for our slideshow presentations, GitPitch offers six distinct visual themes out-of-the-box.\nSee the ",[16,318,321],{"href":319,"rel":320},"https://github.com/gitpitch/gitpitch/wiki/Theme-Setting",[],"GitPitch Themes"," Wiki page to learn more.",[12,324,325],{},[36,326],{"alt":327,"src":328},"Slideshow-Night-Theme","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398446/blog/Content%20Images/gitpitch-slideshow-presentations-for-developers-on-gitlab/slideshow-night-theme.jpg",[12,330,331,332,337],{},"Building on these base themes we can further ",[16,333,336],{"href":334,"rel":335},"https://github.com/gitpitch/gitpitch/wiki/Slideshow-Settings",[],"customize the look and feel"," of our slideshow presentations using background images, our own logo, and even custom CSS to bend the pixels to our needs.",[12,339,340],{},[36,341],{"alt":342,"src":343},"Slideshow-Custom-Bg","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398445/blog/Content%20Images/gitpitch-slideshow-presentations-for-developers-on-gitlab/slideshow-custom-bg.jpg",[41,345,347],{"id":346},"gitpitch-and-gitlab-workflow","GitPitch and GitLab Workflow",[12,349,140,350,352],{},[49,351,55],{}," markdown for our slideshow presentation becomes just another file in our GitLab project repo.\nTherefore all of the benefits we currently enjoy when working with GitLab Workflow apply equally when developing our slideshow presentations.",[12,354,355],{},"Given GitPitch can render a slideshow presentation for any branch within a public GitLab repo, using feature branches also offers an excellent way to customize a presentation's content for different target audiences. For example:",[135,357,358,361,364],{},[138,359,360],{},"Branch to tailor code snippets for a Scala rather than Java audience.",[138,362,363],{},"Branch to adjust the presentation focus for a dev-ops audience.",[138,365,366],{},"Branch to emphasize participation of a partner or customer for a specific conference.",[12,368,369],{},"Some common, in-person workflows are also greatly improved when working with GitPitch presentations.\nFor example, how often have you heard this simple request following a successful presentation:",[371,372,373],"blockquote",{},[12,374,375],{},"Can you please send me your slides?",[12,377,378],{},"If our presentation lives outside of our GitLab project it is very easy to misplace or forget to follow up.\nWith GitPitch, a simple answer is always at hand:",[371,380,381],{},[12,382,383,384,389,390,56],{},"The slideshow presentation is part of the project on GitLab, just click on the ",[16,385,388],{"href":386,"rel":387},"https://github.com/gitpitch/gitpitch/wiki/Slideshow-GitHub-Badge",[],"GitPitch Badge"," found in the project ",[49,391,51],{},[41,393,395],{"id":394},"going-faster-from-idea-to-presentation","Going Faster from Idea to Presentation",[12,397,398,399,403],{},"GitLab champions new, modern development tools and practices that foster collaboration and information sharing to help developers go ",[16,400,402],{"href":401},"/blog/announcing-the-gitlab-issue-board/#gitlab-from-idea-to-production","faster from idea to production",".\nGitPitch embraces and extends this approach by helping individuals, teams and organizations to promote, pitch and present their ideas and code to ever wider audiences.",[12,405,406,407,411,412,417,418,423],{},"Note, by default the GitPitch service on ",[16,408,410],{"href":18,"rel":409},[],"GitPitch.com"," integrates with ",[16,413,416],{"href":414,"rel":415},"https://gitlab.com",[],"GitLab.com",".\nIf you are interested in using GitPitch with your own GitLab server see ",[16,419,422],{"href":420,"rel":421},"https://github.com/gitpitch/gitpitch/wiki/Git-Repo-Services",[],"this note"," on the GitPitch Wiki.",[12,425,426,427,432,433,438,439,441],{},"Like GitLab, GitPitch itself is an ",[16,428,431],{"href":429,"rel":430},"https://gitlab.com/gitpitch/gitpitch",[],"open source project",", built on some wonderful open source software.\nSee the ",[16,434,437],{"href":435,"rel":436},"https://gitpitch.com/#gitpitch-about",[],"GitPitch website"," for details. And remember, getting started couldn't be easier.\nGitPitch requires no sign-up. And no configuration. Just add ",[49,440,55],{}," ;)",[41,443,445],{"id":444},"about-guest-author","About Guest Author",[12,447,448,449,454,455,458,459,56],{},"David Russell is a freelance developer, consultant for-hire, ",[16,450,453],{"href":451,"rel":452},"https://github.com/onetapbeyond",[],"open source contributor"," and the creator of ",[16,456,20],{"href":18,"rel":457},[],".\nYou can reach David on Twitter ",[16,460,463],{"href":461,"rel":462},"https://twitter.com/gitpitch",[],"@gitpitch",[465,466,467],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":24,"searchDepth":206,"depth":206,"links":469},[470,471,478,479,480,481],{"id":43,"depth":206,"text":44},{"id":101,"depth":206,"text":102,"children":472},[473,475,477],{"id":109,"depth":221,"text":474},"Step 1: Create PITCHME.md",{"id":174,"depth":221,"text":476},"Step 2: Commit PITCHME.md",{"id":229,"depth":221,"text":230},{"id":312,"depth":206,"text":313},{"id":346,"depth":206,"text":347},{"id":394,"depth":206,"text":395},{"id":444,"depth":206,"text":445},"open-source","2016-10-03","Learn how PITCHME.md can help you present your ideas and code to any audience.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684126/Blog/Hero%20Images/cover.png",{"excerpt":490},{"type":9,"value":491},[492],[12,493,14,494,21,497,26],{},[16,495,20],{"href":18,"rel":496},[],[16,498,25],{"href":24},true,"/en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab",{"title":5,"description":484,"ogTitle":5,"ogDescription":484,"noIndex":487,"ogImage":488,"ogUrl":502,"ogSiteName":503,"ogType":504,"canonicalUrls":502},"https://about.gitlab.com/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab","https://about.gitlab.com","article","gitpitch-slideshow-presentations-for-developers-on-gitlab","en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab","BlogPost","kvwGHIpOgqp4Ra-2udi4bYG-moVWfvOChAbA8MF-xAY",{"logo":510,"freeTrial":515,"sales":520,"login":525,"items":530,"search":857,"minimal":888,"duo":907,"switchNav":916,"pricingDeployment":927},{"config":511},{"href":512,"dataGaName":513,"dataGaLocation":514},"/","gitlab logo","header",{"text":516,"config":517},"Get free trial",{"href":518,"dataGaName":519,"dataGaLocation":514},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":521,"config":522},"Request a demo",{"href":523,"dataGaName":524,"dataGaLocation":514},"/sales/?contact-topic=request-demo","sales",{"text":526,"config":527},"Sign in",{"href":528,"dataGaName":529,"dataGaLocation":514},"https://gitlab.com/users/sign_in/","sign in",[531,560,660,665,779,835],{"text":532,"config":533,"menu":535},"Platform",{"dataNavLevelOne":534},"platform",{"type":536,"columns":537},"cards",[538,544,552],{"title":532,"description":539,"link":540},"The intelligent orchestration platform for DevSecOps",{"text":541,"config":542},"Explore our Platform",{"href":543,"dataGaName":534,"dataGaLocation":514},"/platform/",{"title":545,"description":546,"link":547},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":548,"config":549},"Meet GitLab Duo",{"href":550,"dataGaName":551,"dataGaLocation":514},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":553,"description":554,"link":555},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":556,"config":557},"Learn more",{"href":558,"dataGaName":559,"dataGaLocation":514},"/why-gitlab/","why gitlab",{"text":561,"left":499,"config":562,"menu":564},"Product",{"dataNavLevelOne":563},"solutions",{"type":565,"link":566,"columns":570,"feature":639},"lists",{"text":567,"config":568},"View all Solutions",{"href":569,"dataGaName":563,"dataGaLocation":514},"/solutions/",[571,595,618],{"title":572,"description":573,"link":574,"items":579},"Automation","CI/CD and automation to accelerate deployment",{"config":575},{"icon":576,"href":577,"dataGaName":578,"dataGaLocation":514},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[580,584,587,591],{"text":581,"config":582},"CI/CD",{"href":583,"dataGaLocation":514,"dataGaName":581},"/solutions/continuous-integration/",{"text":545,"config":585},{"href":550,"dataGaLocation":514,"dataGaName":586},"gitlab duo agent platform - product menu",{"text":588,"config":589},"Source Code Management",{"href":590,"dataGaLocation":514,"dataGaName":588},"/solutions/source-code-management/",{"text":592,"config":593},"Automated Software Delivery",{"href":577,"dataGaLocation":514,"dataGaName":594},"Automated software delivery",{"title":596,"description":597,"link":598,"items":603},"Security","Deliver code faster without compromising security",{"config":599},{"href":600,"dataGaName":601,"dataGaLocation":514,"icon":602},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[604,608,613],{"text":605,"config":606},"Application Security Testing",{"href":600,"dataGaName":607,"dataGaLocation":514},"Application security testing",{"text":609,"config":610},"Software Supply Chain Security",{"href":611,"dataGaLocation":514,"dataGaName":612},"/solutions/supply-chain/","Software supply chain security",{"text":614,"config":615},"Software Compliance",{"href":616,"dataGaName":617,"dataGaLocation":514},"/solutions/software-compliance/","software compliance",{"title":619,"link":620,"items":625},"Measurement",{"config":621},{"icon":622,"href":623,"dataGaName":624,"dataGaLocation":514},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[626,630,634],{"text":627,"config":628},"Visibility & Measurement",{"href":623,"dataGaLocation":514,"dataGaName":629},"Visibility and Measurement",{"text":631,"config":632},"Value Stream Management",{"href":633,"dataGaLocation":514,"dataGaName":631},"/solutions/value-stream-management/",{"text":635,"config":636},"Analytics & Insights",{"href":637,"dataGaLocation":514,"dataGaName":638},"/solutions/analytics-and-insights/","Analytics and insights",{"title":640,"type":565,"items":641},"GitLab for",[642,648,654],{"text":643,"config":644},"Enterprise",{"icon":645,"href":646,"dataGaLocation":514,"dataGaName":647},"Building","/enterprise/","enterprise",{"text":649,"config":650},"Small Business",{"icon":651,"href":652,"dataGaLocation":514,"dataGaName":653},"Work","/small-business/","small business",{"text":655,"config":656},"Public Sector",{"icon":657,"href":658,"dataGaLocation":514,"dataGaName":659},"Organization","/solutions/public-sector/","public sector",{"text":661,"config":662},"Pricing",{"href":663,"dataGaName":664,"dataGaLocation":514,"dataNavLevelOne":664},"/pricing/","pricing",{"text":666,"config":667,"menu":669},"Resources",{"dataNavLevelOne":668},"resources",{"type":565,"link":670,"columns":674,"feature":768},{"text":671,"config":672},"View all resources",{"href":673,"dataGaName":668,"dataGaLocation":514},"/resources/",[675,708,735],{"title":676,"items":677},"Getting started",[678,683,688,693,698,703],{"text":679,"config":680},"Install",{"href":681,"dataGaName":682,"dataGaLocation":514},"/install/","install",{"text":684,"config":685},"Quick start guides",{"href":686,"dataGaName":687,"dataGaLocation":514},"/get-started/","quick setup checklists",{"text":689,"config":690},"Learn",{"href":691,"dataGaLocation":514,"dataGaName":692},"https://university.gitlab.com/","learn",{"text":694,"config":695},"Product documentation",{"href":696,"dataGaName":697,"dataGaLocation":514},"https://docs.gitlab.com/","product documentation",{"text":699,"config":700},"Best practice videos",{"href":701,"dataGaName":702,"dataGaLocation":514},"/getting-started-videos/","best practice videos",{"text":704,"config":705},"Integrations",{"href":706,"dataGaName":707,"dataGaLocation":514},"/integrations/","integrations",{"title":709,"items":710},"Discover",[711,716,721,726,730],{"text":712,"config":713},"Customer success stories",{"href":714,"dataGaName":715,"dataGaLocation":514},"/customers/","customer success stories",{"text":717,"config":718},"Blog",{"href":719,"dataGaName":720,"dataGaLocation":514},"/blog/","blog",{"text":722,"config":723},"Demo Hub",{"href":724,"dataGaName":725,"dataGaLocation":514},"/demo-hub/","demo hub",{"text":727,"config":728},"The Source",{"href":729,"dataGaName":720,"dataGaLocation":514},"/the-source/",{"text":731,"config":732},"Remote",{"href":733,"dataGaName":734,"dataGaLocation":514},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":736,"items":737},"Connect",[738,743,748,753,758,763],{"text":739,"config":740},"GitLab Services",{"href":741,"dataGaName":742,"dataGaLocation":514},"/services/","services",{"text":744,"config":745},"Contribute",{"href":746,"dataGaName":747,"dataGaLocation":514},"https://contributors.gitlab.com","contribute",{"text":749,"config":750},"Community",{"href":751,"dataGaName":752,"dataGaLocation":514},"/community/","community",{"text":754,"config":755},"Forum",{"href":756,"dataGaName":757,"dataGaLocation":514},"https://forum.gitlab.com/","forum",{"text":759,"config":760},"Events",{"href":761,"dataGaName":762,"dataGaLocation":514},"/events/","events",{"text":764,"config":765},"Partners",{"href":766,"dataGaName":767,"dataGaLocation":514},"/partners/","partners",{"config":769,"title":772,"text":773,"link":774},{"background":770,"textColor":771},"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":775,"config":776},"Read the latest",{"href":777,"dataGaName":778,"dataGaLocation":514},"/whats-new/","whats new",{"text":780,"config":781,"menu":783},"Company",{"dataNavLevelOne":782},"company",{"type":565,"columns":784},[785],{"items":786},[787,792,798,800,805,810,815,820,825,830],{"text":788,"config":789},"About",{"href":790,"dataGaName":791,"dataGaLocation":514},"/company/","about",{"text":793,"config":794,"footerGa":797},"Jobs",{"href":795,"dataGaName":796,"dataGaLocation":514},"/jobs/","jobs",{"dataGaName":796},{"text":759,"config":799},{"href":761,"dataGaName":762,"dataGaLocation":514},{"text":801,"config":802},"Leadership",{"href":803,"dataGaName":804,"dataGaLocation":514},"/company/team/e-group/","leadership",{"text":806,"config":807},"Handbook",{"href":808,"dataGaName":809,"dataGaLocation":514},"https://handbook.gitlab.com/","handbook",{"text":811,"config":812},"Investor relations",{"href":813,"dataGaName":814,"dataGaLocation":514},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":816,"config":817},"Trust Center",{"href":818,"dataGaName":819,"dataGaLocation":514},"/security/","trust center",{"text":821,"config":822},"AI Transparency Center",{"href":823,"dataGaName":824,"dataGaLocation":514},"/ai-transparency-center/","ai transparency center",{"text":826,"config":827},"Newsletter",{"href":828,"dataGaName":829,"dataGaLocation":514},"/company/contact/#contact-forms","newsletter",{"text":831,"config":832},"Press",{"href":833,"dataGaName":834,"dataGaLocation":514},"/press/","press",{"text":836,"config":837,"menu":838},"Contact us",{"dataNavLevelOne":782},{"type":565,"columns":839},[840],{"items":841},[842,847,852],{"text":843,"config":844},"Talk to sales",{"href":845,"dataGaName":846,"dataGaLocation":514},"/sales/","talk to sales",{"text":848,"config":849},"Support portal",{"href":850,"dataGaName":851,"dataGaLocation":514},"https://support.gitlab.com/hc/en-us","support portal",{"text":853,"config":854},"Customer portal",{"href":855,"dataGaName":856,"dataGaLocation":514},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":858,"login":859,"suggestions":866},"Close",{"text":860,"link":861},"To search repositories and projects, login to",{"text":862,"config":863},"gitlab.com",{"href":528,"dataGaName":864,"dataGaLocation":865},"search login","search",{"text":867,"default":868},"Suggestions",[869,871,875,877,881,885],{"text":545,"config":870},{"href":550,"dataGaName":545,"dataGaLocation":865},{"text":872,"config":873},"Code Suggestions (AI)",{"href":874,"dataGaName":872,"dataGaLocation":865},"/solutions/code-suggestions/",{"text":581,"config":876},{"href":583,"dataGaName":581,"dataGaLocation":865},{"text":878,"config":879},"GitLab on AWS",{"href":880,"dataGaName":878,"dataGaLocation":865},"/partners/technology-partners/aws/",{"text":882,"config":883},"GitLab on Google Cloud",{"href":884,"dataGaName":882,"dataGaLocation":865},"/partners/technology-partners/google-cloud-platform/",{"text":886,"config":887},"Why GitLab?",{"href":558,"dataGaName":886,"dataGaLocation":865},{"freeTrial":889,"mobileIcon":894,"desktopIcon":899,"secondaryButton":902},{"text":890,"config":891},"Start free trial",{"href":892,"dataGaName":519,"dataGaLocation":893},"https://gitlab.com/-/trials/new/","nav",{"altText":895,"config":896},"Gitlab Icon",{"src":897,"dataGaName":898,"dataGaLocation":893},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":895,"config":900},{"src":901,"dataGaName":898,"dataGaLocation":893},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":903,"config":904},"Get Started",{"href":905,"dataGaName":906,"dataGaLocation":893},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":908,"mobileIcon":912,"desktopIcon":914},{"text":909,"config":910},"Learn more about GitLab Duo",{"href":550,"dataGaName":911,"dataGaLocation":893},"gitlab duo",{"altText":895,"config":913},{"src":897,"dataGaName":898,"dataGaLocation":893},{"altText":895,"config":915},{"src":901,"dataGaName":898,"dataGaLocation":893},{"button":917,"mobileIcon":922,"desktopIcon":924},{"text":918,"config":919},"/switch",{"href":920,"dataGaName":921,"dataGaLocation":893},"#contact","switch",{"altText":895,"config":923},{"src":897,"dataGaName":898,"dataGaLocation":893},{"altText":895,"config":925},{"src":926,"dataGaName":898,"dataGaLocation":893},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":928,"mobileIcon":933,"desktopIcon":935},{"text":929,"config":930},"Back to pricing",{"href":663,"dataGaName":931,"dataGaLocation":893,"icon":932},"back to pricing","GoBack",{"altText":895,"config":934},{"src":897,"dataGaName":898,"dataGaLocation":893},{"altText":895,"config":936},{"src":901,"dataGaName":898,"dataGaLocation":893},{"title":938,"titleMobile":939,"button":940,"config":945},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":556,"config":941},{"href":942,"dataGaName":943,"dataGaLocation":944},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":946,"disabled":487},"release",{"data":948},{"text":949,"source":950,"edit":956,"contribute":961,"config":966,"items":971,"minimal":1181},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":951,"config":952},"View page source",{"href":953,"dataGaName":954,"dataGaLocation":955},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":957,"config":958},"Edit this page",{"href":959,"dataGaName":960,"dataGaLocation":955},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":962,"config":963},"Please contribute",{"href":964,"dataGaName":965,"dataGaLocation":955},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":967,"facebook":968,"youtube":969,"linkedin":970},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[972,1019,1073,1117,1149],{"title":661,"links":973,"subMenu":988},[974,978,983],{"text":975,"config":976},"View plans",{"href":663,"dataGaName":977,"dataGaLocation":955},"view plans",{"text":979,"config":980},"Why Premium?",{"href":981,"dataGaName":982,"dataGaLocation":955},"/pricing/premium/","why premium",{"text":984,"config":985},"Why Ultimate?",{"href":986,"dataGaName":987,"dataGaLocation":955},"/pricing/ultimate/","why ultimate",[989],{"title":990,"links":991},"Contact Us",[992,995,997,999,1004,1009,1014],{"text":993,"config":994},"Contact sales",{"href":845,"dataGaName":524,"dataGaLocation":955},{"text":848,"config":996},{"href":850,"dataGaName":851,"dataGaLocation":955},{"text":853,"config":998},{"href":855,"dataGaName":856,"dataGaLocation":955},{"text":1000,"config":1001},"Status",{"href":1002,"dataGaName":1003,"dataGaLocation":955},"https://status.gitlab.com/","status",{"text":1005,"config":1006},"Terms of use",{"href":1007,"dataGaName":1008,"dataGaLocation":955},"/terms/","terms of use",{"text":1010,"config":1011},"Privacy statement",{"href":1012,"dataGaName":1013,"dataGaLocation":955},"/privacy/","privacy statement",{"text":1015,"config":1016},"Cookie preferences",{"dataGaName":1017,"dataGaLocation":955,"id":1018,"isOneTrustButton":499},"cookie preferences","ot-sdk-btn",{"title":561,"links":1020,"subMenu":1029},[1021,1025],{"text":1022,"config":1023},"DevSecOps platform",{"href":543,"dataGaName":1024,"dataGaLocation":955},"devsecops platform",{"text":1026,"config":1027},"AI-Assisted Development",{"href":550,"dataGaName":1028,"dataGaLocation":955},"ai-assisted development",[1030],{"title":1031,"links":1032},"Topics",[1033,1038,1043,1048,1053,1058,1063,1068],{"text":1034,"config":1035},"CICD",{"href":1036,"dataGaName":1037,"dataGaLocation":955},"/topics/ci-cd/","cicd",{"text":1039,"config":1040},"GitOps",{"href":1041,"dataGaName":1042,"dataGaLocation":955},"/topics/gitops/","gitops",{"text":1044,"config":1045},"DevOps",{"href":1046,"dataGaName":1047,"dataGaLocation":955},"/topics/devops/","devops",{"text":1049,"config":1050},"Version Control",{"href":1051,"dataGaName":1052,"dataGaLocation":955},"/topics/version-control/","version control",{"text":1054,"config":1055},"DevSecOps",{"href":1056,"dataGaName":1057,"dataGaLocation":955},"/topics/devsecops/","devsecops",{"text":1059,"config":1060},"Cloud Native",{"href":1061,"dataGaName":1062,"dataGaLocation":955},"/topics/cloud-native/","cloud native",{"text":1064,"config":1065},"AI for Coding",{"href":1066,"dataGaName":1067,"dataGaLocation":955},"/topics/devops/ai-for-coding/","ai for coding",{"text":1069,"config":1070},"Agentic AI",{"href":1071,"dataGaName":1072,"dataGaLocation":955},"/topics/agentic-ai/","agentic ai",{"title":1074,"links":1075},"Solutions",[1076,1078,1080,1085,1089,1092,1096,1099,1101,1104,1107,1112],{"text":605,"config":1077},{"href":600,"dataGaName":605,"dataGaLocation":955},{"text":594,"config":1079},{"href":577,"dataGaName":578,"dataGaLocation":955},{"text":1081,"config":1082},"Agile development",{"href":1083,"dataGaName":1084,"dataGaLocation":955},"/solutions/agile-delivery/","agile delivery",{"text":1086,"config":1087},"SCM",{"href":590,"dataGaName":1088,"dataGaLocation":955},"source code management",{"text":1034,"config":1090},{"href":583,"dataGaName":1091,"dataGaLocation":955},"continuous integration & delivery",{"text":1093,"config":1094},"Value stream management",{"href":633,"dataGaName":1095,"dataGaLocation":955},"value stream management",{"text":1039,"config":1097},{"href":1098,"dataGaName":1042,"dataGaLocation":955},"/solutions/gitops/",{"text":643,"config":1100},{"href":646,"dataGaName":647,"dataGaLocation":955},{"text":1102,"config":1103},"Small business",{"href":652,"dataGaName":653,"dataGaLocation":955},{"text":1105,"config":1106},"Public sector",{"href":658,"dataGaName":659,"dataGaLocation":955},{"text":1108,"config":1109},"Education",{"href":1110,"dataGaName":1111,"dataGaLocation":955},"/solutions/education/","education",{"text":1113,"config":1114},"Financial services",{"href":1115,"dataGaName":1116,"dataGaLocation":955},"/solutions/finance/","financial services",{"title":666,"links":1118},[1119,1121,1123,1125,1128,1130,1133,1135,1137,1139,1141,1143,1145,1147],{"text":679,"config":1120},{"href":681,"dataGaName":682,"dataGaLocation":955},{"text":684,"config":1122},{"href":686,"dataGaName":687,"dataGaLocation":955},{"text":689,"config":1124},{"href":691,"dataGaName":692,"dataGaLocation":955},{"text":694,"config":1126},{"href":696,"dataGaName":1127,"dataGaLocation":955},"docs",{"text":717,"config":1129},{"href":719,"dataGaName":720,"dataGaLocation":955},{"text":1131,"config":1132},"What's new",{"href":777,"dataGaName":778,"dataGaLocation":955},{"text":712,"config":1134},{"href":714,"dataGaName":715,"dataGaLocation":955},{"text":731,"config":1136},{"href":733,"dataGaName":734,"dataGaLocation":955},{"text":739,"config":1138},{"href":741,"dataGaName":742,"dataGaLocation":955},{"text":744,"config":1140},{"href":746,"dataGaName":747,"dataGaLocation":955},{"text":749,"config":1142},{"href":751,"dataGaName":752,"dataGaLocation":955},{"text":754,"config":1144},{"href":756,"dataGaName":757,"dataGaLocation":955},{"text":759,"config":1146},{"href":761,"dataGaName":762,"dataGaLocation":955},{"text":764,"config":1148},{"href":766,"dataGaName":767,"dataGaLocation":955},{"title":780,"links":1150},[1151,1153,1155,1157,1159,1161,1165,1170,1172,1174,1176],{"text":788,"config":1152},{"href":790,"dataGaName":782,"dataGaLocation":955},{"text":793,"config":1154},{"href":795,"dataGaName":796,"dataGaLocation":955},{"text":801,"config":1156},{"href":803,"dataGaName":804,"dataGaLocation":955},{"text":806,"config":1158},{"href":808,"dataGaName":809,"dataGaLocation":955},{"text":811,"config":1160},{"href":813,"dataGaName":814,"dataGaLocation":955},{"text":1162,"config":1163},"Sustainability",{"href":1164,"dataGaName":1162,"dataGaLocation":955},"/sustainability/",{"text":1166,"config":1167},"Diversity, inclusion and belonging (DIB)",{"href":1168,"dataGaName":1169,"dataGaLocation":955},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":816,"config":1171},{"href":818,"dataGaName":819,"dataGaLocation":955},{"text":826,"config":1173},{"href":828,"dataGaName":829,"dataGaLocation":955},{"text":831,"config":1175},{"href":833,"dataGaName":834,"dataGaLocation":955},{"text":1177,"config":1178},"Modern Slavery Transparency Statement",{"href":1179,"dataGaName":1180,"dataGaLocation":955},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1182},[1183,1186,1189],{"text":1184,"config":1185},"Terms",{"href":1007,"dataGaName":1008,"dataGaLocation":955},{"text":1187,"config":1188},"Cookies",{"dataGaName":1017,"dataGaLocation":955,"id":1018,"isOneTrustButton":499},{"text":1190,"config":1191},"Privacy",{"href":1012,"dataGaName":1013,"dataGaLocation":955},[1193],{"id":1194,"title":7,"body":486,"config":1195,"content":1197,"description":486,"extension":1201,"meta":1202,"navigation":499,"path":1203,"seo":1204,"stem":1205,"__hash__":1206},"blogAuthors/en-us/blog/authors/david-russell.yml",{"template":1196},"BlogAuthor",{"name":7,"config":1198},{"headshot":1199,"ctfId":1200},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","David-Russell","yml",{},"/en-us/blog/authors/david-russell",{},"en-us/blog/authors/david-russell","qnkK0uKDRNDl-I-ED8-OIAr24J2C8fCztCvR1wcDovM",[1208,1216,1224],{"title":1209,"description":1210,"heroImage":1211,"category":482,"date":1212,"authors":1213,"slug":1215,"externalUrl":486},"What's new in Git 2.55.0?","Learn about the new features and changes in Git 2.55, including a new git-history(1) fixup command, an fsmonitor daemon for Linux, pushing to remote groups, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[1214],"Toon Claes","whats-new-in-git-2-55-0",{"title":1217,"description":1218,"heroImage":1219,"category":482,"date":1220,"authors":1221,"slug":1223,"externalUrl":486},"GitLab AI Hackathon 2026: Meet the winners","Nearly 7,000 developers built 600+ AI agents and flows on GitLab Duo Agent Platform. Find out who won and what they created.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[1222],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":1225,"description":1226,"heroImage":1227,"category":482,"date":1228,"authors":1229,"slug":1231,"externalUrl":486},"What’s new in Git 2.54.0?","Learn about release contributions, including new repository maintenance, a new command to edit commit history, a replacement for git-sizer(1), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782734716/ztwgrvlolpifo01vj8qc.png","2026-04-20",[1230],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":1233},[1234,1248,1260,1272],{"id":1235,"categories":1236,"header":1238,"text":1239,"button":1240,"image":1245},"ai-modernization",[1237],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1241,"config":1242},"Get your AI maturity score",{"href":1243,"dataGaName":1244,"dataGaLocation":720},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1246},{"src":1247},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1249,"categories":1250,"header":1252,"text":1239,"button":1253,"image":1257},"devops-modernization",[1251,1057],"product","Are you just managing tools or shipping innovation?",{"text":1254,"config":1255},"Get your DevOps maturity score",{"href":1256,"dataGaName":1244,"dataGaLocation":720},"/assessments/devops-modernization-assessment/",{"config":1258},{"src":1259},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1261,"categories":1262,"header":1264,"text":1239,"button":1265,"image":1269},"security-modernization",[1263],"security","Are you trading speed for security?",{"text":1266,"config":1267},"Get your security maturity score",{"href":1268,"dataGaName":1244,"dataGaLocation":720},"/assessments/security-modernization-assessment/",{"config":1270},{"src":1271},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1273,"paths":1274,"header":1277,"text":1278,"button":1279,"image":1284},"github-azure-migration",[1275,1276],"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":1280,"config":1281},"See how GitLab compares to GitHub",{"href":1282,"dataGaName":1283,"dataGaLocation":720},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1285},{"src":1259},{"header":1287,"blurb":1288,"button":1289,"secondaryButton":1294},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1290,"config":1291},"Get your free trial",{"href":1292,"dataGaName":519,"dataGaLocation":1293},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":993,"config":1295},{"href":845,"dataGaName":524,"dataGaLocation":1293},1786803769144]