[{"data":1,"prerenderedAt":930},["ShallowReactive",2],{"/blog/a-creative-agencys-gitlab-wishlist":3,"navigation-en-us":168,"banner-en-us":599,"footer-en-us":609,"blog-post-authors-en-us-Emily von Hoffmann":869,"blog-related-posts-en-us-a-creative-agencys-gitlab-wishlist":885,"blog-share-wrapper-en-us":910,"next-steps-en-us":920},{"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":158,"path":159,"seo":160,"slug":164,"stem":165,"tags":141,"template":166,"updatedDate":141,"__hash__":167},"blogPosts/en-us/blog/a-creative-agencys-gitlab-wishlist.md","Customer story: A creative agency's GitLab wishlist",[7],"Emily von Hoffmann",{"type":9,"value":10,"toc":133},"minimark",[11,33,36,49,56,62,67,72,77,82,85,106,118],[12,13,14,20,21,26,27,32],"p",{},[15,16,19],"a",{"href":17,"rel":18},"https://twitter.com/wvkuipers",[],"Wouter van Kuipers"," is an engineer at ",[15,22,25],{"href":23,"rel":24},"https://www.lukkien.com/",[],"Lukkien",", a creative agency that produces online media, photography, film, apps, CGI, and graphic design. His team currently works on a platform aimed at parents and healthcare professionals. They've used a combination of Jenkins and GitLab, although they are switching to GitLab CI for testing. He told me his team tends to use the collaboration tools of GitLab the most. Before GitLab, they used SVN, and ultimately decided on GitLab instead of a competitor because they needed to host on-premises for security reasons. Our service engineer ",[15,28,31],{"href":29,"rel":30},"https://twitter.com/leematos",[],"Lee Matos"," sat down with Wouter to learn about how GitLab can help.",[12,34,35],{},"Here are some items discussed below and requested by the Lukkien team:",[37,38,39,43,46],"ul",{},[40,41,42],"li",{},"A view that will let you see changes over builds, and how builds are affected over time.",[40,44,45],{},"Notifications around CI builds, so if there are any related tickets, those get updated as well.",[40,47,48],{},"Versioning for Photoshop and InDesign files.",[12,50,51,55],{},[52,53,54],"strong",{},"Wouter:"," We struggle as a team and company to find a good versioning system for our (UX) designs. Right now we create separate folders and label the versions of our InDesign and Photoshop files. We want to know the latest version, but also want to have a clear visual representation of the changes between versions. Is there any planning for tooling like that in GitLab in the (near) feature?",[12,57,58,61],{},[52,59,60],{},"Lee:"," Frankly, this is on our dream feature list. I think everybody on our team wants to be able to version Photoshop and InDesign documents, but we don’t have a good solution for those files right now that's going to work smoothly. It looks like Adobe is getting into the versioning space for files like these, so there’s a silver lining here in that once Adobe solves that problem, we’ll probably do something similar quickly thereafter.",[12,63,64,66],{},[52,65,54],{}," My next question is that we are hosting GitLab using a Docker setup, this works quite well but we are not sure if this will create limitations in the long run, for example if we want to use Mattermost in the future? My team has 8-10 developers, but we use the setup for all our teams, we’re all in the same GitLab instance. So that’s 100-120 developers.",[12,68,69,71],{},[52,70,60],{}," That's what I would call GitLab Small/Medium-sized. As it stands, we think that will be fine, there are no limitations even with Mattermost and we don’t expect there to be any problems. Obviously if there are, we’ll explore that with you and figure it out. Our product team leads aren't aware of running GitLab in Docker at a big scale (1000+) – most of those clients are running it directly in a VM or Bare Metal. We feel that obviously Docker is the future so we need to find the answer to these questions. If you run into anything, please bring it up in an issue. And the same goes for Docker in Mattermost, we don’t expect anything different.",[12,73,74,76],{},[52,75,54],{}," Finally, in what way does GitLab want to position itself in the long run compared to GitHub?",[12,78,79,81],{},[52,80,60],{}," The best way to think about it, for me, is we are actually more like Atlassian. Our end goal is to build what Atlassian ended up with by acquiring the little pieces, by instead building those parts and making them 100 percent cohesive. So it’s more about building an end-to-end development tool that allows your team to work together and converse and go. Our buzz phrase at this point is \"From idea to production\", so we want to cover everything over that process, and make it faster, whatever you’re using GitLab for. That’s even our goal internally as well, so it excites me because we’re actually using GitLab to build it.",[12,83,84],{},"I think GitHub is positioning itself as more of a core component, they see Git and code as the core thing that needs to be solved, and are leaving integrations up to the third parties. We have integrations and we see the value in them, but we want to build something that allows you to start making things work out of the box. Instead of saying \"You need to go buy Drone CI, you need to use Waffle.io, and need to wire them all up and read 10 different documentations to figure it out.\" We want that process to be as easy as possible.",[12,86,87,88,93,94,99,100,105],{},"Image ",[15,89,92],{"href":90,"rel":91},"https://www.flickr.com/photos/lennykphotography/26687024535/in/photolist-GEeYCF-hUAGKL-nQCwXy-Emhqdz-HRUzeG-EeGxU4-p2KCQa-Eroe6z-e4BpVm-dcZWfj-mQnNTJ-atd2f5-DSYEyA-DSqqGk-DFXwUA-aHPQVk-GucZJZ-EDGjje-CS8FYi-rymZ62-EBjtSY-DSfzQT-avJQMx-aYtqkR-CztMC7-dTRM3q-EPK3hD-DpeasQ-f2hdPB-eRwBGC-EoaxPD-b18F74-9sd1No-bkNuRx-byvPzZ-hxRZyb-D7F1xM-EVqmsh-CVBJBa-9pnw9W-eBWbNx-ftZrun-DXtJuT-p8As5e-DWQhdR-bkNdg7-oQCcaJ-b3JagT-8VoF1U-cgzLCU",[],"\"Lightroom Preset Balloon Release\""," by ",[15,95,98],{"href":96,"rel":97},"https://www.flickr.com/photos/lennykphotography/",[],"Lenny K Photography"," is licensed under ",[15,101,104],{"href":102,"rel":103},"https://creativecommons.org/licenses/by/4.0/legalcode",[],"CC BY 4.0",".",[12,107,108],{},[109,110,111,112,117],"em",{},"We want you to ask us anything! If you're a user interested in sharing your story on our blog, please fill out this ",[15,113,116],{"href":114,"rel":115},"https://docs.google.com/a/gitlab.com/forms/d/1K8ZTS1QvSSPos6mVh1ol8ZyagInYctX3fb9eglzeK70/edit",[],"form"," and we’ll get in touch!",[12,119,120],{},[109,121,122,123,128,129,105],{},"Tweet us ",[15,124,127],{"href":125,"rel":126},"https://twitter.com/gitlab",[],"@GitLab"," and check out our ",[15,130,132],{"href":131},"/jobs/","job openings",{"title":134,"searchDepth":135,"depth":135,"links":136},"",2,[],"engineering","2016-12-15","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.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670681/Blog/Hero%20Images/a-creative-agencys-gitlab-wishlist.jpg",{"excerpt":145},{"type":9,"value":146},[147],[12,148,149,20,152,26,155,32],{},[15,150,19],{"href":17,"rel":151},[],[15,153,25],{"href":23,"rel":154},[],[15,156,31],{"href":29,"rel":157},[],true,"/en-us/blog/a-creative-agencys-gitlab-wishlist",{"title":5,"description":139,"ogTitle":5,"ogDescription":139,"noIndex":142,"ogImage":143,"ogUrl":161,"ogSiteName":162,"ogType":163,"canonicalUrls":161},"https://about.gitlab.com/blog/a-creative-agencys-gitlab-wishlist","https://about.gitlab.com","article","a-creative-agencys-gitlab-wishlist","en-us/blog/a-creative-agencys-gitlab-wishlist","BlogPost","GGnubUjhhD1YxMGM6LIYenXXN9n-bjcAwz99QInkCf0",{"logo":169,"freeTrial":174,"sales":179,"login":184,"items":189,"search":519,"minimal":550,"duo":569,"switchNav":578,"pricingDeployment":589},{"config":170},{"href":171,"dataGaName":172,"dataGaLocation":173},"/","gitlab logo","header",{"text":175,"config":176},"Get free trial",{"href":177,"dataGaName":178,"dataGaLocation":173},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":180,"config":181},"Request a demo",{"href":182,"dataGaName":183,"dataGaLocation":173},"/request-a-demo/","sales",{"text":185,"config":186},"Sign in",{"href":187,"dataGaName":188,"dataGaLocation":173},"https://gitlab.com/users/sign_in/","sign in",[190,276,364,369,444,497],{"text":191,"left":158,"config":192,"menu":194},"Platform",{"dataNavLevelOne":193},"platform",{"type":195,"link":196,"columns":200,"feature":265},"lists",{"text":197,"config":198},"Explore the Platform",{"href":199,"dataGaName":193,"dataGaLocation":173},"/platform/",[201,224,247],{"title":202,"items":203},"Execution & Workflows",[204,209,214,219],{"text":205,"config":206},"CI/CD",{"href":207,"dataGaLocation":173,"dataGaName":208},"/solutions/continuous-integration/","ci/cd",{"text":210,"config":211},"Source Code Management",{"href":212,"dataGaLocation":173,"dataGaName":213},"/solutions/source-code-management/","source code management",{"text":215,"config":216},"Agile Delivery",{"href":217,"dataGaLocation":173,"dataGaName":218},"/solutions/agile-delivery/","agile delivery",{"text":220,"config":221},"Artifact Management",{"href":222,"dataGaLocation":173,"dataGaName":223},"/artifact-central/","artifact management",{"title":225,"items":226},"Security & Governance",[227,232,237,242],{"text":228,"config":229},"Application Security Testing",{"href":230,"dataGaLocation":173,"dataGaName":231},"/solutions/application-security-testing/","application security testing",{"text":233,"config":234},"Governance & Compliance",{"href":235,"dataGaLocation":173,"dataGaName":236},"/solutions/software-compliance/","governance and compliance",{"text":238,"config":239},"Secrets Management",{"href":240,"dataGaLocation":173,"dataGaName":241},"/gitlab-secrets-manager/","secrets management",{"text":243,"config":244},"Supply Chain Security",{"href":245,"dataGaLocation":173,"dataGaName":246},"/solutions/supply-chain/","supply chain security",{"title":248,"items":249},"Context & AI",[250,255,260],{"text":251,"config":252},"Agentic Orchestration",{"href":253,"dataGaLocation":173,"dataGaName":254},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":256,"config":257},"Context Graph",{"href":258,"dataGaLocation":173,"dataGaName":259},"/gitlab-orbit/","context graph",{"text":261,"config":262},"Visibility & Measurement",{"href":263,"dataGaLocation":173,"dataGaName":264},"/solutions/visibility-measurement/","visibility and measurement",{"config":266,"title":269,"text":270,"link":271},{"background":267,"textColor":268},"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":272,"config":273},"Learn more",{"href":274,"dataGaName":275,"dataGaLocation":173},"/why-gitlab/","why gitlab",{"text":277,"left":158,"config":278,"menu":280},"Solutions",{"dataNavLevelOne":279},"solutions",{"type":195,"link":281,"columns":285,"feature":355},{"text":282,"config":283},"View all Solutions",{"href":284,"dataGaName":279,"dataGaLocation":173},"/solutions/",[286,304,322],{"title":287,"items":288},"Outcomes",[289,294,299],{"text":290,"config":291},"DevOps Modernization",{"href":292,"dataGaLocation":173,"dataGaName":293},"/assessments/devops-modernization-assessment/","devops modernization",{"text":295,"config":296},"Security Modernization",{"href":297,"dataGaLocation":173,"dataGaName":298},"/assessments/security-modernization-assessment/","security modernization",{"text":300,"config":301},"AI Modernization",{"href":302,"dataGaLocation":173,"dataGaName":303},"/assessments/ai-modernization-assessment/","ai modernization",{"title":305,"items":306},"By size",[307,312,317],{"text":308,"config":309},"Enterprise",{"href":310,"dataGaLocation":173,"dataGaName":311},"/enterprise/","enterprise",{"text":313,"config":314},"Small Business",{"href":315,"dataGaLocation":173,"dataGaName":316},"/small-business/","small business",{"text":318,"config":319},"Startups",{"href":320,"dataGaLocation":173,"dataGaName":321},"/solutions/startups/","startups",{"title":323,"items":324},"Industries",[325,330,335,340,345,350],{"text":326,"config":327},"Financial Services",{"href":328,"dataGaLocation":173,"dataGaName":329},"/solutions/finance/","financial services",{"text":331,"config":332},"Public Sector",{"href":333,"dataGaLocation":173,"dataGaName":334},"/solutions/public-sector/","public sector",{"text":336,"config":337},"Telecommunications",{"href":338,"dataGaLocation":173,"dataGaName":339},"/solutions/telecommunications/","telecommunications",{"text":341,"config":342},"Automotive",{"href":343,"dataGaLocation":173,"dataGaName":344},"/solutions/automotive/","automotive",{"text":346,"config":347},"Education",{"href":348,"dataGaLocation":173,"dataGaName":349},"/solutions/education/","education",{"text":351,"config":352},"Aerospace",{"href":353,"dataGaLocation":173,"dataGaName":354},"/solutions/aerospace/","aerospace",{"config":356,"title":357,"text":358,"link":359},{"background":267,"textColor":268},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":360,"config":361},"Explore the standard",{"href":362,"dataGaName":363,"dataGaLocation":173},"/gitlab-security-standard/","gitlab security standard",{"text":365,"config":366},"Pricing",{"href":367,"dataGaName":368,"dataGaLocation":173,"dataNavLevelOne":368},"/pricing/","pricing",{"text":370,"config":371,"menu":373},"Resources",{"dataNavLevelOne":372},"resources",{"type":195,"link":374,"columns":378,"feature":435},{"text":375,"config":376},"View all resources",{"href":377,"dataGaName":372,"dataGaLocation":173},"/resources/",[379,407],{"title":380,"items":381},"Discover",[382,387,392,397,402],{"text":383,"config":384},"Docs",{"href":385,"dataGaName":386,"dataGaLocation":173},"https://docs.gitlab.com/","docs",{"text":388,"config":389},"University",{"href":390,"dataGaName":391,"dataGaLocation":173},"https://university.gitlab.com/","university",{"text":393,"config":394},"Demo Series",{"href":395,"dataGaName":396,"dataGaLocation":173},"/gitlab-technical-demo-series/","demo series",{"text":398,"config":399},"Demo Hub",{"href":400,"dataGaName":401,"dataGaLocation":173},"/demo-hub/","demo hub",{"text":403,"config":404},"Services",{"href":405,"dataGaName":406,"dataGaLocation":173},"/services/","services",{"title":408,"items":409},"Connect",[410,415,420,425,430],{"text":411,"config":412},"Blog",{"href":413,"dataGaName":414,"dataGaLocation":173},"/blog/","blog",{"text":416,"config":417},"Community",{"href":418,"dataGaName":419,"dataGaLocation":173},"/community/","community",{"text":421,"config":422},"Customers",{"href":423,"dataGaName":424,"dataGaLocation":173},"/customers/","customers",{"text":426,"config":427},"Partners",{"href":428,"dataGaName":429,"dataGaLocation":173},"/partners/","partners",{"text":431,"config":432},"Events",{"href":433,"dataGaName":434,"dataGaLocation":173},"/events/","events",{"config":436,"title":437,"text":438,"link":439},{"background":267,"textColor":268},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":440,"config":441},"Read the latest",{"href":442,"dataGaName":443,"dataGaLocation":173},"/whats-new/","whats new",{"text":445,"config":446,"menu":448},"Company",{"dataNavLevelOne":447},"company",{"type":195,"columns":449},[450],{"items":451},[452,457,462,467,472,477,482,487,492],{"text":453,"config":454},"About",{"href":455,"dataGaName":456,"dataGaLocation":173},"/company/","about",{"text":458,"config":459,"footerGa":461},"Jobs",{"href":131,"dataGaName":460,"dataGaLocation":173},"jobs",{"dataGaName":460},{"text":463,"config":464},"Press",{"href":465,"dataGaName":466,"dataGaLocation":173},"/press/","press",{"text":468,"config":469},"Handbook",{"href":470,"dataGaName":471,"dataGaLocation":173},"https://handbook.gitlab.com/","handbook",{"text":473,"config":474},"Leadership",{"href":475,"dataGaName":476,"dataGaLocation":173},"/company/team/e-group/","leadership",{"text":478,"config":479},"Investor relations",{"href":480,"dataGaName":481,"dataGaLocation":173},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":483,"config":484},"Trust Center",{"href":485,"dataGaName":486,"dataGaLocation":173},"/security/","trust center",{"text":488,"config":489},"AI Transparency Center",{"href":490,"dataGaName":491,"dataGaLocation":173},"/ai-transparency-center/","ai transparency center",{"text":493,"config":494},"Newsletter",{"href":495,"dataGaName":496,"dataGaLocation":173},"/company/contact/#contact-forms","newsletter",{"text":498,"config":499,"menu":500},"Contact us",{"dataNavLevelOne":447},{"type":195,"columns":501},[502],{"items":503},[504,509,514],{"text":505,"config":506},"Talk to sales",{"href":507,"dataGaName":508,"dataGaLocation":173},"/sales/","talk to sales",{"text":510,"config":511},"Support portal",{"href":512,"dataGaName":513,"dataGaLocation":173},"https://support.gitlab.com/hc/en-us","support portal",{"text":515,"config":516},"Customer portal",{"href":517,"dataGaName":518,"dataGaLocation":173},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":520,"login":521,"suggestions":528},"Close",{"text":522,"link":523},"To search repositories and projects, login to",{"text":524,"config":525},"gitlab.com",{"href":187,"dataGaName":526,"dataGaLocation":527},"search login","search",{"text":529,"default":530},"Suggestions",[531,534,537,539,543,547],{"text":532,"config":533},"GitLab Duo Agent Platform",{"href":253,"dataGaName":532,"dataGaLocation":527},{"text":535,"config":536},"Code Suggestions (AI)",{"href":253,"dataGaName":535,"dataGaLocation":527},{"text":205,"config":538},{"href":207,"dataGaName":205,"dataGaLocation":527},{"text":540,"config":541},"GitLab on AWS",{"href":542,"dataGaName":540,"dataGaLocation":527},"/partners/technology-partners/aws/",{"text":544,"config":545},"GitLab on Google Cloud",{"href":546,"dataGaName":544,"dataGaLocation":527},"/partners/technology-partners/google-cloud-platform/",{"text":548,"config":549},"Why GitLab?",{"href":274,"dataGaName":548,"dataGaLocation":527},{"freeTrial":551,"mobileIcon":556,"desktopIcon":561,"secondaryButton":564},{"text":552,"config":553},"Start free trial",{"href":554,"dataGaName":178,"dataGaLocation":555},"https://gitlab.com/-/trials/new/","nav",{"altText":557,"config":558},"Gitlab Icon",{"src":559,"dataGaName":560,"dataGaLocation":555},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":557,"config":562},{"src":563,"dataGaName":560,"dataGaLocation":555},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":565,"config":566},"Get Started",{"href":567,"dataGaName":568,"dataGaLocation":555},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":570,"mobileIcon":574,"desktopIcon":576},{"text":571,"config":572},"Learn more about GitLab Duo",{"href":253,"dataGaName":573,"dataGaLocation":555},"gitlab duo",{"altText":557,"config":575},{"src":559,"dataGaName":560,"dataGaLocation":555},{"altText":557,"config":577},{"src":563,"dataGaName":560,"dataGaLocation":555},{"button":579,"mobileIcon":584,"desktopIcon":586},{"text":580,"config":581},"/switch",{"href":582,"dataGaName":583,"dataGaLocation":555},"#contact","switch",{"altText":557,"config":585},{"src":559,"dataGaName":560,"dataGaLocation":555},{"altText":557,"config":587},{"src":588,"dataGaName":560,"dataGaLocation":555},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":590,"mobileIcon":595,"desktopIcon":597},{"text":591,"config":592},"Back to pricing",{"href":367,"dataGaName":593,"dataGaLocation":555,"icon":594},"back to pricing","GoBack",{"altText":557,"config":596},{"src":559,"dataGaName":560,"dataGaLocation":555},{"altText":557,"config":598},{"src":563,"dataGaName":560,"dataGaLocation":555},{"title":600,"button":601,"config":607},"Ship at agent speed. Prove every step. Transcend is here.",{"text":602,"config":603},"Watch now",{"href":604,"dataGaName":605,"dataGaLocation":606},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":608,"disabled":142},"release",{"data":610},{"text":611,"source":612,"edit":618,"contribute":623,"config":628,"items":632,"minimal":858},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":613,"config":614},"View page source",{"href":615,"dataGaName":616,"dataGaLocation":617},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":619,"config":620},"Edit this page",{"href":621,"dataGaName":622,"dataGaLocation":617},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":624,"config":625},"Please contribute",{"href":626,"dataGaName":627,"dataGaLocation":617},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":125,"facebook":629,"youtube":630,"linkedin":631},"https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[633,680,738,785,826],{"title":365,"links":634,"subMenu":649},[635,639,644],{"text":636,"config":637},"View plans",{"href":367,"dataGaName":638,"dataGaLocation":617},"view plans",{"text":640,"config":641},"Why Premium?",{"href":642,"dataGaName":643,"dataGaLocation":617},"/pricing/premium/","why premium",{"text":645,"config":646},"Why Ultimate?",{"href":647,"dataGaName":648,"dataGaLocation":617},"/pricing/ultimate/","why ultimate",[650],{"title":651,"links":652},"Contact Us",[653,656,658,660,665,670,675],{"text":654,"config":655},"Contact sales",{"href":507,"dataGaName":183,"dataGaLocation":617},{"text":510,"config":657},{"href":512,"dataGaName":513,"dataGaLocation":617},{"text":515,"config":659},{"href":517,"dataGaName":518,"dataGaLocation":617},{"text":661,"config":662},"Status",{"href":663,"dataGaName":664,"dataGaLocation":617},"https://status.gitlab.com/","status",{"text":666,"config":667},"Terms of use",{"href":668,"dataGaName":669,"dataGaLocation":617},"/terms/","terms of use",{"text":671,"config":672},"Privacy statement",{"href":673,"dataGaName":674,"dataGaLocation":617},"/privacy/","privacy statement",{"text":676,"config":677},"Cookie preferences",{"dataGaName":678,"dataGaLocation":617,"id":679,"isOneTrustButton":158},"cookie preferences","ot-sdk-btn",{"title":191,"links":681,"subMenu":695},[682,685,687,689,691,693],{"text":683,"config":684},"Explore the platform",{"href":199,"dataGaName":193,"dataGaLocation":617},{"text":251,"config":686},{"href":253,"dataGaName":254,"dataGaLocation":617},{"text":205,"config":688},{"href":207,"dataGaName":208,"dataGaLocation":617},{"text":256,"config":690},{"href":258,"dataGaName":259,"dataGaLocation":617},{"text":238,"config":692},{"href":240,"dataGaName":241,"dataGaLocation":617},{"text":269,"config":694},{"href":274,"dataGaName":275,"dataGaLocation":617},[696],{"title":697,"links":698},"Topics",[699,703,708,713,718,723,728,733],{"text":205,"config":700},{"href":701,"dataGaName":702,"dataGaLocation":617},"/topics/ci-cd/","cicd",{"text":704,"config":705},"GitOps",{"href":706,"dataGaName":707,"dataGaLocation":617},"/topics/gitops/","gitops",{"text":709,"config":710},"DevOps",{"href":711,"dataGaName":712,"dataGaLocation":617},"/topics/devops/","devops",{"text":714,"config":715},"Version Control",{"href":716,"dataGaName":717,"dataGaLocation":617},"/topics/version-control/","version control",{"text":719,"config":720},"DevSecOps",{"href":721,"dataGaName":722,"dataGaLocation":617},"/topics/devsecops/","devsecops",{"text":724,"config":725},"Cloud Native",{"href":726,"dataGaName":727,"dataGaLocation":617},"/topics/cloud-native/","cloud native",{"text":729,"config":730},"AI for Coding",{"href":731,"dataGaName":732,"dataGaLocation":617},"/topics/devops/ai-for-coding/","ai for coding",{"text":734,"config":735},"Agentic AI",{"href":736,"dataGaName":737,"dataGaLocation":617},"/topics/agentic-ai/","agentic ai",{"title":277,"links":739},[740,743,746,749,752,755,757,759,761,763,765,768,770,773,777,781],{"text":741,"config":742},"DevOps modernization",{"href":292,"dataGaName":293,"dataGaLocation":617},{"text":744,"config":745},"Security modernization",{"href":297,"dataGaName":298,"dataGaLocation":617},{"text":747,"config":748},"AI modernization",{"href":302,"dataGaName":303,"dataGaLocation":617},{"text":750,"config":751},"Financial services",{"href":328,"dataGaName":329,"dataGaLocation":617},{"text":753,"config":754},"Public sector",{"href":333,"dataGaName":334,"dataGaLocation":617},{"text":336,"config":756},{"href":338,"dataGaName":339,"dataGaLocation":617},{"text":341,"config":758},{"href":343,"dataGaName":344,"dataGaLocation":617},{"text":346,"config":760},{"href":348,"dataGaName":349,"dataGaLocation":617},{"text":351,"config":762},{"href":353,"dataGaName":354,"dataGaLocation":617},{"text":308,"config":764},{"href":310,"dataGaName":311,"dataGaLocation":617},{"text":766,"config":767},"Small business",{"href":315,"dataGaName":316,"dataGaLocation":617},{"text":318,"config":769},{"href":320,"dataGaName":321,"dataGaLocation":617},{"text":704,"config":771},{"href":772,"dataGaName":707,"dataGaLocation":617},"/solutions/gitops/",{"text":774,"config":775},"Software composition analysis",{"href":245,"dataGaName":776,"dataGaLocation":617},"software composition analysis",{"text":778,"config":779},"Value stream management",{"href":263,"dataGaName":780,"dataGaLocation":617},"value stream management",{"text":782,"config":783},"All solutions",{"href":284,"dataGaName":784,"dataGaLocation":617},"all solutions",{"title":370,"links":786},[787,792,797,799,801,803,805,807,809,811,813,815,817,819,822],{"text":788,"config":789},"Install",{"href":790,"dataGaName":791,"dataGaLocation":617},"/install/","install",{"text":793,"config":794},"Quick start guides",{"href":795,"dataGaName":796,"dataGaLocation":617},"/get-started/","quick setup checklists",{"text":383,"config":798},{"href":385,"dataGaName":386,"dataGaLocation":617},{"text":388,"config":800},{"href":390,"dataGaName":391,"dataGaLocation":617},{"text":393,"config":802},{"href":395,"dataGaName":396,"dataGaLocation":617},{"text":398,"config":804},{"href":400,"dataGaName":401,"dataGaLocation":617},{"text":403,"config":806},{"href":405,"dataGaName":406,"dataGaLocation":617},{"text":411,"config":808},{"href":413,"dataGaName":414,"dataGaLocation":617},{"text":416,"config":810},{"href":418,"dataGaName":419,"dataGaLocation":617},{"text":421,"config":812},{"href":423,"dataGaName":424,"dataGaLocation":617},{"text":426,"config":814},{"href":428,"dataGaName":429,"dataGaLocation":617},{"text":431,"config":816},{"href":433,"dataGaName":434,"dataGaLocation":617},{"text":493,"config":818},{"href":495,"dataGaName":496,"dataGaLocation":617},{"text":820,"config":821},"What's new",{"href":442,"dataGaName":443,"dataGaLocation":617},{"text":823,"config":824},"All resources",{"href":377,"dataGaName":825,"dataGaLocation":617},"all resources",{"title":445,"links":827},[828,830,832,834,836,838,840,842,844,848,853],{"text":453,"config":829},{"href":455,"dataGaName":447,"dataGaLocation":617},{"text":458,"config":831},{"href":131,"dataGaName":460,"dataGaLocation":617},{"text":463,"config":833},{"href":465,"dataGaName":466,"dataGaLocation":617},{"text":468,"config":835},{"href":470,"dataGaName":471,"dataGaLocation":617},{"text":473,"config":837},{"href":475,"dataGaName":476,"dataGaLocation":617},{"text":478,"config":839},{"href":480,"dataGaName":481,"dataGaLocation":617},{"text":483,"config":841},{"href":485,"dataGaName":486,"dataGaLocation":617},{"text":488,"config":843},{"href":490,"dataGaName":491,"dataGaLocation":617},{"text":845,"config":846},"Sustainability",{"href":847,"dataGaName":845,"dataGaLocation":617},"/sustainability/",{"text":849,"config":850},"Diversity, inclusion and belonging (DIB)",{"href":851,"dataGaName":852,"dataGaLocation":617},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":854,"config":855},"Modern Slavery Transparency Statement",{"href":856,"dataGaName":857,"dataGaLocation":617},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":859},[860,863,866],{"text":861,"config":862},"Terms",{"href":668,"dataGaName":669,"dataGaLocation":617},{"text":864,"config":865},"Cookies",{"dataGaName":678,"dataGaLocation":617,"id":679,"isOneTrustButton":158},{"text":867,"config":868},"Privacy",{"href":673,"dataGaName":674,"dataGaLocation":617},[870],{"id":871,"title":872,"body":141,"config":873,"content":875,"description":141,"extension":879,"meta":880,"navigation":158,"path":881,"seo":882,"stem":883,"__hash__":884},"blogAuthors/en-us/blog/authors/emily-von-hoffmann.yml","Emily Von Hoffmann",{"template":874},"BlogAuthor",{"name":7,"config":876},{"headshot":877,"ctfId":878},"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",[886,894,902],{"title":887,"description":888,"heroImage":889,"category":137,"date":890,"authors":891,"slug":893,"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",[892],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":895,"description":896,"heroImage":897,"category":137,"date":898,"authors":899,"slug":901,"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",[900],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":903,"description":904,"heroImage":905,"category":137,"date":906,"authors":907,"slug":909,"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",[908],"Isa Huerga","co-create-h1-2026",{"header":911,"text":912,"button":916,"disclaimer":919},"Start your free\n\n30-day GitLab trial\n",[913,914,915],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":175,"config":917},{"href":918,"dataGaName":178,"dataGaLocation":414},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":921,"blurb":922,"button":923,"secondaryButton":928},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":924,"config":925},"Get your free trial",{"href":926,"dataGaName":178,"dataGaLocation":927},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":654,"config":929},{"href":507,"dataGaName":183,"dataGaLocation":927},1792010325821]