Setting up an open source project

There are few things you should consider when setting up a new open source project. Today, I would like to show you, how I do it and what, in my opinion, is a good way to do it.


For me, that’s a no-brainer - when you want to have an open source project, you host it on GitHub. I know there are other options, like GitLab or BitBucket (which are great for private repositories), but if you want to get some attention or pull requests, GitHub is the way to go.

Creating a Repository

When you create a repository on GitHub, the service asks you for a name, description, but also two very important things - .gitignore file and a license.

.gitignore file

Most of the programming languages have some kind of IDEs. These IDEs create files, which should not be checked in the repository. These are your workspace configurations, compilation artefacts, binaries, nuget or npm packages (sometimes you might want to check these in actually). You can tell GitHub to automatically initialize repository with a .gitignore file prepared specifically for you IDE:


This way, your first commit to the repository will be as clean as possible.


That’s very important point. If you don’t add a license to your project, no one can legally use your work. There are few types of licenses. If you don’t know which one you should pick - there is an app for that! Go to and they will guide you through the options.

For your repository to truly be open source, you’ll need to license it so that others are free to use, change, and distribute the software.

Licensing a GitHub repository/


This one is also worth to add. Through the readme file, you inform others, what you are trying to accomplish and what they can expect from your project. You can also add information how they can run it or contribute. It’s also worth to add a link to a blog if you write about the project.

Initial commit

Now, you can create your project. I usually do an Initial Commit with an empty project generated by Visual Studio. It contains all the project files, configuration etc. I think it’s a good practice to do it because all the future commits show exactly what you have done and don’t include things generated by IDE. This is an initial commit for my new project Stactive.


After completing these steps we have a GitHub repository with a project ready to be worked on. In the next post, I will discuss some of the tools which are available for free for open source projects, which you can use to setup Continue Delivery or automatic deployments of your software.


Michał Dymel's Picture

About Michał Dymel

Passionate software developer interested in Web Development, .NET, Angular, architecture and security. Currently doing remote consulting.

Szczecin, Poland
Web Analytics