How to start a new GitLab Project
Tags: programming, devops, beginners, tutorial
Published: 2023-01-15 10:27:27

In this post, we will start the new GitLab Project in a simple and hopefully understandable way. We will continue to use it in other posts and will be expanding it.

## Why GitLab

[GitLab](https://gitlab.com/) is an open-source platform for Git repository management, issue tracking, and continuous integration and deployment.

There are other alternatives that you can use instead of GitLab:

- [GitHub](https://github.com)
- [BitBucket](https://bitbucket.org)
- [Azure DevOps](https://azure.microsoft.com/en-us/products/devops)
- [Gitea](https://gitea.io/)
- And many more...

To me, they are all the same. Select the one you are comfortable with, e.g. you already know. Sure, there are differences, but those do not matter for most projects. And if you know about those differences, then you already know what you are doing anyway.

We will focus specifically on GitLab here, because this is what I use for most of the projects and because I like it.

If you don't have an account yet, create one [here](https://gitlab.com/users/sign_up) otherwise login to your account [here](https://gitlab.com/users/sign_in). 

## Start a new project

Start a new project by clicking on the **New project** button.

Select the **Create blank project** option.

![Create blank project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9e8z7n5ko7uuzj9moqdp.png)

Now we are presented with the project creation form. Let's go over each one.

### Project name

Fill in the name of the project, unlike Project URL and slug, this could be easily changed later.

I choose *Beery* because this app will be focused on... you got it, beer 🍻

### Project URL and slug

This is a unique URL for the project on the GitLab platform.

To make it simple, just **select your name** (account) for the Project URL.

> Projects can be part of a Group and a Group can have multiple projects. This is useful for companies and for managing multiple projects/repositories at a higher level. This is usually combined with paid plans.

**Slug** - do not worry about that much. It will be automatically filled based on the project name, and we can **leave it like that**.

### Project deployment target (optional)

At this point, we don't want to mess with any deployments, this can be always configured later.

Select **No deployment planned**. 

### Visibility Level

If your project is closed source (internal) or a new super secret app like "next Facebook" or something, then select the **Private** option here. The project will be accessible only to you and users with explicitly granted permissions.

When you select the **Public** option, then the project is accessible without any authentification, so even for people without a GitLab account.

Beery is Public so everyone can easily access it.

### Project Configuration

Select **Initialize repository with a README** This will enable easy cloning of our repository afterward, so this is what we want.

We do not need **Enable Static Application Security Testing (SAST)** at this point, this is what we can always add later.

This is how it looks in the case of *Beery*.

![New project example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nehoz8p1z4zwib36mamq.png)

Finally, click on **Create project** button. 

Good job! You can check out the Beery project [here](https://gitlab.com/tomaspoddany/beery).

In the next post, we will focus on the initial setup and the first issue/task. Stay tuned!