[{"data":1,"prerenderedAt":891},["ShallowReactive",2],{"/en-us/blog/authors/emily-von-hoffmann":3,"navigation-en-us":21,"banner-en-us":437,"footer-en-us":446,"blog-author-posts-en-us-emily-von-hoffmann":689},{"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":357,"minimal":388,"duo":407,"switchNav":416,"pricingDeployment":427},{"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,337],{"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},"/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],{"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},"Handbook",{"href":310,"dataGaName":311,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":313,"config":314},"Investor relations",{"href":315,"dataGaName":316,"dataGaLocation":26},"https://ir.gitlab.com/","investor relations",{"text":318,"config":319},"Trust Center",{"href":320,"dataGaName":321,"dataGaLocation":26},"/security/","trust center",{"text":323,"config":324},"AI Transparency Center",{"href":325,"dataGaName":326,"dataGaLocation":26},"/ai-transparency-center/","ai transparency center",{"text":328,"config":329},"Newsletter",{"href":330,"dataGaName":331,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":333,"config":334},"Press",{"href":335,"dataGaName":336,"dataGaLocation":26},"/press/","press",{"text":338,"config":339,"menu":340},"Contact us",{"dataNavLevelOne":284},{"type":77,"columns":341},[342],{"items":343},[344,347,352],{"text":33,"config":345},{"href":35,"dataGaName":346,"dataGaLocation":26},"talk to sales",{"text":348,"config":349},"Support portal",{"href":350,"dataGaName":351,"dataGaLocation":26},"https://support.gitlab.com","support portal",{"text":353,"config":354},"Customer portal",{"href":355,"dataGaName":356,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":358,"login":359,"suggestions":366},"Close",{"text":360,"link":361},"To search repositories and projects, login to",{"text":362,"config":363},"gitlab.com",{"href":40,"dataGaName":364,"dataGaLocation":365},"search login","search",{"text":367,"default":368},"Suggestions",[369,371,375,377,381,385],{"text":57,"config":370},{"href":62,"dataGaName":57,"dataGaLocation":365},{"text":372,"config":373},"Code Suggestions (AI)",{"href":374,"dataGaName":372,"dataGaLocation":365},"/solutions/code-suggestions/",{"text":93,"config":376},{"href":95,"dataGaName":93,"dataGaLocation":365},{"text":378,"config":379},"GitLab on AWS",{"href":380,"dataGaName":378,"dataGaLocation":365},"/partners/technology-partners/aws/",{"text":382,"config":383},"GitLab on Google Cloud",{"href":384,"dataGaName":382,"dataGaLocation":365},"/partners/technology-partners/google-cloud-platform/",{"text":386,"config":387},"Why GitLab?",{"href":70,"dataGaName":386,"dataGaLocation":365},{"freeTrial":389,"mobileIcon":394,"desktopIcon":399,"secondaryButton":402},{"text":390,"config":391},"Start free trial",{"href":392,"dataGaName":31,"dataGaLocation":393},"https://gitlab.com/-/trials/new/","nav",{"altText":395,"config":396},"Gitlab Icon",{"src":397,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":395,"config":400},{"src":401,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":403,"config":404},"Get Started",{"href":405,"dataGaName":406,"dataGaLocation":393},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":408,"mobileIcon":412,"desktopIcon":414},{"text":409,"config":410},"Learn more about GitLab Duo",{"href":62,"dataGaName":411,"dataGaLocation":393},"gitlab duo",{"altText":395,"config":413},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":415},{"src":401,"dataGaName":398,"dataGaLocation":393},{"button":417,"mobileIcon":422,"desktopIcon":424},{"text":418,"config":419},"/switch",{"href":420,"dataGaName":421,"dataGaLocation":393},"#contact","switch",{"altText":395,"config":423},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":425},{"src":426,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":428,"mobileIcon":433,"desktopIcon":435},{"text":429,"config":430},"Back to pricing",{"href":175,"dataGaName":431,"dataGaLocation":393,"icon":432},"back to pricing","GoBack",{"altText":395,"config":434},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":436},{"src":401,"dataGaName":398,"dataGaLocation":393},{"title":438,"button":439,"config":443},"GitLab Orbit is here: The context layer for AI agents.",{"text":68,"config":440},{"href":441,"dataGaName":442,"dataGaLocation":26},"/gitlab-orbit/","orbit",{"layout":444,"disabled":445},"release",false,{"data":447},{"text":448,"source":449,"edit":455,"contribute":460,"config":465,"items":470,"minimal":678},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":450,"config":451},"View page source",{"href":452,"dataGaName":453,"dataGaLocation":454},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":456,"config":457},"Edit this page",{"href":458,"dataGaName":459,"dataGaLocation":454},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":461,"config":462},"Please contribute",{"href":463,"dataGaName":464,"dataGaLocation":454},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":466,"facebook":467,"youtube":468,"linkedin":469},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[471,518,572,616,646],{"title":173,"links":472,"subMenu":487},[473,477,482],{"text":474,"config":475},"View plans",{"href":175,"dataGaName":476,"dataGaLocation":454},"view plans",{"text":478,"config":479},"Why Premium?",{"href":480,"dataGaName":481,"dataGaLocation":454},"/pricing/premium/","why premium",{"text":483,"config":484},"Why Ultimate?",{"href":485,"dataGaName":486,"dataGaLocation":454},"/pricing/ultimate/","why ultimate",[488],{"title":489,"links":490},"Contact Us",[491,494,496,498,503,508,513],{"text":492,"config":493},"Contact sales",{"href":35,"dataGaName":36,"dataGaLocation":454},{"text":348,"config":495},{"href":350,"dataGaName":351,"dataGaLocation":454},{"text":353,"config":497},{"href":355,"dataGaName":356,"dataGaLocation":454},{"text":499,"config":500},"Status",{"href":501,"dataGaName":502,"dataGaLocation":454},"https://status.gitlab.com/","status",{"text":504,"config":505},"Terms of use",{"href":506,"dataGaName":507,"dataGaLocation":454},"/terms/","terms of use",{"text":509,"config":510},"Privacy statement",{"href":511,"dataGaName":512,"dataGaLocation":454},"/privacy/","privacy statement",{"text":514,"config":515},"Cookie preferences",{"dataGaName":516,"dataGaLocation":454,"id":517,"isOneTrustButton":16},"cookie preferences","ot-sdk-btn",{"title":73,"links":519,"subMenu":528},[520,524],{"text":521,"config":522},"DevSecOps platform",{"href":55,"dataGaName":523,"dataGaLocation":454},"devsecops platform",{"text":525,"config":526},"AI-Assisted Development",{"href":62,"dataGaName":527,"dataGaLocation":454},"ai-assisted development",[529],{"title":530,"links":531},"Topics",[532,537,542,547,552,557,562,567],{"text":533,"config":534},"CICD",{"href":535,"dataGaName":536,"dataGaLocation":454},"/topics/ci-cd/","cicd",{"text":538,"config":539},"GitOps",{"href":540,"dataGaName":541,"dataGaLocation":454},"/topics/gitops/","gitops",{"text":543,"config":544},"DevOps",{"href":545,"dataGaName":546,"dataGaLocation":454},"/topics/devops/","devops",{"text":548,"config":549},"Version Control",{"href":550,"dataGaName":551,"dataGaLocation":454},"/topics/version-control/","version control",{"text":553,"config":554},"DevSecOps",{"href":555,"dataGaName":556,"dataGaLocation":454},"/topics/devsecops/","devsecops",{"text":558,"config":559},"Cloud Native",{"href":560,"dataGaName":561,"dataGaLocation":454},"/topics/cloud-native/","cloud native",{"text":563,"config":564},"AI for Coding",{"href":565,"dataGaName":566,"dataGaLocation":454},"/topics/devops/ai-for-coding/","ai for coding",{"text":568,"config":569},"Agentic AI",{"href":570,"dataGaName":571,"dataGaLocation":454},"/topics/agentic-ai/","agentic ai",{"title":573,"links":574},"Solutions",[575,577,579,584,588,591,595,598,600,603,606,611],{"text":117,"config":576},{"href":112,"dataGaName":117,"dataGaLocation":454},{"text":106,"config":578},{"href":89,"dataGaName":90,"dataGaLocation":454},{"text":580,"config":581},"Agile development",{"href":582,"dataGaName":583,"dataGaLocation":454},"/solutions/agile-delivery/","agile delivery",{"text":585,"config":586},"SCM",{"href":102,"dataGaName":587,"dataGaLocation":454},"source code management",{"text":533,"config":589},{"href":95,"dataGaName":590,"dataGaLocation":454},"continuous integration & delivery",{"text":592,"config":593},"Value stream management",{"href":145,"dataGaName":594,"dataGaLocation":454},"value stream management",{"text":538,"config":596},{"href":597,"dataGaName":541,"dataGaLocation":454},"/solutions/gitops/",{"text":155,"config":599},{"href":158,"dataGaName":159,"dataGaLocation":454},{"text":601,"config":602},"Small business",{"href":164,"dataGaName":165,"dataGaLocation":454},{"text":604,"config":605},"Public sector",{"href":170,"dataGaName":171,"dataGaLocation":454},{"text":607,"config":608},"Education",{"href":609,"dataGaName":610,"dataGaLocation":454},"/solutions/education/","education",{"text":612,"config":613},"Financial services",{"href":614,"dataGaName":615,"dataGaLocation":454},"/solutions/finance/","financial services",{"title":178,"links":617},[618,620,622,624,627,629,632,634,636,638,640,642,644],{"text":191,"config":619},{"href":193,"dataGaName":194,"dataGaLocation":454},{"text":196,"config":621},{"href":198,"dataGaName":199,"dataGaLocation":454},{"text":201,"config":623},{"href":203,"dataGaName":204,"dataGaLocation":454},{"text":206,"config":625},{"href":208,"dataGaName":626,"dataGaLocation":454},"docs",{"text":229,"config":628},{"href":231,"dataGaName":232,"dataGaLocation":454},{"text":630,"config":631},"What's new",{"href":279,"dataGaName":280,"dataGaLocation":454},{"text":224,"config":633},{"href":226,"dataGaName":227,"dataGaLocation":454},{"text":238,"config":635},{"href":240,"dataGaName":241,"dataGaLocation":454},{"text":246,"config":637},{"href":248,"dataGaName":249,"dataGaLocation":454},{"text":251,"config":639},{"href":253,"dataGaName":254,"dataGaLocation":454},{"text":256,"config":641},{"href":258,"dataGaName":259,"dataGaLocation":454},{"text":261,"config":643},{"href":263,"dataGaName":264,"dataGaLocation":454},{"text":266,"config":645},{"href":268,"dataGaName":269,"dataGaLocation":454},{"title":282,"links":647},[648,650,652,654,656,658,662,667,669,671,673],{"text":290,"config":649},{"href":292,"dataGaName":284,"dataGaLocation":454},{"text":295,"config":651},{"href":297,"dataGaName":298,"dataGaLocation":454},{"text":303,"config":653},{"href":305,"dataGaName":306,"dataGaLocation":454},{"text":308,"config":655},{"href":310,"dataGaName":311,"dataGaLocation":454},{"text":313,"config":657},{"href":315,"dataGaName":316,"dataGaLocation":454},{"text":659,"config":660},"Sustainability",{"href":661,"dataGaName":659,"dataGaLocation":454},"/sustainability/",{"text":663,"config":664},"Diversity, inclusion and belonging (DIB)",{"href":665,"dataGaName":666,"dataGaLocation":454},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":318,"config":668},{"href":320,"dataGaName":321,"dataGaLocation":454},{"text":328,"config":670},{"href":330,"dataGaName":331,"dataGaLocation":454},{"text":333,"config":672},{"href":335,"dataGaName":336,"dataGaLocation":454},{"text":674,"config":675},"Modern Slavery Transparency Statement",{"href":676,"dataGaName":677,"dataGaLocation":454},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":679},[680,683,686],{"text":681,"config":682},"Terms",{"href":506,"dataGaName":507,"dataGaLocation":454},{"text":684,"config":685},"Cookies",{"dataGaName":516,"dataGaLocation":454,"id":517,"isOneTrustButton":16},{"text":687,"config":688},"Privacy",{"href":511,"dataGaName":512,"dataGaLocation":454},[690,698,705,713,721,729,737,744,751,758,765,773,780,787,794,801,808,815,822,829,836,843,850,857,864,871,877,884],{"title":691,"heroImage":692,"category":693,"description":694,"authors":695,"date":696,"slug":697,"externalUrl":6},"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","a-tale-of-two-editors",{"title":699,"heroImage":700,"category":284,"description":701,"authors":702,"date":703,"slug":704,"externalUrl":6},"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","how-you-can-help-shape-the-future-of-securing-applications-at-gitlab",{"title":706,"heroImage":707,"category":708,"description":709,"authors":710,"date":711,"slug":712,"externalUrl":6},"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","five-things-we-learned-from-you-in-recent-ux-research",{"title":714,"heroImage":715,"category":716,"description":717,"authors":718,"date":719,"slug":720,"externalUrl":6},"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","how-do-you-contribute",{"title":722,"heroImage":723,"category":284,"description":724,"authors":725,"date":727,"slug":728,"externalUrl":6},"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,726],"Rebecca Dodd","2019-01-10","gitlab-2018-year-in-review",{"title":730,"heroImage":731,"category":732,"description":733,"authors":734,"date":735,"slug":736,"externalUrl":6},"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","configure-post",{"title":738,"heroImage":739,"category":284,"description":740,"authors":741,"date":742,"slug":743,"externalUrl":6},"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","how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team",{"title":745,"heroImage":746,"category":732,"description":747,"authors":748,"date":749,"slug":750,"externalUrl":6},"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","why-you-should-join-the-gitlab-security-team",{"title":752,"heroImage":753,"category":693,"description":754,"authors":755,"date":756,"slug":757,"externalUrl":6},"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","managers-more-optimistic-than-developers",{"title":759,"heroImage":760,"category":284,"description":761,"authors":762,"date":763,"slug":764,"externalUrl":6},"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","watch-the-gitlab-summit-from-your-desk",{"title":766,"heroImage":767,"category":768,"description":769,"authors":770,"date":771,"slug":772,"externalUrl":6},"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","why-your-code-review-process-is-broken-and-how-to-fix-it",{"title":774,"heroImage":775,"category":693,"description":776,"authors":777,"date":778,"slug":779,"externalUrl":6},"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","learning-curve-is-the-biggest-challenge-developers-face-with-git",{"title":781,"heroImage":782,"category":768,"description":783,"authors":784,"date":785,"slug":786,"externalUrl":6},"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","inside-gitlabs-code-review-flow",{"title":788,"heroImage":789,"category":732,"description":790,"authors":791,"date":792,"slug":793,"externalUrl":6},"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","mapping-work-to-do-versus-time-with-burndown-charts",{"title":795,"heroImage":796,"category":693,"description":797,"authors":798,"date":799,"slug":800,"externalUrl":6},"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","how-innersourcing-can-help-your-security-team",{"title":802,"heroImage":803,"category":768,"description":804,"authors":805,"date":806,"slug":807,"externalUrl":6},"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","demo-mastering-code-review-with-gitlab",{"title":809,"heroImage":810,"category":768,"description":811,"authors":812,"date":813,"slug":814,"externalUrl":6},"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","buffer-and-gitlab-ceos-talk-transparency",{"title":816,"heroImage":817,"category":693,"description":818,"authors":819,"date":820,"slug":821,"externalUrl":6},"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","developers-crave-modern-tools",{"title":823,"heroImage":824,"category":732,"description":825,"authors":826,"date":827,"slug":828,"externalUrl":6},"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","designing-for-the-modern-developer-recap",{"title":830,"heroImage":831,"category":768,"description":832,"authors":833,"date":834,"slug":835,"externalUrl":6},"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","how-to-keep-remote-teams-engaged",{"title":837,"heroImage":838,"category":732,"description":839,"authors":840,"date":841,"slug":842,"externalUrl":6},"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","a-creative-agencys-gitlab-wishlist",{"title":844,"heroImage":845,"category":284,"description":846,"authors":847,"date":848,"slug":849,"externalUrl":6},"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","gitlab-at-does-2016",{"title":851,"heroImage":852,"category":716,"description":853,"authors":854,"date":855,"slug":856,"externalUrl":6},"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","why-vaadin-chose-gitlab",{"title":858,"heroImage":859,"category":732,"description":860,"authors":861,"date":862,"slug":863,"externalUrl":6},"'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","gitlab-is-a-slam-dunk",{"title":865,"heroImage":866,"category":284,"description":867,"authors":868,"date":869,"slug":870,"externalUrl":6},"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","gitlab-adoption-growing-at-cern",{"title":872,"heroImage":873,"category":716,"description":874,"authors":875,"date":869,"slug":876,"externalUrl":6},"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],"how-to-build-a-strong-dev-community",{"title":878,"heroImage":879,"category":284,"description":880,"authors":881,"date":882,"slug":883,"externalUrl":6},"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","cognitive-logic-talks-migrating-to-gitlab",{"title":885,"heroImage":886,"category":768,"description":887,"authors":888,"date":889,"slug":890,"externalUrl":6},"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","three-things-i-learned-in-my-first-month-at-gitlab",1781392674027]