[{"data":1,"prerenderedAt":919},["ShallowReactive",2],{"/blog/designing-for-the-modern-developer-recap":3,"navigation-en-us":155,"banner-en-us":587,"footer-en-us":597,"blog-post-authors-en-us-Emily von Hoffmann":858,"blog-related-posts-en-us-designing-for-the-modern-developer-recap":874,"blog-share-wrapper-en-us":899,"next-steps-en-us":909},{"id":4,"title":5,"authors":6,"body":8,"category":137,"date":138,"description":139,"extension":140,"externalUrl":141,"faq":141,"featured":142,"heroImage":143,"meta":144,"navigation":145,"path":146,"seo":147,"slug":151,"stem":152,"tags":141,"template":153,"updatedDate":141,"__hash__":154},"blogPosts/en-us/blog/designing-for-the-modern-developer-recap.md","Designing for the modern developer",[7],"Emily von Hoffmann",{"type":9,"value":10,"toc":124},"minimark",[11,15,18,21,33,38,43,49,53,58,62,67,71,76,80,85,89,94,103],[12,13,14],"p",{},"We're proud of how each team within the company delivers to make us better for every monthly release. Because GitLab spans the entire software development lifecycle, our UX team routinely tackles a series of unique creative challenges, which they discussed in depth in our recent webcast, \"Designing for the Modern Developer.\"",[12,16,17],{},"UX Lead Allison Whilden and UX Researcher Sarah O'Donnell chat about how the team designs the interface, responds to feedback, and helps fit new features into our understanding of the needs of all users.",[12,19,20],{},"Watch the recording and get the highlights below.",[22,23,26],"figure",{"className":24},[25],"video_container",[27,28,32],"iframe",{"src":29,"frameBorder":30,"allowFullScreen":31},"https://www.youtube.com/embed/nnL48m0m4qo","0","true"," ",[34,35,37],"h2",{"id":36},"highlights","Highlights",[39,40,42],"h3",{"id":41},"how-we-make-design-decisions","How we make design decisions",[44,45,46],"blockquote",{},[12,47,48],{},"At every stage, we carefully think through why decisions are made, and for whom. We have a number of methods that help us do this: research, testing, surveys, working with internal devs, and carrying on a constant conversation with our community.",[39,50,52],{"id":51},"users-of-our-own-design","Users of our own design",[44,54,55],{},[12,56,57],{},"We’re pretty unique in that every day, we use our own product. This gives us an intimate understanding of how the software is used. It empowers us as users with opinions, and also forces us to be extra thoughtful about removing bias from our evaluation of the UX. We take seriously that we need to represent all opinions, not just our own. UX is about calculated decisions, not anyone’s idea about what they like best. We naturally adopt a sort of split brain when using the software and observing user behavior--we empathize both as users and technical experts.",[39,59,61],{"id":60},"how-we-work-with-engineering-and-product","How we work with Engineering and Product",[44,63,64],{},[12,65,66],{},"Being a remote startup, we have a rather unique challenge of building a shared vision and perspective for UX while we are scattered across the world, and across features of the product. We’re working on this by documenting everything in our UX Guide, which you’re free to read through. More and more of the industry is becoming remote, so we’re excited to be experimenting with ways to stay connected. We believe that what we learn will be increasingly valuable to other companies. We navigate our relationship with the product team by understanding that they are both users & builders, too.",[39,68,70],{"id":69},"were-sensitive-to-different-needs-and-work-styles","We're sensitive to different needs and work styles",[44,72,73],{},[12,74,75],{},"We’re opinionated - we have a GitLab workflow, which we use at GitLab, the company, but we understand that not everyone works the way we do. Some of our company values, like extreme transparency, need to be made “optional” for users in other companies, for example when we think about how permissions work.\nWe also build things that we ourselves don’t currently need.",[39,77,79],{"id":78},"how-we-balance-feedback","How we balance feedback",[44,81,82],{},[12,83,84],{},"In order to keep up with releases and deliver minimum viable change, we need to amplify some voices. When we have to prioritize, we address issues from our Enterprise customers first, then from our outside community, and then from developers on our team.",[39,86,88],{"id":87},"our-ux-research-interests","Our UX research interests",[44,90,91],{},[12,92,93],{},"We want to build an understanding of who our users are and how they work. While we get a lot of great feedback from the community that is really helpful, we aren't always sure we are capturing the full range of our target users. We're developing personas that will allow us to relate to different types of users and subsequently predict their behavior. This is essential for our key challenge of creating a unified experience for teams big and small, so they can stay focused on their own goals.",[12,95,96,97,102],{},"You can learn more about this in our recent ",[98,99,101],"a",{"href":100},"/blog/the-importance-of-ux-personas/","blog post","!",[12,104,105,106,111,112,117,118,123],{},"Cover image: \"",[98,107,110],{"href":108,"rel":109},"https://www.flickr.com/photos/hernaniarruda/16024464453",[],"sampa","\" by ",[98,113,116],{"href":114,"rel":115},"https://www.flickr.com/photos/hernaniarruda/",[],"Hernani Arruda Monteiro da Silva"," is licensed under ",[98,119,122],{"href":120,"rel":121},"https://creativecommons.org/licenses/by/2.0/legalcode",[],"CC BY 2.0",".",{"title":125,"searchDepth":126,"depth":126,"links":127},"",2,[128],{"id":36,"depth":126,"text":37,"children":129},[130,132,133,134,135,136],{"id":41,"depth":131,"text":42},3,{"id":51,"depth":131,"text":52},{"id":60,"depth":131,"text":61},{"id":69,"depth":131,"text":70},{"id":78,"depth":131,"text":79},{"id":87,"depth":131,"text":88},"engineering","2017-01-24","Recap and recording from our recent webcast featuring the GitLab user experience (UX) team","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683970/Blog/Hero%20Images/designing-for-the-modern-developer.jpg",{},true,"/en-us/blog/designing-for-the-modern-developer-recap",{"title":5,"description":139,"ogTitle":5,"ogDescription":139,"noIndex":142,"ogImage":143,"ogUrl":148,"ogSiteName":149,"ogType":150,"canonicalUrls":148},"https://about.gitlab.com/blog/designing-for-the-modern-developer-recap","https://about.gitlab.com","article","designing-for-the-modern-developer-recap","en-us/blog/designing-for-the-modern-developer-recap","BlogPost","rOW6F33aPXrPJUSL4JXs2nrWvgvHlANiaV2emcK1cE4",{"logo":156,"freeTrial":161,"sales":166,"login":171,"items":176,"search":507,"minimal":538,"duo":557,"switchNav":566,"pricingDeployment":577},{"config":157},{"href":158,"dataGaName":159,"dataGaLocation":160},"/","gitlab logo","header",{"text":162,"config":163},"Get free trial",{"href":164,"dataGaName":165,"dataGaLocation":160},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":167,"config":168},"Request a demo",{"href":169,"dataGaName":170,"dataGaLocation":160},"/request-a-demo/","sales",{"text":172,"config":173},"Sign in",{"href":174,"dataGaName":175,"dataGaLocation":160},"https://gitlab.com/users/sign_in/","sign in",[177,263,351,356,431,485],{"text":178,"left":145,"config":179,"menu":181},"Platform",{"dataNavLevelOne":180},"platform",{"type":182,"link":183,"columns":187,"feature":252},"lists",{"text":184,"config":185},"Explore the Platform",{"href":186,"dataGaName":180,"dataGaLocation":160},"/platform/",[188,211,234],{"title":189,"items":190},"Execution & Workflows",[191,196,201,206],{"text":192,"config":193},"CI/CD",{"href":194,"dataGaLocation":160,"dataGaName":195},"/solutions/continuous-integration/","ci/cd",{"text":197,"config":198},"Source Code Management",{"href":199,"dataGaLocation":160,"dataGaName":200},"/solutions/source-code-management/","source code management",{"text":202,"config":203},"Agile Delivery",{"href":204,"dataGaLocation":160,"dataGaName":205},"/solutions/agile-delivery/","agile delivery",{"text":207,"config":208},"Artifact Management",{"href":209,"dataGaLocation":160,"dataGaName":210},"/artifact-central/","artifact management",{"title":212,"items":213},"Security & Governance",[214,219,224,229],{"text":215,"config":216},"Application Security Testing",{"href":217,"dataGaLocation":160,"dataGaName":218},"/solutions/application-security-testing/","application security testing",{"text":220,"config":221},"Governance & Compliance",{"href":222,"dataGaLocation":160,"dataGaName":223},"/solutions/software-compliance/","governance and compliance",{"text":225,"config":226},"Secrets Management",{"href":227,"dataGaLocation":160,"dataGaName":228},"/gitlab-secrets-manager/","secrets management",{"text":230,"config":231},"Supply Chain Security",{"href":232,"dataGaLocation":160,"dataGaName":233},"/solutions/supply-chain/","supply chain security",{"title":235,"items":236},"Context & AI",[237,242,247],{"text":238,"config":239},"Agentic Orchestration",{"href":240,"dataGaLocation":160,"dataGaName":241},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":243,"config":244},"Context Graph",{"href":245,"dataGaLocation":160,"dataGaName":246},"/gitlab-orbit/","context graph",{"text":248,"config":249},"Visibility & Measurement",{"href":250,"dataGaLocation":160,"dataGaName":251},"/solutions/visibility-measurement/","visibility and measurement",{"config":253,"title":256,"text":257,"link":258},{"background":254,"textColor":255},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":259,"config":260},"Learn more",{"href":261,"dataGaName":262,"dataGaLocation":160},"/why-gitlab/","why gitlab",{"text":264,"left":145,"config":265,"menu":267},"Solutions",{"dataNavLevelOne":266},"solutions",{"type":182,"link":268,"columns":272,"feature":342},{"text":269,"config":270},"View all Solutions",{"href":271,"dataGaName":266,"dataGaLocation":160},"/solutions/",[273,291,309],{"title":274,"items":275},"Outcomes",[276,281,286],{"text":277,"config":278},"DevOps Modernization",{"href":279,"dataGaLocation":160,"dataGaName":280},"/assessments/devops-modernization-assessment/","devops modernization",{"text":282,"config":283},"Security Modernization",{"href":284,"dataGaLocation":160,"dataGaName":285},"/assessments/security-modernization-assessment/","security modernization",{"text":287,"config":288},"AI Modernization",{"href":289,"dataGaLocation":160,"dataGaName":290},"/assessments/ai-modernization-assessment/","ai modernization",{"title":292,"items":293},"By size",[294,299,304],{"text":295,"config":296},"Enterprise",{"href":297,"dataGaLocation":160,"dataGaName":298},"/enterprise/","enterprise",{"text":300,"config":301},"Small Business",{"href":302,"dataGaLocation":160,"dataGaName":303},"/small-business/","small business",{"text":305,"config":306},"Startups",{"href":307,"dataGaLocation":160,"dataGaName":308},"/solutions/startups/","startups",{"title":310,"items":311},"Industries",[312,317,322,327,332,337],{"text":313,"config":314},"Financial Services",{"href":315,"dataGaLocation":160,"dataGaName":316},"/solutions/finance/","financial services",{"text":318,"config":319},"Public Sector",{"href":320,"dataGaLocation":160,"dataGaName":321},"/solutions/public-sector/","public sector",{"text":323,"config":324},"Telecommunications",{"href":325,"dataGaLocation":160,"dataGaName":326},"/solutions/telecommunications/","telecommunications",{"text":328,"config":329},"Automotive",{"href":330,"dataGaLocation":160,"dataGaName":331},"/solutions/automotive/","automotive",{"text":333,"config":334},"Education",{"href":335,"dataGaLocation":160,"dataGaName":336},"/solutions/education/","education",{"text":338,"config":339},"Aerospace",{"href":340,"dataGaLocation":160,"dataGaName":341},"/solutions/aerospace/","aerospace",{"config":343,"title":344,"text":345,"link":346},{"background":254,"textColor":255},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":347,"config":348},"Explore the standard",{"href":349,"dataGaName":350,"dataGaLocation":160},"/gitlab-security-standard/","gitlab security standard",{"text":352,"config":353},"Pricing",{"href":354,"dataGaName":355,"dataGaLocation":160,"dataNavLevelOne":355},"/pricing/","pricing",{"text":357,"config":358,"menu":360},"Resources",{"dataNavLevelOne":359},"resources",{"type":182,"link":361,"columns":365,"feature":422},{"text":362,"config":363},"View all resources",{"href":364,"dataGaName":359,"dataGaLocation":160},"/resources/",[366,394],{"title":367,"items":368},"Discover",[369,374,379,384,389],{"text":370,"config":371},"Docs",{"href":372,"dataGaName":373,"dataGaLocation":160},"https://docs.gitlab.com/","docs",{"text":375,"config":376},"University",{"href":377,"dataGaName":378,"dataGaLocation":160},"https://university.gitlab.com/","university",{"text":380,"config":381},"Demo Series",{"href":382,"dataGaName":383,"dataGaLocation":160},"/gitlab-technical-demo-series/","demo series",{"text":385,"config":386},"Demo Hub",{"href":387,"dataGaName":388,"dataGaLocation":160},"/demo-hub/","demo hub",{"text":390,"config":391},"Services",{"href":392,"dataGaName":393,"dataGaLocation":160},"/services/","services",{"title":395,"items":396},"Connect",[397,402,407,412,417],{"text":398,"config":399},"Blog",{"href":400,"dataGaName":401,"dataGaLocation":160},"/blog/","blog",{"text":403,"config":404},"Community",{"href":405,"dataGaName":406,"dataGaLocation":160},"/community/","community",{"text":408,"config":409},"Customers",{"href":410,"dataGaName":411,"dataGaLocation":160},"/customers/","customers",{"text":413,"config":414},"Partners",{"href":415,"dataGaName":416,"dataGaLocation":160},"/partners/","partners",{"text":418,"config":419},"Events",{"href":420,"dataGaName":421,"dataGaLocation":160},"/events/","events",{"config":423,"title":424,"text":425,"link":426},{"background":254,"textColor":255},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":427,"config":428},"Read the latest",{"href":429,"dataGaName":430,"dataGaLocation":160},"/whats-new/","whats new",{"text":432,"config":433,"menu":435},"Company",{"dataNavLevelOne":434},"company",{"type":182,"columns":436},[437],{"items":438},[439,444,450,455,460,465,470,475,480],{"text":440,"config":441},"About",{"href":442,"dataGaName":443,"dataGaLocation":160},"/company/","about",{"text":445,"config":446,"footerGa":449},"Jobs",{"href":447,"dataGaName":448,"dataGaLocation":160},"/jobs/","jobs",{"dataGaName":448},{"text":451,"config":452},"Press",{"href":453,"dataGaName":454,"dataGaLocation":160},"/press/","press",{"text":456,"config":457},"Handbook",{"href":458,"dataGaName":459,"dataGaLocation":160},"https://handbook.gitlab.com/","handbook",{"text":461,"config":462},"Leadership",{"href":463,"dataGaName":464,"dataGaLocation":160},"/company/team/e-group/","leadership",{"text":466,"config":467},"Investor relations",{"href":468,"dataGaName":469,"dataGaLocation":160},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":471,"config":472},"Trust Center",{"href":473,"dataGaName":474,"dataGaLocation":160},"/security/","trust center",{"text":476,"config":477},"AI Transparency Center",{"href":478,"dataGaName":479,"dataGaLocation":160},"/ai-transparency-center/","ai transparency center",{"text":481,"config":482},"Newsletter",{"href":483,"dataGaName":484,"dataGaLocation":160},"/company/contact/#contact-forms","newsletter",{"text":486,"config":487,"menu":488},"Contact us",{"dataNavLevelOne":434},{"type":182,"columns":489},[490],{"items":491},[492,497,502],{"text":493,"config":494},"Talk to sales",{"href":495,"dataGaName":496,"dataGaLocation":160},"/sales/","talk to sales",{"text":498,"config":499},"Support portal",{"href":500,"dataGaName":501,"dataGaLocation":160},"https://support.gitlab.com/hc/en-us","support portal",{"text":503,"config":504},"Customer portal",{"href":505,"dataGaName":506,"dataGaLocation":160},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":508,"login":509,"suggestions":516},"Close",{"text":510,"link":511},"To search repositories and projects, login to",{"text":512,"config":513},"gitlab.com",{"href":174,"dataGaName":514,"dataGaLocation":515},"search login","search",{"text":517,"default":518},"Suggestions",[519,522,525,527,531,535],{"text":520,"config":521},"GitLab Duo Agent Platform",{"href":240,"dataGaName":520,"dataGaLocation":515},{"text":523,"config":524},"Code Suggestions (AI)",{"href":240,"dataGaName":523,"dataGaLocation":515},{"text":192,"config":526},{"href":194,"dataGaName":192,"dataGaLocation":515},{"text":528,"config":529},"GitLab on AWS",{"href":530,"dataGaName":528,"dataGaLocation":515},"/partners/technology-partners/aws/",{"text":532,"config":533},"GitLab on Google Cloud",{"href":534,"dataGaName":532,"dataGaLocation":515},"/partners/technology-partners/google-cloud-platform/",{"text":536,"config":537},"Why GitLab?",{"href":261,"dataGaName":536,"dataGaLocation":515},{"freeTrial":539,"mobileIcon":544,"desktopIcon":549,"secondaryButton":552},{"text":540,"config":541},"Start free trial",{"href":542,"dataGaName":165,"dataGaLocation":543},"https://gitlab.com/-/trials/new/","nav",{"altText":545,"config":546},"Gitlab Icon",{"src":547,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":545,"config":550},{"src":551,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":553,"config":554},"Get Started",{"href":555,"dataGaName":556,"dataGaLocation":543},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":558,"mobileIcon":562,"desktopIcon":564},{"text":559,"config":560},"Learn more about GitLab Duo",{"href":240,"dataGaName":561,"dataGaLocation":543},"gitlab duo",{"altText":545,"config":563},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":565},{"src":551,"dataGaName":548,"dataGaLocation":543},{"button":567,"mobileIcon":572,"desktopIcon":574},{"text":568,"config":569},"/switch",{"href":570,"dataGaName":571,"dataGaLocation":543},"#contact","switch",{"altText":545,"config":573},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":575},{"src":576,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":578,"mobileIcon":583,"desktopIcon":585},{"text":579,"config":580},"Back to pricing",{"href":354,"dataGaName":581,"dataGaLocation":543,"icon":582},"back to pricing","GoBack",{"altText":545,"config":584},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":586},{"src":551,"dataGaName":548,"dataGaLocation":543},{"title":588,"button":589,"config":595},"Ship at agent speed. Prove every step. Transcend is here.",{"text":590,"config":591},"Watch now",{"href":592,"dataGaName":593,"dataGaLocation":594},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":596,"disabled":142},"release",{"data":598},{"text":599,"source":600,"edit":606,"contribute":611,"config":616,"items":621,"minimal":847},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":601,"config":602},"View page source",{"href":603,"dataGaName":604,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":607,"config":608},"Edit this page",{"href":609,"dataGaName":610,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":612,"config":613},"Please contribute",{"href":614,"dataGaName":615,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":617,"facebook":618,"youtube":619,"linkedin":620},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[622,669,727,774,815],{"title":352,"links":623,"subMenu":638},[624,628,633],{"text":625,"config":626},"View plans",{"href":354,"dataGaName":627,"dataGaLocation":605},"view plans",{"text":629,"config":630},"Why Premium?",{"href":631,"dataGaName":632,"dataGaLocation":605},"/pricing/premium/","why premium",{"text":634,"config":635},"Why Ultimate?",{"href":636,"dataGaName":637,"dataGaLocation":605},"/pricing/ultimate/","why ultimate",[639],{"title":640,"links":641},"Contact Us",[642,645,647,649,654,659,664],{"text":643,"config":644},"Contact sales",{"href":495,"dataGaName":170,"dataGaLocation":605},{"text":498,"config":646},{"href":500,"dataGaName":501,"dataGaLocation":605},{"text":503,"config":648},{"href":505,"dataGaName":506,"dataGaLocation":605},{"text":650,"config":651},"Status",{"href":652,"dataGaName":653,"dataGaLocation":605},"https://status.gitlab.com/","status",{"text":655,"config":656},"Terms of use",{"href":657,"dataGaName":658,"dataGaLocation":605},"/terms/","terms of use",{"text":660,"config":661},"Privacy statement",{"href":662,"dataGaName":663,"dataGaLocation":605},"/privacy/","privacy statement",{"text":665,"config":666},"Cookie preferences",{"dataGaName":667,"dataGaLocation":605,"id":668,"isOneTrustButton":145},"cookie preferences","ot-sdk-btn",{"title":178,"links":670,"subMenu":684},[671,674,676,678,680,682],{"text":672,"config":673},"Explore the platform",{"href":186,"dataGaName":180,"dataGaLocation":605},{"text":238,"config":675},{"href":240,"dataGaName":241,"dataGaLocation":605},{"text":192,"config":677},{"href":194,"dataGaName":195,"dataGaLocation":605},{"text":243,"config":679},{"href":245,"dataGaName":246,"dataGaLocation":605},{"text":225,"config":681},{"href":227,"dataGaName":228,"dataGaLocation":605},{"text":256,"config":683},{"href":261,"dataGaName":262,"dataGaLocation":605},[685],{"title":686,"links":687},"Topics",[688,692,697,702,707,712,717,722],{"text":192,"config":689},{"href":690,"dataGaName":691,"dataGaLocation":605},"/topics/ci-cd/","cicd",{"text":693,"config":694},"GitOps",{"href":695,"dataGaName":696,"dataGaLocation":605},"/topics/gitops/","gitops",{"text":698,"config":699},"DevOps",{"href":700,"dataGaName":701,"dataGaLocation":605},"/topics/devops/","devops",{"text":703,"config":704},"Version Control",{"href":705,"dataGaName":706,"dataGaLocation":605},"/topics/version-control/","version control",{"text":708,"config":709},"DevSecOps",{"href":710,"dataGaName":711,"dataGaLocation":605},"/topics/devsecops/","devsecops",{"text":713,"config":714},"Cloud Native",{"href":715,"dataGaName":716,"dataGaLocation":605},"/topics/cloud-native/","cloud native",{"text":718,"config":719},"AI for Coding",{"href":720,"dataGaName":721,"dataGaLocation":605},"/topics/devops/ai-for-coding/","ai for coding",{"text":723,"config":724},"Agentic AI",{"href":725,"dataGaName":726,"dataGaLocation":605},"/topics/agentic-ai/","agentic ai",{"title":264,"links":728},[729,732,735,738,741,744,746,748,750,752,754,757,759,762,766,770],{"text":730,"config":731},"DevOps modernization",{"href":279,"dataGaName":280,"dataGaLocation":605},{"text":733,"config":734},"Security modernization",{"href":284,"dataGaName":285,"dataGaLocation":605},{"text":736,"config":737},"AI modernization",{"href":289,"dataGaName":290,"dataGaLocation":605},{"text":739,"config":740},"Financial services",{"href":315,"dataGaName":316,"dataGaLocation":605},{"text":742,"config":743},"Public sector",{"href":320,"dataGaName":321,"dataGaLocation":605},{"text":323,"config":745},{"href":325,"dataGaName":326,"dataGaLocation":605},{"text":328,"config":747},{"href":330,"dataGaName":331,"dataGaLocation":605},{"text":333,"config":749},{"href":335,"dataGaName":336,"dataGaLocation":605},{"text":338,"config":751},{"href":340,"dataGaName":341,"dataGaLocation":605},{"text":295,"config":753},{"href":297,"dataGaName":298,"dataGaLocation":605},{"text":755,"config":756},"Small business",{"href":302,"dataGaName":303,"dataGaLocation":605},{"text":305,"config":758},{"href":307,"dataGaName":308,"dataGaLocation":605},{"text":693,"config":760},{"href":761,"dataGaName":696,"dataGaLocation":605},"/solutions/gitops/",{"text":763,"config":764},"Software composition analysis",{"href":232,"dataGaName":765,"dataGaLocation":605},"software composition analysis",{"text":767,"config":768},"Value stream management",{"href":250,"dataGaName":769,"dataGaLocation":605},"value stream management",{"text":771,"config":772},"All solutions",{"href":271,"dataGaName":773,"dataGaLocation":605},"all solutions",{"title":357,"links":775},[776,781,786,788,790,792,794,796,798,800,802,804,806,808,811],{"text":777,"config":778},"Install",{"href":779,"dataGaName":780,"dataGaLocation":605},"/install/","install",{"text":782,"config":783},"Quick start guides",{"href":784,"dataGaName":785,"dataGaLocation":605},"/get-started/","quick setup checklists",{"text":370,"config":787},{"href":372,"dataGaName":373,"dataGaLocation":605},{"text":375,"config":789},{"href":377,"dataGaName":378,"dataGaLocation":605},{"text":380,"config":791},{"href":382,"dataGaName":383,"dataGaLocation":605},{"text":385,"config":793},{"href":387,"dataGaName":388,"dataGaLocation":605},{"text":390,"config":795},{"href":392,"dataGaName":393,"dataGaLocation":605},{"text":398,"config":797},{"href":400,"dataGaName":401,"dataGaLocation":605},{"text":403,"config":799},{"href":405,"dataGaName":406,"dataGaLocation":605},{"text":408,"config":801},{"href":410,"dataGaName":411,"dataGaLocation":605},{"text":413,"config":803},{"href":415,"dataGaName":416,"dataGaLocation":605},{"text":418,"config":805},{"href":420,"dataGaName":421,"dataGaLocation":605},{"text":481,"config":807},{"href":483,"dataGaName":484,"dataGaLocation":605},{"text":809,"config":810},"What's new",{"href":429,"dataGaName":430,"dataGaLocation":605},{"text":812,"config":813},"All resources",{"href":364,"dataGaName":814,"dataGaLocation":605},"all resources",{"title":432,"links":816},[817,819,821,823,825,827,829,831,833,837,842],{"text":440,"config":818},{"href":442,"dataGaName":434,"dataGaLocation":605},{"text":445,"config":820},{"href":447,"dataGaName":448,"dataGaLocation":605},{"text":451,"config":822},{"href":453,"dataGaName":454,"dataGaLocation":605},{"text":456,"config":824},{"href":458,"dataGaName":459,"dataGaLocation":605},{"text":461,"config":826},{"href":463,"dataGaName":464,"dataGaLocation":605},{"text":466,"config":828},{"href":468,"dataGaName":469,"dataGaLocation":605},{"text":471,"config":830},{"href":473,"dataGaName":474,"dataGaLocation":605},{"text":476,"config":832},{"href":478,"dataGaName":479,"dataGaLocation":605},{"text":834,"config":835},"Sustainability",{"href":836,"dataGaName":834,"dataGaLocation":605},"/sustainability/",{"text":838,"config":839},"Diversity, inclusion and belonging (DIB)",{"href":840,"dataGaName":841,"dataGaLocation":605},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":843,"config":844},"Modern Slavery Transparency Statement",{"href":845,"dataGaName":846,"dataGaLocation":605},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":848},[849,852,855],{"text":850,"config":851},"Terms",{"href":657,"dataGaName":658,"dataGaLocation":605},{"text":853,"config":854},"Cookies",{"dataGaName":667,"dataGaLocation":605,"id":668,"isOneTrustButton":145},{"text":856,"config":857},"Privacy",{"href":662,"dataGaName":663,"dataGaLocation":605},[859],{"id":860,"title":861,"body":141,"config":862,"content":864,"description":141,"extension":868,"meta":869,"navigation":145,"path":870,"seo":871,"stem":872,"__hash__":873},"blogAuthors/en-us/blog/authors/emily-von-hoffmann.yml","Emily Von Hoffmann",{"template":863},"BlogAuthor",{"name":7,"config":865},{"headshot":866,"ctfId":867},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","evhoffmann","yml",{},"/en-us/blog/authors/emily-von-hoffmann",{},"en-us/blog/authors/emily-von-hoffmann","zBEVnM69VnbjDNRxhqMvtqH47MYHt1wraGaN6nBYmAU",[875,883,891],{"title":876,"description":877,"heroImage":878,"category":137,"date":879,"authors":880,"slug":882,"externalUrl":141},"Two front doors: Module-level access in a Django GRC app","A technical deep-dive on restructuring a Django internal tool to support two distinct GitLab teams: Security Compliance and Internal Audit.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","2026-10-05",[881],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":884,"description":885,"heroImage":886,"category":137,"date":887,"authors":888,"slug":890,"externalUrl":141},"How GitLab reduced code-per-agentic-flow ratio by 45%","Learn how Flow Registry, a component-based framework that compiles YAML configurations into fully functional LangGraph flows, helped improve scalability and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-09-22",[889],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":892,"description":893,"heroImage":894,"category":137,"date":895,"authors":896,"slug":898,"externalUrl":141},"Co-Create: Building GitLab with our users","How GitLab users collaborated with us to build practical product improvements in the first half of 2026.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-09-10",[897],"Isa Huerga","co-create-h1-2026",{"header":900,"text":901,"button":905,"disclaimer":908},"Start your free\n\n30-day GitLab trial\n",[902,903,904],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":162,"config":906},{"href":907,"dataGaName":165,"dataGaLocation":401},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":910,"blurb":911,"button":912,"secondaryButton":917},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":913,"config":914},"Get your free trial",{"href":915,"dataGaName":165,"dataGaLocation":916},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":643,"config":918},{"href":495,"dataGaName":170,"dataGaLocation":916},1792010333149]