[{"data":1,"prerenderedAt":953},["ShallowReactive",2],{"/en-us/blog/authors/emily-von-hoffmann":3,"navigation-en-us":21,"banner-en-us":442,"footer-en-us":453,"blog-author-posts-en-us-emily-von-hoffmann":695},{"id":4,"title":5,"body":6,"config":7,"content":9,"description":6,"extension":14,"meta":15,"navigation":16,"path":17,"seo":18,"stem":19,"__hash__":20},"blogAuthors/en-us/blog/authors/emily-von-hoffmann.yml","Emily Von Hoffmann",null,{"template":8},"BlogAuthor",{"name":10,"config":11},"Emily von Hoffmann",{"headshot":12,"ctfId":13},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","evhoffmann","yml",{},true,"/en-us/blog/authors/emily-von-hoffmann",{},"en-us/blog/authors/emily-von-hoffmann","zBEVnM69VnbjDNRxhqMvtqH47MYHt1wraGaN6nBYmAU",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":362,"minimal":393,"duo":412,"switchNav":421,"pricingDeployment":432},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/","gitlab logo","header",{"text":28,"config":29},"Get free trial",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"Talk to sales",{"href":35,"dataGaName":36,"dataGaLocation":26},"/sales/","sales",{"text":38,"config":39},"Sign in",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,172,177,281,342],{"text":44,"config":45,"menu":47},"Platform",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"The intelligent orchestration platform for DevSecOps",{"text":53,"config":54},"Explore our Platform",{"href":55,"dataGaName":46,"dataGaLocation":26},"/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":60,"config":61},"Meet GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":26},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":68,"config":69},"Learn more",{"href":70,"dataGaName":71,"dataGaLocation":26},"/why-gitlab/","why gitlab",{"text":73,"left":16,"config":74,"menu":76},"Product",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":151},"lists",{"text":79,"config":80},"View all Solutions",{"href":81,"dataGaName":75,"dataGaLocation":26},"/solutions/",[83,107,130],{"title":84,"description":85,"link":86,"items":91},"Automation","CI/CD and automation to accelerate deployment",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[92,96,99,103],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"Source Code Management",{"href":102,"dataGaLocation":26,"dataGaName":100},"/solutions/source-code-management/",{"text":104,"config":105},"Automated Software Delivery",{"href":89,"dataGaLocation":26,"dataGaName":106},"Automated software delivery",{"title":108,"description":109,"link":110,"items":115},"Security","Deliver code faster without compromising security",{"config":111},{"href":112,"dataGaName":113,"dataGaLocation":26,"icon":114},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[116,120,125],{"text":117,"config":118},"Application Security Testing",{"href":112,"dataGaName":119,"dataGaLocation":26},"Application security testing",{"text":121,"config":122},"Software Supply Chain Security",{"href":123,"dataGaLocation":26,"dataGaName":124},"/solutions/supply-chain/","Software supply chain security",{"text":126,"config":127},"Software Compliance",{"href":128,"dataGaName":129,"dataGaLocation":26},"/solutions/software-compliance/","software compliance",{"title":131,"link":132,"items":137},"Measurement",{"config":133},{"icon":134,"href":135,"dataGaName":136,"dataGaLocation":26},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[138,142,146],{"text":139,"config":140},"Visibility & Measurement",{"href":135,"dataGaLocation":26,"dataGaName":141},"Visibility and Measurement",{"text":143,"config":144},"Value Stream Management",{"href":145,"dataGaLocation":26,"dataGaName":143},"/solutions/value-stream-management/",{"text":147,"config":148},"Analytics & Insights",{"href":149,"dataGaLocation":26,"dataGaName":150},"/solutions/analytics-and-insights/","Analytics and insights",{"title":152,"type":77,"items":153},"GitLab for",[154,160,166],{"text":155,"config":156},"Enterprise",{"icon":157,"href":158,"dataGaLocation":26,"dataGaName":159},"Building","/enterprise/","enterprise",{"text":161,"config":162},"Small Business",{"icon":163,"href":164,"dataGaLocation":26,"dataGaName":165},"Work","/small-business/","small business",{"text":167,"config":168},"Public Sector",{"icon":169,"href":170,"dataGaLocation":26,"dataGaName":171},"Organization","/solutions/public-sector/","public sector",{"text":173,"config":174},"Pricing",{"href":175,"dataGaName":176,"dataGaLocation":26,"dataNavLevelOne":176},"/pricing/","pricing",{"text":178,"config":179,"menu":181},"Resources",{"dataNavLevelOne":180},"resources",{"type":77,"link":182,"columns":186,"feature":270},{"text":183,"config":184},"View all resources",{"href":185,"dataGaName":180,"dataGaLocation":26},"/resources/",[187,220,242],{"title":188,"items":189},"Getting started",[190,195,200,205,210,215],{"text":191,"config":192},"Install",{"href":193,"dataGaName":194,"dataGaLocation":26},"/install/","install",{"text":196,"config":197},"Quick start guides",{"href":198,"dataGaName":199,"dataGaLocation":26},"/get-started/","quick setup checklists",{"text":201,"config":202},"Learn",{"href":203,"dataGaLocation":26,"dataGaName":204},"https://university.gitlab.com/","learn",{"text":206,"config":207},"Product documentation",{"href":208,"dataGaName":209,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":211,"config":212},"Best practice videos",{"href":213,"dataGaName":214,"dataGaLocation":26},"/getting-started-videos/","best practice videos",{"text":216,"config":217},"Integrations",{"href":218,"dataGaName":219,"dataGaLocation":26},"/integrations/","integrations",{"title":221,"items":222},"Discover",[223,228,233,237],{"text":224,"config":225},"Customer success stories",{"href":226,"dataGaName":227,"dataGaLocation":26},"/customers/","customer success stories",{"text":229,"config":230},"Blog",{"href":231,"dataGaName":232,"dataGaLocation":26},"/blog/","blog",{"text":234,"config":235},"The Source",{"href":236,"dataGaName":232,"dataGaLocation":26},"/the-source/",{"text":238,"config":239},"Remote",{"href":240,"dataGaName":241,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":243,"items":244},"Connect",[245,250,255,260,265],{"text":246,"config":247},"GitLab Services",{"href":248,"dataGaName":249,"dataGaLocation":26},"/services/","services",{"text":251,"config":252},"Community",{"href":253,"dataGaName":254,"dataGaLocation":26},"/community/","community",{"text":256,"config":257},"Forum",{"href":258,"dataGaName":259,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":261,"config":262},"Events",{"href":263,"dataGaName":264,"dataGaLocation":26},"/events/","events",{"text":266,"config":267},"Partners",{"href":268,"dataGaName":269,"dataGaLocation":26},"/partners/","partners",{"config":271,"title":274,"text":275,"link":276},{"background":272,"textColor":273},"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":277,"config":278},"Read the latest",{"href":279,"dataGaName":280,"dataGaLocation":26},"/releases/whats-new/","whats new",{"text":282,"config":283,"menu":285},"Company",{"dataNavLevelOne":284},"company",{"type":77,"columns":286},[287],{"items":288},[289,294,300,302,307,312,317,322,327,332,337],{"text":290,"config":291},"About",{"href":292,"dataGaName":293,"dataGaLocation":26},"/company/","about",{"text":295,"config":296,"footerGa":299},"Jobs",{"href":297,"dataGaName":298,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":298},{"text":261,"config":301},{"href":263,"dataGaName":264,"dataGaLocation":26},{"text":303,"config":304},"Leadership",{"href":305,"dataGaName":306,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":308,"config":309},"Team",{"href":310,"dataGaName":311,"dataGaLocation":26},"/company/team/","team",{"text":313,"config":314},"Handbook",{"href":315,"dataGaName":316,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":318,"config":319},"Investor relations",{"href":320,"dataGaName":321,"dataGaLocation":26},"https://ir.gitlab.com/","investor relations",{"text":323,"config":324},"Trust Center",{"href":325,"dataGaName":326,"dataGaLocation":26},"/security/","trust center",{"text":328,"config":329},"AI Transparency Center",{"href":330,"dataGaName":331,"dataGaLocation":26},"/ai-transparency-center/","ai transparency center",{"text":333,"config":334},"Newsletter",{"href":335,"dataGaName":336,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":338,"config":339},"Press",{"href":340,"dataGaName":341,"dataGaLocation":26},"/press/","press",{"text":343,"config":344,"menu":345},"Contact us",{"dataNavLevelOne":284},{"type":77,"columns":346},[347],{"items":348},[349,352,357],{"text":33,"config":350},{"href":35,"dataGaName":351,"dataGaLocation":26},"talk to sales",{"text":353,"config":354},"Support portal",{"href":355,"dataGaName":356,"dataGaLocation":26},"https://support.gitlab.com","support portal",{"text":358,"config":359},"Customer portal",{"href":360,"dataGaName":361,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":363,"login":364,"suggestions":371},"Close",{"text":365,"link":366},"To search repositories and projects, login to",{"text":367,"config":368},"gitlab.com",{"href":40,"dataGaName":369,"dataGaLocation":370},"search login","search",{"text":372,"default":373},"Suggestions",[374,376,380,382,386,390],{"text":57,"config":375},{"href":62,"dataGaName":57,"dataGaLocation":370},{"text":377,"config":378},"Code Suggestions (AI)",{"href":379,"dataGaName":377,"dataGaLocation":370},"/solutions/code-suggestions/",{"text":93,"config":381},{"href":95,"dataGaName":93,"dataGaLocation":370},{"text":383,"config":384},"GitLab on AWS",{"href":385,"dataGaName":383,"dataGaLocation":370},"/partners/technology-partners/aws/",{"text":387,"config":388},"GitLab on Google Cloud",{"href":389,"dataGaName":387,"dataGaLocation":370},"/partners/technology-partners/google-cloud-platform/",{"text":391,"config":392},"Why GitLab?",{"href":70,"dataGaName":391,"dataGaLocation":370},{"freeTrial":394,"mobileIcon":399,"desktopIcon":404,"secondaryButton":407},{"text":395,"config":396},"Start free trial",{"href":397,"dataGaName":31,"dataGaLocation":398},"https://gitlab.com/-/trials/new/","nav",{"altText":400,"config":401},"Gitlab Icon",{"src":402,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":400,"config":405},{"src":406,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":408,"config":409},"Get Started",{"href":410,"dataGaName":411,"dataGaLocation":398},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":413,"mobileIcon":417,"desktopIcon":419},{"text":414,"config":415},"Learn more about GitLab Duo",{"href":62,"dataGaName":416,"dataGaLocation":398},"gitlab duo",{"altText":400,"config":418},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":420},{"src":406,"dataGaName":403,"dataGaLocation":398},{"button":422,"mobileIcon":427,"desktopIcon":429},{"text":423,"config":424},"/switch",{"href":425,"dataGaName":426,"dataGaLocation":398},"#contact","switch",{"altText":400,"config":428},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":430},{"src":431,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":433,"mobileIcon":438,"desktopIcon":440},{"text":434,"config":435},"Back to pricing",{"href":175,"dataGaName":436,"dataGaLocation":398,"icon":437},"back to pricing","GoBack",{"altText":400,"config":439},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":441},{"src":406,"dataGaName":403,"dataGaLocation":398},{"title":443,"button":444,"config":449},"See how agentic AI transforms software delivery",{"text":445,"config":446},"Sign up for GitLab Transcend on June 10",{"href":447,"dataGaName":448,"dataGaLocation":26},"/releases/whats-new/#sign-up","transcend event",{"layout":450,"icon":451,"disabled":452},"release","AiStar",false,{"data":454},{"text":455,"source":456,"edit":462,"contribute":467,"config":472,"items":477,"minimal":684},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":457,"config":458},"View page source",{"href":459,"dataGaName":460,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":463,"config":464},"Edit this page",{"href":465,"dataGaName":466,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":468,"config":469},"Please contribute",{"href":470,"dataGaName":471,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":473,"facebook":474,"youtube":475,"linkedin":476},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[478,525,579,623,650],{"title":173,"links":479,"subMenu":494},[480,484,489],{"text":481,"config":482},"View plans",{"href":175,"dataGaName":483,"dataGaLocation":461},"view plans",{"text":485,"config":486},"Why Premium?",{"href":487,"dataGaName":488,"dataGaLocation":461},"/pricing/premium/","why premium",{"text":490,"config":491},"Why Ultimate?",{"href":492,"dataGaName":493,"dataGaLocation":461},"/pricing/ultimate/","why ultimate",[495],{"title":496,"links":497},"Contact Us",[498,501,503,505,510,515,520],{"text":499,"config":500},"Contact sales",{"href":35,"dataGaName":36,"dataGaLocation":461},{"text":353,"config":502},{"href":355,"dataGaName":356,"dataGaLocation":461},{"text":358,"config":504},{"href":360,"dataGaName":361,"dataGaLocation":461},{"text":506,"config":507},"Status",{"href":508,"dataGaName":509,"dataGaLocation":461},"https://status.gitlab.com/","status",{"text":511,"config":512},"Terms of use",{"href":513,"dataGaName":514,"dataGaLocation":461},"/terms/","terms of use",{"text":516,"config":517},"Privacy statement",{"href":518,"dataGaName":519,"dataGaLocation":461},"/privacy/","privacy statement",{"text":521,"config":522},"Cookie preferences",{"dataGaName":523,"dataGaLocation":461,"id":524,"isOneTrustButton":16},"cookie preferences","ot-sdk-btn",{"title":73,"links":526,"subMenu":535},[527,531],{"text":528,"config":529},"DevSecOps platform",{"href":55,"dataGaName":530,"dataGaLocation":461},"devsecops platform",{"text":532,"config":533},"AI-Assisted Development",{"href":62,"dataGaName":534,"dataGaLocation":461},"ai-assisted development",[536],{"title":537,"links":538},"Topics",[539,544,549,554,559,564,569,574],{"text":540,"config":541},"CICD",{"href":542,"dataGaName":543,"dataGaLocation":461},"/topics/ci-cd/","cicd",{"text":545,"config":546},"GitOps",{"href":547,"dataGaName":548,"dataGaLocation":461},"/topics/gitops/","gitops",{"text":550,"config":551},"DevOps",{"href":552,"dataGaName":553,"dataGaLocation":461},"/topics/devops/","devops",{"text":555,"config":556},"Version Control",{"href":557,"dataGaName":558,"dataGaLocation":461},"/topics/version-control/","version control",{"text":560,"config":561},"DevSecOps",{"href":562,"dataGaName":563,"dataGaLocation":461},"/topics/devsecops/","devsecops",{"text":565,"config":566},"Cloud Native",{"href":567,"dataGaName":568,"dataGaLocation":461},"/topics/cloud-native/","cloud native",{"text":570,"config":571},"AI for Coding",{"href":572,"dataGaName":573,"dataGaLocation":461},"/topics/devops/ai-for-coding/","ai for coding",{"text":575,"config":576},"Agentic AI",{"href":577,"dataGaName":578,"dataGaLocation":461},"/topics/agentic-ai/","agentic ai",{"title":580,"links":581},"Solutions",[582,584,586,591,595,598,602,605,607,610,613,618],{"text":117,"config":583},{"href":112,"dataGaName":117,"dataGaLocation":461},{"text":106,"config":585},{"href":89,"dataGaName":90,"dataGaLocation":461},{"text":587,"config":588},"Agile development",{"href":589,"dataGaName":590,"dataGaLocation":461},"/solutions/agile-delivery/","agile delivery",{"text":592,"config":593},"SCM",{"href":102,"dataGaName":594,"dataGaLocation":461},"source code management",{"text":540,"config":596},{"href":95,"dataGaName":597,"dataGaLocation":461},"continuous integration & delivery",{"text":599,"config":600},"Value stream management",{"href":145,"dataGaName":601,"dataGaLocation":461},"value stream management",{"text":545,"config":603},{"href":604,"dataGaName":548,"dataGaLocation":461},"/solutions/gitops/",{"text":155,"config":606},{"href":158,"dataGaName":159,"dataGaLocation":461},{"text":608,"config":609},"Small business",{"href":164,"dataGaName":165,"dataGaLocation":461},{"text":611,"config":612},"Public sector",{"href":170,"dataGaName":171,"dataGaLocation":461},{"text":614,"config":615},"Education",{"href":616,"dataGaName":617,"dataGaLocation":461},"/solutions/education/","education",{"text":619,"config":620},"Financial services",{"href":621,"dataGaName":622,"dataGaLocation":461},"/solutions/finance/","financial services",{"title":178,"links":624},[625,627,629,631,634,636,638,640,642,644,646,648],{"text":191,"config":626},{"href":193,"dataGaName":194,"dataGaLocation":461},{"text":196,"config":628},{"href":198,"dataGaName":199,"dataGaLocation":461},{"text":201,"config":630},{"href":203,"dataGaName":204,"dataGaLocation":461},{"text":206,"config":632},{"href":208,"dataGaName":633,"dataGaLocation":461},"docs",{"text":229,"config":635},{"href":231,"dataGaName":232,"dataGaLocation":461},{"text":224,"config":637},{"href":226,"dataGaName":227,"dataGaLocation":461},{"text":238,"config":639},{"href":240,"dataGaName":241,"dataGaLocation":461},{"text":246,"config":641},{"href":248,"dataGaName":249,"dataGaLocation":461},{"text":251,"config":643},{"href":253,"dataGaName":254,"dataGaLocation":461},{"text":256,"config":645},{"href":258,"dataGaName":259,"dataGaLocation":461},{"text":261,"config":647},{"href":263,"dataGaName":264,"dataGaLocation":461},{"text":266,"config":649},{"href":268,"dataGaName":269,"dataGaLocation":461},{"title":282,"links":651},[652,654,656,658,660,662,664,668,673,675,677,679],{"text":290,"config":653},{"href":292,"dataGaName":284,"dataGaLocation":461},{"text":295,"config":655},{"href":297,"dataGaName":298,"dataGaLocation":461},{"text":303,"config":657},{"href":305,"dataGaName":306,"dataGaLocation":461},{"text":308,"config":659},{"href":310,"dataGaName":311,"dataGaLocation":461},{"text":313,"config":661},{"href":315,"dataGaName":316,"dataGaLocation":461},{"text":318,"config":663},{"href":320,"dataGaName":321,"dataGaLocation":461},{"text":665,"config":666},"Sustainability",{"href":667,"dataGaName":665,"dataGaLocation":461},"/sustainability/",{"text":669,"config":670},"Diversity, inclusion and belonging (DIB)",{"href":671,"dataGaName":672,"dataGaLocation":461},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":323,"config":674},{"href":325,"dataGaName":326,"dataGaLocation":461},{"text":333,"config":676},{"href":335,"dataGaName":336,"dataGaLocation":461},{"text":338,"config":678},{"href":340,"dataGaName":341,"dataGaLocation":461},{"text":680,"config":681},"Modern Slavery Transparency Statement",{"href":682,"dataGaName":683,"dataGaLocation":461},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":685},[686,689,692],{"text":687,"config":688},"Terms",{"href":513,"dataGaName":514,"dataGaLocation":461},{"text":690,"config":691},"Cookies",{"dataGaName":523,"dataGaLocation":461,"id":524,"isOneTrustButton":16},{"text":693,"config":694},"Privacy",{"href":518,"dataGaName":519,"dataGaLocation":461},[696,706,715,725,735,745,755,764,773,782,791,801,810,819,828,837,846,855,864,873,882,891,900,909,918,927,935,944],{"content":697,"config":704},{"title":698,"heroImage":699,"category":700,"description":701,"authors":702,"date":703},"A tale of two file editors","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668339/Blog/Hero%20Images/a-tale-of-two-editors.jpg","insights","How UX Research revealed unexpected patterns in how people use two GitLab file editors: the single-file editor and the Web IDE.",[10],"2020-09-01",{"slug":705,"externalUrl":-1},"a-tale-of-two-editors",{"content":707,"config":713},{"title":708,"heroImage":709,"category":284,"description":710,"authors":711,"date":712},"How you can help shape the future of securing applications with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668495/Blog/Hero%20Images/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab.jpg","We want to provide the best experience in keeping your application safe after your code is in production.",[10],"2019-11-14",{"slug":714,"externalUrl":-1},"how-you-can-help-shape-the-future-of-securing-applications-at-gitlab",{"content":716,"config":723},{"title":717,"heroImage":718,"category":719,"description":720,"authors":721,"date":722},"5 Things we learned from you in recent UX research","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680847/Blog/Hero%20Images/seven-things-we-learned-from-you-in-recent-ux-research.jpg","unfiltered","How you use Snippets, whether to rename Auto DevOps, how to improve our billing process, and more.",[10],"2019-10-21",{"slug":724,"externalUrl":-1},"five-things-we-learned-from-you-in-recent-ux-research",{"content":726,"config":733},{"title":727,"heroImage":728,"category":729,"description":730,"authors":731,"date":732},"How do you contribute?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679742/Blog/Hero%20Images/contribute-social-cover.png","open-source","Your contribution graph captures a moment in time like few things can, and we want to celebrate it.",[10],"2019-05-07",{"slug":734,"externalUrl":-1},"how-do-you-contribute",{"content":736,"config":743},{"title":737,"heroImage":738,"category":284,"description":739,"authors":740,"date":742},"2018: GitLab's year in review","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670162/Blog/Hero%20Images/happy-holidays-cover.png","Take a look at the highlight reel from 2018 – from landing $100M in funding to welcoming a host of great open source projects to GitLab.",[10,741],"Rebecca Dodd","2019-01-10",{"slug":744,"externalUrl":-1},"gitlab-2018-year-in-review",{"content":746,"config":753},{"title":747,"heroImage":748,"category":749,"description":750,"authors":751,"date":752},"We restructured to allow better cross-functional collaboration — here's how it's going.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678839/Blog/Hero%20Images/inside-look-at-new-cross-functional-teams-at-gitlab.jpg","engineering","Implementing a new structure sounds like a big change, but our Configure group is here to give you the scoop.",[10],"2018-12-13",{"slug":754,"externalUrl":-1},"configure-post",{"content":756,"config":762},{"title":757,"heroImage":758,"category":284,"description":759,"authors":760,"date":761},"How do we handle engineering-led issues that don't belong to one team?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678916/Blog/Hero%20Images/how-do-we-handle-engineering-led-initiatives.jpg","A recent issue sparked a lively discussion between engineering and product leadership about how 'cross-vertical' issues should be prioritized to avoid the bystander effect.",[10],"2018-10-30",{"slug":763,"externalUrl":-1},"how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team",{"content":765,"config":771},{"title":766,"heroImage":767,"category":749,"description":768,"authors":769,"date":770},"Why you should join the GitLab security team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668486/Blog/Hero%20Images/why-you-should-join-the-gitlab-security-team.jpg","Meet Director of Security Kathy Wang for a look inside our remote (and growing!) security team.",[10],"2018-08-09",{"slug":772,"externalUrl":-1},"why-you-should-join-the-gitlab-security-team",{"content":774,"config":780},{"title":775,"heroImage":776,"category":700,"description":777,"authors":778,"date":779},"How do developers and managers feel about their jobs?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663753/Blog/Hero%20Images/managers-more-optimistic-than-developers.jpg","How do you assess job satisfaction? Here's a look inside the findings and methods of our Global Developer Report.",[10],"2018-03-20",{"slug":781,"externalUrl":-1},"managers-more-optimistic-than-developers",{"content":783,"config":789},{"title":784,"heroImage":785,"category":284,"description":786,"authors":787,"date":788},"We're coming to you live from Crete, at the GitLab Summit!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680330/Blog/Hero%20Images/greece-summit-2017.png","Read on for all the events you can watch and participate in.",[10],"2017-10-17",{"slug":790,"externalUrl":-1},"watch-the-gitlab-summit-from-your-desk",{"content":792,"config":799},{"title":793,"heroImage":794,"category":795,"description":796,"authors":797,"date":798},"Why your code review process is broken, and how to fix it","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679775/Blog/Hero%20Images/why-your-code-review-process-is-broken-and-how-to-fix-it.jpg","culture","What do you do when you follow your code review process, and you’re still rudely greeted by code full of bugs, or a flood of user complaints?",[10],"2017-07-25",{"slug":800,"externalUrl":-1},"why-your-code-review-process-is-broken-and-how-to-fix-it",{"content":802,"config":808},{"title":803,"heroImage":804,"category":700,"description":805,"authors":806,"date":807},"Why Git is worth the learning curve","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684078/Blog/Hero%20Images/why-git-is-worth-the-learning-curve.jpg","Although the learning curve can pose a challenge, teams have a real incentive to transition to Git.",[10],"2017-05-17",{"slug":809,"externalUrl":-1},"learning-curve-is-the-biggest-challenge-developers-face-with-git",{"content":811,"config":817},{"title":812,"heroImage":813,"category":795,"description":814,"authors":815,"date":816},"Inside GitLab’s code review flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667591/Blog/Hero%20Images/code-review-blog.jpg","We keep a quality-conscious mindset throughout the development process, sharing the responsibility among everyone instead of seeing review as an obstacle at the end.",[10],"2017-05-02",{"slug":818,"externalUrl":-1},"inside-gitlabs-code-review-flow",{"content":820,"config":826},{"title":821,"heroImage":822,"category":749,"description":823,"authors":824,"date":825},"Demo - Mapping work versus time, with burndown charts","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666633/Blog/Hero%20Images/gitlab-2016-in-review-cover.png","Our Frontend Lead Jacob Schatz explains how managers and ICs can benefit from our burndown chart feature, released in GitLab 9.1.",[10],"2017-04-25",{"slug":827,"externalUrl":-1},"mapping-work-to-do-versus-time-with-burndown-charts",{"content":829,"config":835},{"title":830,"heroImage":831,"category":700,"description":832,"authors":833,"date":834},"How innersourcing can help your security team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676117/Blog/Hero%20Images/data.png","Security is a major concern during the development process — innersourcing can help.",[10],"2017-04-19",{"slug":836,"externalUrl":-1},"how-innersourcing-can-help-your-security-team",{"content":838,"config":844},{"title":839,"heroImage":840,"category":795,"description":841,"authors":842,"date":843},"Demo: Mastering code review with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670664/Blog/Hero%20Images/code.png","Code review shouldn't be a burden, it should make your team better and faster so you can keep delivering new features on time.",[10],"2017-03-17",{"slug":845,"externalUrl":-1},"demo-mastering-code-review-with-gitlab",{"content":847,"config":853},{"title":848,"heroImage":849,"category":795,"description":850,"authors":851,"date":852},"GitLab & Buffer CEOs talk transparency at scale","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683999/Blog/Hero%20Images/ee-products-hero-image.jpg","The two transparency advocates recently met to talk about openness in business, what they keep confidential, and some things they've learned as their companies grow.",[10],"2017-03-14",{"slug":854,"externalUrl":-1},"buffer-and-gitlab-ceos-talk-transparency",{"content":856,"config":862},{"title":857,"heroImage":858,"category":700,"description":859,"authors":860,"date":861},"The secret to developer happiness? Use better tools","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668402/Blog/Hero%20Images/code-gitlab-tanuki.png","The way developers work has changed, and they’re opting to leave behind outdated tools.",[10],"2017-02-27",{"slug":863,"externalUrl":-1},"developers-crave-modern-tools",{"content":865,"config":871},{"title":866,"heroImage":867,"category":749,"description":868,"authors":869,"date":870},"Designing for the modern developer","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683970/Blog/Hero%20Images/designing-for-the-modern-developer.jpg","Recap and recording from our recent webcast featuring the GitLab user experience (UX) team",[10],"2017-01-24",{"slug":872,"externalUrl":-1},"designing-for-the-modern-developer-recap",{"content":874,"config":880},{"title":875,"heroImage":876,"category":795,"description":877,"authors":878,"date":879},"How to keep remote (volunteer) teams engaged","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670694/Blog/Hero%20Images/how-to-keep-remote-teams-engaged-cover.jpg","Our Director of Strategic Partnerships chats about remote engagement challenges at a charity that encourages kids to get interested in space, finding interesting parallels with open source projects.",[10],"2016-12-21",{"slug":881,"externalUrl":-1},"how-to-keep-remote-teams-engaged",{"content":883,"config":889},{"title":884,"heroImage":885,"category":749,"description":886,"authors":887,"date":888},"Customer story: A creative agency's GitLab wishlist","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670681/Blog/Hero%20Images/a-creative-agencys-gitlab-wishlist.jpg","A Lukkien developer shares his team's challenges with Git and GitLab for their UX designs, and requests a few tweaks they'd find useful.",[10],"2016-12-15",{"slug":890,"externalUrl":-1},"a-creative-agencys-gitlab-wishlist",{"content":892,"config":898},{"title":893,"heroImage":894,"category":284,"description":895,"authors":896,"date":897},"GitLab at DOES San Francisco 2016","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670702/Blog/Hero%20Images/party.jpg","We're the new kids on the block in the Git space. Here are some other things about us you should know, in a segment of DevOpsTV.",[10],"2016-12-06",{"slug":899,"externalUrl":-1},"gitlab-at-does-2016",{"content":901,"config":907},{"title":902,"heroImage":903,"category":729,"description":904,"authors":905,"date":906},"Customer Story: Why Vaadin chose GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670710/Blog/Hero%20Images/why-vaadin-chose-gitlab-cover.png","Vaadin needed a new solution after their multiple platforms began costing too much time and frustration.",[10],"2016-12-05",{"slug":908,"externalUrl":-1},"why-vaadin-chose-gitlab",{"content":910,"config":916},{"title":911,"heroImage":912,"category":749,"description":913,"authors":914,"date":915},"'GitLab is a slam dunk': One team lead weighs his options","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663798/Blog/Hero%20Images/gitlab-is-a-slam-dunk.jpg","Developer Warren Postma shares his opinions on VCS, after years of trying out all the alternatives.",[10],"2016-11-27",{"slug":917,"externalUrl":-1},"gitlab-is-a-slam-dunk",{"content":919,"config":925},{"title":920,"heroImage":921,"category":284,"description":922,"authors":923,"date":924},"Customer Story: GitLab adoption growing at CERN","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670719/Blog/Hero%20Images/cern.jpg","CERN, the European Organization for Nuclear Research, is increasingly using GitLab to host software projects and code for configuration management.",[10],"2016-11-23",{"slug":926,"externalUrl":-1},"gitlab-adoption-growing-at-cern",{"content":928,"config":933},{"title":929,"heroImage":930,"category":729,"description":931,"authors":932,"date":924},"How to build a strong developer community","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670726/Blog/Hero%20Images/how-to-build-a-strong-developer-community.jpg","Our developer advocate Amanda Folson shares some community building tips with Jasmine Anteunis, co-founder of startup Recast.ai",[10],{"slug":934,"externalUrl":-1},"how-to-build-a-strong-dev-community",{"content":936,"config":942},{"title":937,"heroImage":938,"category":284,"description":939,"authors":940,"date":941},"Customer Story: Data startup Cognitive Logic talks migrating to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670658/Blog/Hero%20Images/data-startup-cognitive-logic-talks-migrating-to-gitlab.jpg","Data analytics startup Cognitive Logic helps companies store, share, and examine consumer information without compromising security.",[10],"2016-11-22",{"slug":943,"externalUrl":-1},"cognitive-logic-talks-migrating-to-gitlab",{"content":945,"config":951},{"title":946,"heroImage":947,"category":795,"description":948,"authors":949,"date":950},"3 things I learned in my first month at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663743/Blog/Hero%20Images/three-things-i-learned-in-my-first-month-at-gitlab.jpg","Adapting to life at GitLab--marketing edition!",[10],"2016-11-02",{"slug":952,"externalUrl":-1},"three-things-i-learned-in-my-first-month-at-gitlab",1777934803951]