[{"data":1,"prerenderedAt":769},["ShallowReactive",2],{"/en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt":3,"navigation-en-us":38,"banner-en-us":465,"footer-en-us":482,"Taylor Murphy-Emilie Schario":727,"next-steps-en-us":748,"footer-source-/en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt/":763},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":28,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},"/en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"How to manage your Snowflake spend with Periscope and dbt","The GitLab data team is open sourcing the dbt package they use to manage their Snowflake spend.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670255/Blog/Hero%20Images/data-servers.jpg","https://about.gitlab.com/blog/managing-your-snowflake-spend-with-periscope-and-dbt","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to manage your Snowflake spend with Periscope and dbt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor Murphy\"},{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2019-08-26\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":20,"body":21,"category":22,"tags":23},[18,19],"Taylor Murphy","Emilie Schario","2019-08-26","On the data team at GitLab, we are grateful to be empowered with best\nin-class tools that enable us to produce high-quality work. At the 2018\nDataEngConf (now Data Council), GitLab data engineer [Thomas La\nPiana](/company/team/#tlapiana) spoke about how a team of three was\nsupporting the data needs of a billion-dollar company. As he explains in\nthis talk, we focus a lot on processes and workflows.\n\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/eu623QBwakc\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\n## Where are the existing gaps?\n\nToday, the data team has grown from three to seven: three engineers and four\nanalysts.\n\nSince we've more than doubled in the last six months, we've had to take a\nstep back and revisit our processes.\n\n\n![GitLab Team\nHeadcount](https://about.gitlab.com/images/blogimages/team_headcount.png){:\n.shadow.medium.center}\n\nThe GitLab team has grown significantly in the past few months.\n\n{: .note.text-center}\n\n\n### GitLab is growing fast\n\n\nDespite the significant jump in the data team's headcount, our growth has\nnot matched the exponential growth of the team supporting GitLab.\n\nAs GitLab grows, more folks aim to include more data in their\ndecision-making process.\n\nThis means we're iterating quickly, collecting feedback, and constantly\nimproving on the quality of the analyses we are producing for our business\nstakeholders.\n\nThe demand for more data means there is a lot more to accomplish – making\nnow an opportune time to review our processes and improve the data team's\nimpact across GitLab.\n\n\nFor example, a data team member pointed out that refinement isn't a part of\nour [milestone planning\nprocess](https://handbook.gitlab.com/handbook/enterprise-data/how-we-work/#milestone-planning).\n\nNo wonder our backlog wasn't moving anywhere! We identified the root of the\nproblem by asking our team, \"What is the problem we're trying to solve?\" and\nthen laid out a plan to address it.\n\n\n### Onboarding can be hard\n\n\nWe've made some great data analyst hires recently!\n\nWe don't require our new team members to be familiar with our existing data\nstack (Stitch/Singer - Snowflake - dbt - Periscope), but we do require them\nto have technical skills that match their role.\n\nThis usually includes Git, SQL, and Python (Pandas) at the bare minimum,\nthough we welcome R (tidyverse) as well.\n\nWhile onboarding at any company can be difficult, it's especially\nchallenging in an all-remote organization such as GitLab.\n\n\nIn addition to introducing candidates to our specific technologies, part of\nthe [data analyst\nonboarding](https://gitlab.com/gitlab-data/analytics/blob/master/.gitlab/issue_templates/data_onboarding.md)\nincludes a unit on resource consumption.\n\nWe spend time introducing the concepts of databases and warehouses in\nSnowflake, because storage and compute being separate are often novel ideas\nto folks joining GitLab from an on-premise data organization.\n\nIn some cases, we are teaching our new hires a new way to think about the\ndata-related problems they're solving, and introducing different resources\nto remedy these problems.\n\n\n### With great power comes great responsibility\n\n\nWe consume more resources as the data team headcount grows. I think about\nthis like folks using water in a household. If everyone is on vacation, the\nwater bill will be low, but if all the cousins come visit for a week, the\nbill will be high.\n\nSimilarly to why we encourage a big group of visiting relatives to take\nshorter showers to conserve water, on the data team we work to steward\nresources effectively. This means we must identify wasted resources to\nrecapture them.\n\nIt's important that our operating expenses not balloon with headcount.\n\n\n## Are you protected against a leak?\n\n\nAs a homeowner, I can share a myriad of appliance-gone-wrong stories, but\none tops them all: the time there was a leak in our front yard that we only\ndiscovered because of a $1,000 water bill.\n\nOften, homeowners can only measure water usage when the bill arrives, when\nit's always too late to fix it.\n\n\nLucky for our team and yours, Snowflake is much more generous than my water\ncompany.\n\nWe *can* monitor our costs as it accrues.\n\nAfter having this process in place for a bit now, we'd encourage you to\nimplement it in your stack.\n\n\n## Monitor your Snowflake spend with dbt and Periscope\n\n\nWe're excited to make our [Snowflake spend dbt\npackage](https://gitlab.com/gitlab-data/snowflake_spend) widely available\nfor use.\n\nDoing this is in line with our belief in the value of [open source\nanalytics](/blog/open-source-analytics/).\n\n\nTo get started, you'll need to grant access to the `snowflake` database to\nyour dbt-specific role with:\n\n```\n\nGRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE \u003Crole>;\n\n```\n\n\nThen you'll need to update the `packages.yml` file in your dbt project to\ninclude the following:\n\n```\n\npackages:\n  - git: https://gitlab.com/gitlab-data/snowflake_spend.git\n    revision: v1.0.0\n```\n\n\nToday, you can only install the package directly from Git.\n\nSince it doesn't depend on any other packages, you don't have to worry about\nversion management, so this should not cause any problems.\n\nYou can run `dbt deps` to ensure the package is installed correctly.\n\n\nYou will need a csv called `snowflake_contract_rates.csv` which has two\ncolumns: effective date and rate. The effective date is the day the new\ncontracted rate started and it should be in YYYY-MM-DD format. The rate is\nthe per credit price for the given time period. You can see how the data\nteam configures [their csv\nfile](https://gitlab.com/gitlab-data/analytics/blob/master/transform/snowflake-dbt/data/snowflake_contract_rates.csv).\nYou will need to run `dbt seed` for the csv to be loaded as a table and for\nthe model to run succesfully.\n\n\nFinally, you will need to update your `dbt_project.yml` file to enable this\npackage with the following block.\n\n```\n\nmodels:\n  snowflake_spend:\n    enabled: true\n```\n\nYou can see [how the data team has configured the\npackage](https://gitlab.com/gitlab-data/analytics/blob/master/transform/snowflake-dbt/dbt_project.yml#L68)\nin our `dbt_project.yml` file.\n\n\nRunning `dbt compile` will not only test that you've configured all of this\ncorrectly, but also will compile the files in the `analysis` directory.\nThese are the queries that we use to underlie the exact Periscope dashboard\nthat we have automatically posted in Slack every day.\n\n\n![GitLab's Periscope dashboard for managing Snowflake\nspend](https://about.gitlab.com/images/blogimages/periscope_snowflake_spend1.png){:\n.shadow.medium.center}\n\n![GitLab's Periscope dashboard for managing Snowflake\nspend](https://about.gitlab.com/images/blogimages/periscope_snowflake_spend2.png){:\n.shadow.medium.center}\n\n\nOnce you've set up this dashboard, you can configure it to auto-refresh\ndaily.\n\nThen use Slack's `/remind app.periscopedata.com/dashboardurl` to have it\nregularly publish in the channel of your choice.\n\n\nYou can see how our resource management initiatives have been effective.\n\nWe hope you'll find monitoring a key step to helping manage your own\nSnowflake spend.\n\n\nHave any thoughts, questions, or suggestions? [Create an\nissue](https://gitlab.com/gitlab-data/snowflake_spend/issues).\n\n\nPhoto by [Taylor Vick](https://unsplash.com/photos/M5tzZtFCOfs) on\n[Unsplash](https://unsplash.com/)\n\n{: .note}\n","open-source",[24,25,26,27],"collaboration","community","open source","releases",{"slug":29,"featured":6,"template":30},"managing-your-snowflake-spend-with-periscope-and-dbt","BlogPost","content:en-us:blog:managing-your-snowflake-spend-with-periscope-and-dbt.yml","yaml","Managing Your Snowflake Spend With Periscope And Dbt","content","en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt.yml","en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt","yml",{"_path":39,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":41,"_id":461,"_type":32,"title":462,"_source":34,"_file":463,"_stem":464,"_extension":37},"/shared/en-us/main-navigation","en-us",{"logo":42,"freeTrial":47,"sales":52,"login":57,"items":62,"search":392,"minimal":423,"duo":442,"pricingDeployment":451},{"config":43},{"href":44,"dataGaName":45,"dataGaLocation":46},"/","gitlab logo","header",{"text":48,"config":49},"Get free trial",{"href":50,"dataGaName":51,"dataGaLocation":46},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":53,"config":54},"Talk to sales",{"href":55,"dataGaName":56,"dataGaLocation":46},"/sales/","sales",{"text":58,"config":59},"Sign in",{"href":60,"dataGaName":61,"dataGaLocation":46},"https://gitlab.com/users/sign_in/","sign in",[63,107,204,209,313,373],{"text":64,"config":65,"cards":67,"footer":90},"Platform",{"dataNavLevelOne":66},"platform",[68,74,82],{"title":64,"description":69,"link":70},"The most comprehensive AI-powered DevSecOps Platform",{"text":71,"config":72},"Explore our Platform",{"href":73,"dataGaName":66,"dataGaLocation":46},"/platform/",{"title":75,"description":76,"link":77},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":78,"config":79},"Meet GitLab Duo",{"href":80,"dataGaName":81,"dataGaLocation":46},"/gitlab-duo/","gitlab duo ai",{"title":83,"description":84,"link":85},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":86,"config":87},"Learn more",{"href":88,"dataGaName":89,"dataGaLocation":46},"/why-gitlab/","why gitlab",{"title":91,"items":92},"Get started with",[93,98,103],{"text":94,"config":95},"Platform Engineering",{"href":96,"dataGaName":97,"dataGaLocation":46},"/solutions/platform-engineering/","platform engineering",{"text":99,"config":100},"Developer Experience",{"href":101,"dataGaName":102,"dataGaLocation":46},"/developer-experience/","Developer experience",{"text":104,"config":105},"MLOps",{"href":106,"dataGaName":104,"dataGaLocation":46},"/topics/devops/the-role-of-ai-in-devops/",{"text":108,"left":109,"config":110,"link":112,"lists":116,"footer":186},"Product",true,{"dataNavLevelOne":111},"solutions",{"text":113,"config":114},"View all Solutions",{"href":115,"dataGaName":111,"dataGaLocation":46},"/solutions/",[117,142,165],{"title":118,"description":119,"link":120,"items":125},"Automation","CI/CD and automation to accelerate deployment",{"config":121},{"icon":122,"href":123,"dataGaName":124,"dataGaLocation":46},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[126,130,134,138],{"text":127,"config":128},"CI/CD",{"href":129,"dataGaLocation":46,"dataGaName":127},"/solutions/continuous-integration/",{"text":131,"config":132},"AI-Assisted Development",{"href":80,"dataGaLocation":46,"dataGaName":133},"AI assisted development",{"text":135,"config":136},"Source Code Management",{"href":137,"dataGaLocation":46,"dataGaName":135},"/solutions/source-code-management/",{"text":139,"config":140},"Automated Software Delivery",{"href":123,"dataGaLocation":46,"dataGaName":141},"Automated software delivery",{"title":143,"description":144,"link":145,"items":150},"Security","Deliver code faster without compromising security",{"config":146},{"href":147,"dataGaName":148,"dataGaLocation":46,"icon":149},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[151,155,160],{"text":152,"config":153},"Application Security Testing",{"href":147,"dataGaName":154,"dataGaLocation":46},"Application security testing",{"text":156,"config":157},"Software Supply Chain Security",{"href":158,"dataGaLocation":46,"dataGaName":159},"/solutions/supply-chain/","Software supply chain security",{"text":161,"config":162},"Software Compliance",{"href":163,"dataGaName":164,"dataGaLocation":46},"/solutions/software-compliance/","software compliance",{"title":166,"link":167,"items":172},"Measurement",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":46},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[173,177,181],{"text":174,"config":175},"Visibility & Measurement",{"href":170,"dataGaLocation":46,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"Value Stream Management",{"href":180,"dataGaLocation":46,"dataGaName":178},"/solutions/value-stream-management/",{"text":182,"config":183},"Analytics & Insights",{"href":184,"dataGaLocation":46,"dataGaName":185},"/solutions/analytics-and-insights/","Analytics and insights",{"title":187,"items":188},"GitLab for",[189,194,199],{"text":190,"config":191},"Enterprise",{"href":192,"dataGaLocation":46,"dataGaName":193},"/enterprise/","enterprise",{"text":195,"config":196},"Small Business",{"href":197,"dataGaLocation":46,"dataGaName":198},"/small-business/","small business",{"text":200,"config":201},"Public Sector",{"href":202,"dataGaLocation":46,"dataGaName":203},"/solutions/public-sector/","public sector",{"text":205,"config":206},"Pricing",{"href":207,"dataGaName":208,"dataGaLocation":46,"dataNavLevelOne":208},"/pricing/","pricing",{"text":210,"config":211,"link":213,"lists":217,"feature":300},"Resources",{"dataNavLevelOne":212},"resources",{"text":214,"config":215},"View all resources",{"href":216,"dataGaName":212,"dataGaLocation":46},"/resources/",[218,251,273],{"title":219,"items":220},"Getting started",[221,226,231,236,241,246],{"text":222,"config":223},"Install",{"href":224,"dataGaName":225,"dataGaLocation":46},"/install/","install",{"text":227,"config":228},"Quick start guides",{"href":229,"dataGaName":230,"dataGaLocation":46},"/get-started/","quick setup checklists",{"text":232,"config":233},"Learn",{"href":234,"dataGaLocation":46,"dataGaName":235},"https://university.gitlab.com/","learn",{"text":237,"config":238},"Product documentation",{"href":239,"dataGaName":240,"dataGaLocation":46},"https://docs.gitlab.com/","product documentation",{"text":242,"config":243},"Best practice videos",{"href":244,"dataGaName":245,"dataGaLocation":46},"/getting-started-videos/","best practice videos",{"text":247,"config":248},"Integrations",{"href":249,"dataGaName":250,"dataGaLocation":46},"/integrations/","integrations",{"title":252,"items":253},"Discover",[254,259,263,268],{"text":255,"config":256},"Customer success stories",{"href":257,"dataGaName":258,"dataGaLocation":46},"/customers/","customer success stories",{"text":260,"config":261},"Blog",{"href":262,"dataGaName":5,"dataGaLocation":46},"/blog/",{"text":264,"config":265},"Remote",{"href":266,"dataGaName":267,"dataGaLocation":46},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":269,"config":270},"TeamOps",{"href":271,"dataGaName":272,"dataGaLocation":46},"/teamops/","teamops",{"title":274,"items":275},"Connect",[276,281,285,290,295],{"text":277,"config":278},"GitLab Services",{"href":279,"dataGaName":280,"dataGaLocation":46},"/services/","services",{"text":282,"config":283},"Community",{"href":284,"dataGaName":25,"dataGaLocation":46},"/community/",{"text":286,"config":287},"Forum",{"href":288,"dataGaName":289,"dataGaLocation":46},"https://forum.gitlab.com/","forum",{"text":291,"config":292},"Events",{"href":293,"dataGaName":294,"dataGaLocation":46},"/events/","events",{"text":296,"config":297},"Partners",{"href":298,"dataGaName":299,"dataGaLocation":46},"/partners/","partners",{"backgroundColor":301,"textColor":302,"text":303,"image":304,"link":308},"#2f2a6b","#fff","Insights for the future of software development",{"altText":305,"config":306},"the source promo card",{"src":307},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":309,"config":310},"Read the latest",{"href":311,"dataGaName":312,"dataGaLocation":46},"/the-source/","the source",{"text":314,"config":315,"lists":317},"Company",{"dataNavLevelOne":316},"company",[318],{"items":319},[320,325,331,333,338,343,348,353,358,363,368],{"text":321,"config":322},"About",{"href":323,"dataGaName":324,"dataGaLocation":46},"/company/","about",{"text":326,"config":327,"footerGa":330},"Jobs",{"href":328,"dataGaName":329,"dataGaLocation":46},"/jobs/","jobs",{"dataGaName":329},{"text":291,"config":332},{"href":293,"dataGaName":294,"dataGaLocation":46},{"text":334,"config":335},"Leadership",{"href":336,"dataGaName":337,"dataGaLocation":46},"/company/team/e-group/","leadership",{"text":339,"config":340},"Team",{"href":341,"dataGaName":342,"dataGaLocation":46},"/company/team/","team",{"text":344,"config":345},"Handbook",{"href":346,"dataGaName":347,"dataGaLocation":46},"https://handbook.gitlab.com/","handbook",{"text":349,"config":350},"Investor relations",{"href":351,"dataGaName":352,"dataGaLocation":46},"https://ir.gitlab.com/","investor relations",{"text":354,"config":355},"Trust Center",{"href":356,"dataGaName":357,"dataGaLocation":46},"/security/","trust center",{"text":359,"config":360},"AI Transparency Center",{"href":361,"dataGaName":362,"dataGaLocation":46},"/ai-transparency-center/","ai transparency center",{"text":364,"config":365},"Newsletter",{"href":366,"dataGaName":367,"dataGaLocation":46},"/company/contact/","newsletter",{"text":369,"config":370},"Press",{"href":371,"dataGaName":372,"dataGaLocation":46},"/press/","press",{"text":374,"config":375,"lists":376},"Contact us",{"dataNavLevelOne":316},[377],{"items":378},[379,382,387],{"text":53,"config":380},{"href":55,"dataGaName":381,"dataGaLocation":46},"talk to sales",{"text":383,"config":384},"Support portal",{"href":385,"dataGaName":386,"dataGaLocation":46},"https://support.gitlab.com","support portal",{"text":388,"config":389},"Customer portal",{"href":390,"dataGaName":391,"dataGaLocation":46},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":393,"login":394,"suggestions":401},"Close",{"text":395,"link":396},"To search repositories and projects, login to",{"text":397,"config":398},"gitlab.com",{"href":60,"dataGaName":399,"dataGaLocation":400},"search login","search",{"text":402,"default":403},"Suggestions",[404,406,410,412,416,420],{"text":75,"config":405},{"href":80,"dataGaName":75,"dataGaLocation":400},{"text":407,"config":408},"Code Suggestions (AI)",{"href":409,"dataGaName":407,"dataGaLocation":400},"/solutions/code-suggestions/",{"text":127,"config":411},{"href":129,"dataGaName":127,"dataGaLocation":400},{"text":413,"config":414},"GitLab on AWS",{"href":415,"dataGaName":413,"dataGaLocation":400},"/partners/technology-partners/aws/",{"text":417,"config":418},"GitLab on Google Cloud",{"href":419,"dataGaName":417,"dataGaLocation":400},"/partners/technology-partners/google-cloud-platform/",{"text":421,"config":422},"Why GitLab?",{"href":88,"dataGaName":421,"dataGaLocation":400},{"freeTrial":424,"mobileIcon":429,"desktopIcon":434,"secondaryButton":437},{"text":425,"config":426},"Start free trial",{"href":427,"dataGaName":51,"dataGaLocation":428},"https://gitlab.com/-/trials/new/","nav",{"altText":430,"config":431},"Gitlab Icon",{"src":432,"dataGaName":433,"dataGaLocation":428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":430,"config":435},{"src":436,"dataGaName":433,"dataGaLocation":428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":438,"config":439},"Get Started",{"href":440,"dataGaName":441,"dataGaLocation":428},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":443,"mobileIcon":447,"desktopIcon":449},{"text":444,"config":445},"Learn more about GitLab Duo",{"href":80,"dataGaName":446,"dataGaLocation":428},"gitlab duo",{"altText":430,"config":448},{"src":432,"dataGaName":433,"dataGaLocation":428},{"altText":430,"config":450},{"src":436,"dataGaName":433,"dataGaLocation":428},{"freeTrial":452,"mobileIcon":457,"desktopIcon":459},{"text":453,"config":454},"Back to pricing",{"href":207,"dataGaName":455,"dataGaLocation":428,"icon":456},"back to pricing","GoBack",{"altText":430,"config":458},{"src":432,"dataGaName":433,"dataGaLocation":428},{"altText":430,"config":460},{"src":436,"dataGaName":433,"dataGaLocation":428},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":466,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"title":467,"button":468,"image":473,"config":477,"_id":479,"_type":32,"_source":34,"_file":480,"_stem":481,"_extension":37},"/shared/en-us/banner","is now in public beta!",{"text":469,"config":470},"Try the Beta",{"href":471,"dataGaName":472,"dataGaLocation":46},"/gitlab-duo/agent-platform/","duo banner",{"altText":474,"config":475},"GitLab Duo Agent Platform",{"src":476},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":478},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":483,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":484,"_id":723,"_type":32,"title":724,"_source":34,"_file":725,"_stem":726,"_extension":37},"/shared/en-us/main-footer",{"text":485,"source":486,"edit":492,"contribute":497,"config":502,"items":507,"minimal":715},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":487,"config":488},"View page source",{"href":489,"dataGaName":490,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":493,"config":494},"Edit this page",{"href":495,"dataGaName":496,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":498,"config":499},"Please contribute",{"href":500,"dataGaName":501,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":503,"facebook":504,"youtube":505,"linkedin":506},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[508,555,608,652,681],{"title":205,"links":509,"subMenu":524},[510,514,519],{"text":511,"config":512},"View plans",{"href":207,"dataGaName":513,"dataGaLocation":491},"view plans",{"text":515,"config":516},"Why Premium?",{"href":517,"dataGaName":518,"dataGaLocation":491},"/pricing/premium/","why premium",{"text":520,"config":521},"Why Ultimate?",{"href":522,"dataGaName":523,"dataGaLocation":491},"/pricing/ultimate/","why ultimate",[525],{"title":526,"links":527},"Contact Us",[528,531,533,535,540,545,550],{"text":529,"config":530},"Contact sales",{"href":55,"dataGaName":56,"dataGaLocation":491},{"text":383,"config":532},{"href":385,"dataGaName":386,"dataGaLocation":491},{"text":388,"config":534},{"href":390,"dataGaName":391,"dataGaLocation":491},{"text":536,"config":537},"Status",{"href":538,"dataGaName":539,"dataGaLocation":491},"https://status.gitlab.com/","status",{"text":541,"config":542},"Terms of use",{"href":543,"dataGaName":544,"dataGaLocation":491},"/terms/","terms of use",{"text":546,"config":547},"Privacy statement",{"href":548,"dataGaName":549,"dataGaLocation":491},"/privacy/","privacy statement",{"text":551,"config":552},"Cookie preferences",{"dataGaName":553,"dataGaLocation":491,"id":554,"isOneTrustButton":109},"cookie preferences","ot-sdk-btn",{"title":108,"links":556,"subMenu":564},[557,561],{"text":558,"config":559},"DevSecOps platform",{"href":73,"dataGaName":560,"dataGaLocation":491},"devsecops platform",{"text":131,"config":562},{"href":80,"dataGaName":563,"dataGaLocation":491},"ai-assisted development",[565],{"title":566,"links":567},"Topics",[568,573,578,583,588,593,598,603],{"text":569,"config":570},"CICD",{"href":571,"dataGaName":572,"dataGaLocation":491},"/topics/ci-cd/","cicd",{"text":574,"config":575},"GitOps",{"href":576,"dataGaName":577,"dataGaLocation":491},"/topics/gitops/","gitops",{"text":579,"config":580},"DevOps",{"href":581,"dataGaName":582,"dataGaLocation":491},"/topics/devops/","devops",{"text":584,"config":585},"Version Control",{"href":586,"dataGaName":587,"dataGaLocation":491},"/topics/version-control/","version control",{"text":589,"config":590},"DevSecOps",{"href":591,"dataGaName":592,"dataGaLocation":491},"/topics/devsecops/","devsecops",{"text":594,"config":595},"Cloud Native",{"href":596,"dataGaName":597,"dataGaLocation":491},"/topics/cloud-native/","cloud native",{"text":599,"config":600},"AI for Coding",{"href":601,"dataGaName":602,"dataGaLocation":491},"/topics/devops/ai-for-coding/","ai for coding",{"text":604,"config":605},"Agentic AI",{"href":606,"dataGaName":607,"dataGaLocation":491},"/topics/agentic-ai/","agentic ai",{"title":609,"links":610},"Solutions",[611,613,615,620,624,627,631,634,636,639,642,647],{"text":152,"config":612},{"href":147,"dataGaName":152,"dataGaLocation":491},{"text":141,"config":614},{"href":123,"dataGaName":124,"dataGaLocation":491},{"text":616,"config":617},"Agile development",{"href":618,"dataGaName":619,"dataGaLocation":491},"/solutions/agile-delivery/","agile delivery",{"text":621,"config":622},"SCM",{"href":137,"dataGaName":623,"dataGaLocation":491},"source code management",{"text":569,"config":625},{"href":129,"dataGaName":626,"dataGaLocation":491},"continuous integration & delivery",{"text":628,"config":629},"Value stream management",{"href":180,"dataGaName":630,"dataGaLocation":491},"value stream management",{"text":574,"config":632},{"href":633,"dataGaName":577,"dataGaLocation":491},"/solutions/gitops/",{"text":190,"config":635},{"href":192,"dataGaName":193,"dataGaLocation":491},{"text":637,"config":638},"Small business",{"href":197,"dataGaName":198,"dataGaLocation":491},{"text":640,"config":641},"Public sector",{"href":202,"dataGaName":203,"dataGaLocation":491},{"text":643,"config":644},"Education",{"href":645,"dataGaName":646,"dataGaLocation":491},"/solutions/education/","education",{"text":648,"config":649},"Financial services",{"href":650,"dataGaName":651,"dataGaLocation":491},"/solutions/finance/","financial services",{"title":210,"links":653},[654,656,658,660,663,665,667,669,671,673,675,677,679],{"text":222,"config":655},{"href":224,"dataGaName":225,"dataGaLocation":491},{"text":227,"config":657},{"href":229,"dataGaName":230,"dataGaLocation":491},{"text":232,"config":659},{"href":234,"dataGaName":235,"dataGaLocation":491},{"text":237,"config":661},{"href":239,"dataGaName":662,"dataGaLocation":491},"docs",{"text":260,"config":664},{"href":262,"dataGaName":5,"dataGaLocation":491},{"text":255,"config":666},{"href":257,"dataGaName":258,"dataGaLocation":491},{"text":264,"config":668},{"href":266,"dataGaName":267,"dataGaLocation":491},{"text":277,"config":670},{"href":279,"dataGaName":280,"dataGaLocation":491},{"text":269,"config":672},{"href":271,"dataGaName":272,"dataGaLocation":491},{"text":282,"config":674},{"href":284,"dataGaName":25,"dataGaLocation":491},{"text":286,"config":676},{"href":288,"dataGaName":289,"dataGaLocation":491},{"text":291,"config":678},{"href":293,"dataGaName":294,"dataGaLocation":491},{"text":296,"config":680},{"href":298,"dataGaName":299,"dataGaLocation":491},{"title":314,"links":682},[683,685,687,689,691,693,695,699,704,706,708,710],{"text":321,"config":684},{"href":323,"dataGaName":316,"dataGaLocation":491},{"text":326,"config":686},{"href":328,"dataGaName":329,"dataGaLocation":491},{"text":334,"config":688},{"href":336,"dataGaName":337,"dataGaLocation":491},{"text":339,"config":690},{"href":341,"dataGaName":342,"dataGaLocation":491},{"text":344,"config":692},{"href":346,"dataGaName":347,"dataGaLocation":491},{"text":349,"config":694},{"href":351,"dataGaName":352,"dataGaLocation":491},{"text":696,"config":697},"Sustainability",{"href":698,"dataGaName":696,"dataGaLocation":491},"/sustainability/",{"text":700,"config":701},"Diversity, inclusion and belonging (DIB)",{"href":702,"dataGaName":703,"dataGaLocation":491},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":354,"config":705},{"href":356,"dataGaName":357,"dataGaLocation":491},{"text":364,"config":707},{"href":366,"dataGaName":367,"dataGaLocation":491},{"text":369,"config":709},{"href":371,"dataGaName":372,"dataGaLocation":491},{"text":711,"config":712},"Modern Slavery Transparency Statement",{"href":713,"dataGaName":714,"dataGaLocation":491},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":716},[717,719,721],{"text":541,"config":718},{"href":543,"dataGaName":544,"dataGaLocation":491},{"text":546,"config":720},{"href":548,"dataGaName":549,"dataGaLocation":491},{"text":551,"config":722},{"dataGaName":553,"dataGaLocation":491,"id":554,"isOneTrustButton":109},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",[728,739],{"_path":729,"_dir":730,"_draft":6,"_partial":6,"_locale":7,"content":731,"config":734,"_id":736,"_type":32,"title":18,"_source":34,"_file":737,"_stem":738,"_extension":37},"/en-us/blog/authors/taylor-murphy","authors",{"name":18,"config":732},{"headshot":7,"ctfId":733},"tayloramurphy",{"template":735},"BlogAuthor","content:en-us:blog:authors:taylor-murphy.yml","en-us/blog/authors/taylor-murphy.yml","en-us/blog/authors/taylor-murphy",{"_path":740,"_dir":730,"_draft":6,"_partial":6,"_locale":7,"content":741,"config":744,"_id":745,"_type":32,"title":19,"_source":34,"_file":746,"_stem":747,"_extension":37},"/en-us/blog/authors/emilie-schario",{"name":19,"config":742},{"headshot":7,"ctfId":743},"emilie",{"template":735},"content:en-us:blog:authors:emilie-schario.yml","en-us/blog/authors/emilie-schario.yml","en-us/blog/authors/emilie-schario",{"_path":749,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"header":750,"eyebrow":751,"blurb":752,"button":753,"secondaryButton":757,"_id":759,"_type":32,"title":760,"_source":34,"_file":761,"_stem":762,"_extension":37},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":48,"config":754},{"href":755,"dataGaName":51,"dataGaLocation":756},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":53,"config":758},{"href":55,"dataGaName":56,"dataGaLocation":756},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":764,"content":765,"config":768,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},{"title":9,"description":10,"authors":766,"heroImage":11,"date":20,"body":21,"category":22,"tags":767},[18,19],[24,25,26,27],{"slug":29,"featured":6,"template":30},1761814433160]