I spent some time reviewing GitLab features and determined that, by our Buyer-Based Open Core model, eighteen features that appear in seven different stages of the DevOps lifecycle ought to be open source.

When we rolled out our Buyer-Based Open Core model in 2018, what we laid out is that features are assigned to each of our four individual tiers based on who the buyer of the feature is. Features that serve an individual contributor land in Core/Free. Features for managers land in Starter/Bronze, for directors in Premium/Silver, and executives in Ultimate/Gold. As we explain the reasoning on our pricing page,

The feature is put in the plan based on what champion is most likely to care about it. Buyers make sense, since a higher-cost plan needs a higher-placed buyer.

This pricing model has served us well, and we've been committed to it. But, somewhere along the way, we failed to do an audit of many existing features. That's what I did last month, and now I'm excited to share that after personally reviewing all features in each of our tiers we are open sourcing an unprecedented number of GitLab features.

This marks a major milestone in our efforts to empower the community to collaborate more robustly and to take our single tool for the DevOps lifecycle to the next level. From design management to package managers, managing multiple Kubernetes clusters to connecting related issues, we're making it easier than ever for an individual contributor to have everything they need to plan, build, deploy, and secure their application with GitLab.

It's not enough to talk the talk – we need to walk the walk.

If we're saying that our features are based on the buyer, then we need to make sure that the right features are in the right place. We've always been committed to our stewardship of GitLab as an open source project. By auditing the tier of features, we can better serve our open source community while more accurately aligning our business model. Our commitment to the open source community is why we will always work to move features down our tiers and doing so quickly and consistently.

We hope to unleash the power of everyone’s creativity

Our mission has always been that everyone can contribute. With new functionality available to all users, it's easier than ever to contribute - contribute with GitLab, contribute to GitLab the application, or contribute to GitLab the company. See something, submit a Merge Request (MR).

We recognize that many users in our community have creative ideas on how to make GitLab an even better product. By partnering with the open-source community, we can open-source features even more quickly.

What's moving?

Features from Plan, Create, Verify, Package, Release, Configure, and Defend are moving. This is a lot of features. While we've outlined all of these features that are ready to be moved to Core/Free, we need your help to move them.

The work to move the actual code to the open source part of the codebase is defined in issues that are linked from this blog post. These issues will go into the backlog for each of the respective product development teams and will be prioritized against new feature development. If having this functionality in Core/Free is important to you, we invite you to contribute yourself to speed up the process. We're not just giving you permission to help us move this code - we're asking you to help us move it.

Synchronize collaboration with Plan

Issues are the primary way people collaborate on ideas and plan work in GitLab. By open sourcing these new features, we're making it easier than ever to plan your projects. We can't wait to see what you come up with.

Related issues: Connect related issues together.

Export issues: Export issues from GitLab as a CSV and receive the CSV as an attachment to your default notification email.

Issue board focus mode: Use this tool to plan, organize, and visualize a workflow for a feature or product release. It can be used as a Kanban or a Scrum board.

Service desk allows your team to connect directly with any external party through email right inside of GitLab – no external tools required. With that, the complexity and inefficiencies of multiple tools are eliminated, significantly shortening the cycle time from feedback to software updates. We would love to hear how you leverage service desk in your workflows now that it's open source.

Feature to move GitLab Issue Related issues gitlab-org/gitlab#212329 Export issues gitlab-org/gitlab#212330 Issue board focus mode gitlab-org/gitlab#212331 Service desk gitlab-org/gitlab#212332

Build better code and branch powerfully with Create

The machine you're using shouldn't limit how easy it is to develop.

We're excited to bring down two features for developing in web-first environments.

The Web Terminal for Web IDE makes it faster and easier to contribute changes to projects.

File syncing to web terminal in the Web IDE helps you test code changes in a preconfigured terminal environment.

Design management allows you to upload design assets (wireframes, mockups, etc.) to GitLab issues and keep them stored in one single place, accessed by the Design management’s page within an issue, ensuring issues are the single source of truth for everything required to develop a feature.

All together, these changes to create should make it easier to go from wireframe to MVC in the blink of an eye – independent of what machine you're on – improving project efficiency.

Feature to move GitLab Issue Web Terminal for Web IDE gitlab-org/gitlab#211685 File syncing to the web terminal gitlab-org/gitlab#211686 Design Management gitlab-org/gitlab#212566

Bring code quality to new heights with Verify

Code quality reports on MRs will be open source. Keeping your project’s code simple, readable, and easy to contribute to is difficult. Code quality on MRs makes this easier to do and maintain.

Feature to move GitLab Issue Code quality gitlab-org/gitlab#212499

Build and share packages in Package

We're delivering a set of package managers so all your packages can stay in one place:

Feature to move GitLab Issue Package Managers gitlab-org&2867

Continuous delivery is simpler with Release

With four incredible Release features moving to Core/Free, you can be so confident in your releases that you deploy on Fridays (YMMV).

Canary deployments roll out the new version of your application to a small portion of your fleet.

Incremental rollout allows you to first check how the new version of your application is behaving before increasing the rollout to 100%.

Feature flags allow you to ship a project in different flavors by dynamically toggling certain functionality.

Deploy boards offer a consolidated view of the current health and status of each CI environment running on Kubernetes. You can see the progress and status of a rollout, pod by pod, within your existing workflows without having to access Kubernetes.

Feature to move GitLab Issue Canary deployments gitlab-org/gitlab#212319 Incremental rollout gitlab-org/gitlab#212316 Feature flags gitlab-org/gitlab#212318 Deploy boards gitlab-org/gitlab#212320

Support for multiple Kubernetes clusters in Configure

With support for multiple Kubernetes clusters, you will be able to easily deploy different environments, like Staging and Production, to different Kubernetes clusters. This allows you to enforce strict data separation.

Feature to move GitLab Issue Support for multiple Kubernetes clusters gitlab-org/gitlab#212229

Bolster application security with Defend

Defend your apps and infrastructure from security intrusions. Network policies for container network security will be available to all users. With that, you can install network policies into GitLab-managed Kubernetes clusters to limit communication between Kubernetes pods.

Feature to move GitLab Issue Network policies for container network security gitlab-org/gitlab#212571

We hope that by open sourcing these features we will make it easier for all users to treat GitLab as a single application for the entire DevOps lifecycle. We are thrilled about the limitless possibilities ahead of us as a community and we're looking forward to collaborating closely with each of you!

Cover image by Rodrigo Soares on Unsplash