Last Updated on June 23, 2023
Microsoft’s stance for decades was that community creation and sharing of communal code (later to be known as free and open source software) represented a direct attack on their business. Their battle with Linux stretches back many years. Back in 2001, former Microsoft CEO Steve Ballmer famously tarnished Linux “a cancer that attaches itself in an intellectual property sense to everything it touches”. Microsoft also initiated its “Get the Facts” marketing campaign from mid-2003, which specifically criticized Linux server usage, total cost of ownership, security, indemnification and reliability. The campaign was widely criticized for spreading misinformation.
However, in recent years, there has been a partial shift by Microsoft to embrace the open source software paradigm. For example, some of their code is open sourced. Examples include Visual Studio Code, .NET Framework, Atom, and PowerShell. They have also made investments in Linux development, server technology and organizations including the Linux Foundation and Open Source Initiative. They have made acquisitions such as Xamarin to help mobile app development, and GitHub a hugely popular code repository for open source developers. And they have partnered with Canonical, the developers of the popular Ubuntu distro. But many developers remain hugely sceptical about Microsoft and their apparent shift to embrace open source.
This series looks at the best free and open source alternatives to products and services offered by Microsoft. We launch the series with GitHub.
is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management (SCM) functionality of Git and offers its basic services without charge. But it is not open source which puts some organisations in a difficult position to migrate where they rely on the non-Git elements of GitHub’s service offerings. Vendor lock-in is a legitimate concern.
There are lots of alternatives to GitHub. We only recommend the best open source alternatives to GitHub in this article.
1. GitLab
GitLab, like GitHub, offers version-control distributed git platforms used for storing your code inside git repositories.
GitLab is essentially a comprehensive DevOps platform. It has a mature built-in CI/CD framework, the combined practices of continuous integration and either continuous delivery or continuous deployment. Combine that with code and project management tools, issue reporting, and more, it makes it easy to manage, plan, create, verify, package, secure, release, configure, monitor and defend projects.
Self-host GitLab on your own servers, in a container, or on a cloud provider.
GitLab is published under an open source license.
2. Gitolite
We’re big fans of self-hosting. And storing your code inside your own locally hosted git repository makes a lot of sense. Make sure your backup strategy is sound!
We are also big fans of Gitolite. It lets you setup git hosting on a central server, with fine-grained access control and many more powerful features. Manage a Git server with Git.
While you’ll need to learn how to use Gitolite, this involves simple editing of text files in a Git repository. And the project’s documentation is excellent.
3. Gitea
We also love Gitea as a self-hosted Git service. This is a community managed lightweight code hosting solution written in Go. It aims to offer the simplest way to set up a self-hosted Git service.
Gitea is cross-platform, easy to install, lightweight and published under an open source license (MIT).
4. Gogs
If Gitolite or Gitea don’t float your boat, we also recommend Gogs. It shares many similarities with Gitea (Gitea is a fork of Gogs).
All articles in this series:
Alternatives to Microsoft's Products and Services | |
---|---|
Bing offers search services, including web, video, image and map search products. It's developed using ASP.NET. | |
Calculator is a simple yet powerful calculator that includes standard, scientific, programmer, and graphing calculator functionality, as well as a set of converters between various units of measurement and currencies. | |
Character Map is used to view the characters in any installed font, to check what keyboard input is used to enter those characters, and to copy characters to the clipboard in lieu of typing them. | |
Clipchamp is non-linear editing software that allows users to import, edit, and export audiovisual material in an Internet browser window. | |
Dynamics 365 is a product line of enterprise resource planning and customer relationship management intelligent business applications. | |
Edge is a cross-platform web browser. It is a Chromium-based browser with Blink and V8 engines. | |
Exchange Server is a mail server and calendaring server. Exchange uses a single building block architecture. | |
File Explorer is a file manager application and default desktop environment. It provides a graphical user interface for accessing the file systems, as well as user interface elements such as the taskbar and desktop. | |
GitHub is a distributed version control and source code management functionality service. It includes non-Git elements. | |
Hyper-V is a Type 1 hypervisor; it can create virtual machines on x86-64 systems running Windows. | |
Narrator is a screen reader that’s included with every copy of Microsoft Windows. | |
Notepad is a simple text editor for Windows; it creates and edits plain text documents. | |
Office is a family of client software, server software, and services. Microsoft has promoted Office 365 as the primary means of obtaining Office. | |
OneDrive is a file hosting service and synchronization service. Users can upload Microsoft Office documents to OneDrive. | |
OneNote is a note-taking program for free-form information gathering and collaboration. It gathers users’ notes, drawings, screen clippings, and audio commentaries. | |
Outlook is a personal information manager that's primarily an email client. It includes calendaring, task managing, contact managing, note-taking, journal logging, and web browsing. | |
Paint is a simple raster graphics editor that has been included with all versions of Microsoft Windows. | |
Planner lets users create Kanban boards using content-rich tasks with features including files, checklists, and labels. | |
Power BI is a collection of software services, apps, and connectors that work together to turn your unrelated sources of data into coherent, visually immersive, and interactive insights. | |
PowerPoint is a powerful slide show presentation program. It is a standard component of the company's Microsoft Office suite software. | |
Project lets you develop schedules, assign resources, track progress, manage budget, and more. It's part of the Microsoft Office enterprise project management product. | |
Publisher is a desktop publishing application with focus on page layout and design. Use text, photos and links to make professional publications personal. | |
Remote Desktop lets you connect from afar. Through RDC, you can remotely access multiple computers over the same network, whether they’re at home or at your office. | |
SharePoint is a web-based collaborative platform that’s often used as a document management and storage system. | |
Skype is software for VoIP-based videotelephony, videoconferencing and voice calls. The software also provides instant messaging, file transfer, debit-based calls to landline and mobile telephones (over traditional telephone networks), and more. | |
Snipping Tool is a screenshot utility. It can take still screenshots of an open window, rectangular areas, a free-form area, or the entire screen. | |
Sound Recorder (previously known as Voice Recorder) is an app for recording lectures, conversations, and other sounds. | |
Sticky Notes is software to create notes, type, ink or add a picture, add text formatting, stick them to the desktop, move them around there freely, close them to the Notes list, and sync them across devices and apps. | |
SwiftKey is a virtual keyboard app for Android. SwiftKey learns from previous typed text and outputs predictions based on currently inputted text and what it has learned. | |
Teams is a business communication platform. The service integrates with the company’s Office 365 subscription office productivity suite. | |
Terminal is billed as “a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL”. It offers multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and custom themes, styles, and configurations. | |
To Do is a cloud-based task management application. It allows users to manage their tasks from a smartphone, tablet and computer. | |
Visio is a diagramming and vector graphics application. Database modeling in Visio revolves around a Database Model Diagram (DMD). | |
Visual Studio is an integrated development environment. It is used to develop computer programs, as well as websites, web apps, web services and mobile apps. | |
Whiteboard provides a freeform, intelligent canvas where you and your team can create, and collaborate visually via the cloud. Designed for touch, type, and pen, it lets you write or draw as smoothly as you would with ink. | |
Yammer is a social-networking platform for organizations. It’s a closed platform sometimes described as Facebook for businesses. |
I’m a big fan of both Gitolite and Gitea.
You use both regularly?
There really wasn’t a big migration from GitHub to GitLab when Microsoft purchased GitHub.
Microsoft are determined to be a good custodian of GitHub, they paid $7.5 billion in Microsoft stock for it!
From the open source projects I’ve looked at, the vast majority are still on GitHub rather than GitLab. Why is that? Why is GitHub still way more popular? Inertia?
Can you do another article about using codeberg ?
I use codeberg, until now it has been more than enough for my needs, and it’s slowly getting more support.