Top 60+ Open-source Apps Written with Golang in 2024
In the fast-paced world of software development, programming languages play a pivotal role in shaping the way we build robust and scalable applications.
One such language that has been gaining significant traction is Go, affectionately known as Golang. With its emphasis on simplicity, efficiency, and productivity, Go has captured the attention of developers worldwide.
Introduction to Go: A Brief Overview
Go, an open-source language initially developed at Google, was introduced to the world in 2009. Since then, it has steadily gained popularity and is now recognized as a powerful and practical programming language. Its clean and concise syntax, strong typing, and compilation efficiency are just a few reasons why developers are turning to Go for their next ventures.
What Sets Go Apart? Key Features and Advantages
Let’s delve into the distinctive features that make Go stand out among other programming languages:
- Concise Syntax and Readability:
- Go’s elegant and concise syntax promotes the readability and maintainability of code. The creators of Go aimed to strike a balance between simplicity and expressiveness.
- Minimalistic syntax eliminates unnecessary punctuation and boilerplate, allowing developers to focus on the core logic of their programs.
- Built-in Concurrency Support:
- Go makes concurrent programming straightforward. Goroutines (lightweight threads) and channels enable efficient parallel execution.
- Developers can easily write concurrent code without dealing with low-level threading complexities.
- Efficient Garbage Collection:
- Go’s garbage collector efficiently manages memory, automatically reclaiming unused memory without causing significant performance overhead.
- This feature ensures stable and predictable performance even in long-running applications.
- Comprehensive Tooling:
- Go ships with a rich set of tools, including the gofmt formatter, go vet for static analysis, and go test for testing.
- The tooling ecosystem simplifies development, maintenance, and collaboration.
- Cross-Platform Compatibility:
- Go compiles to native machine code, making it highly portable across different platforms and architectures.
- Whether you’re targeting Linux servers, mobile devices, or embedded systems, Go has you covered.
Real-World Use Cases and Insights
Go empowers engineers to build highly efficient and scalable applications. Throughout this series, we’ll explore real-world use cases and gather insights from experienced developers.
Whether you’re a seasoned programmer seeking a new language or a curious novice eager to expand your knowledge, stay tuned for valuable insights into why Go has become the language of choice for modern software development.
In this post, we explored the features and benefits of Go, a programming language that has gained popularity in modern software development. We discovered that Go stands out for its simplicity, readability, and clear syntax, making it easier for developers to write clean and maintainable code. 🌟
1. Slash (Productivity)
Slash is an open source, self-hosted links shortener and sharing platform. It allows you to organize your links with tags, and share them with custom shortened URLs. Slash also supports team sharing of link libraries for easy collaboration.
2. Memos (Office & Productivity)
Memos is a privacy-first, lightweight note-taking service. Easily capture and share your great thoughts. It is easy to install locally or on any remote server using Docker or running it directly from the binary file.
3- Writefreely (CMS, Blogging & Productivity)
This is an amazing simple productivity-focused blogging system, that runs fast on any server.
4. Shiori (Productivity)
Shiori is a simple bookmarks manager written in the Go language. Intended as a simple clone of Pocket. You can use it as a command line application or as a web application. This application is distributed as a single binary, which means it can be installed and used easily.
5. Goblog (Blogging & CMS)
This is a simple blogging platform built with Golang. It comes with REST-API, Markdown support, and supports tags, file uploads, and Github Actions.
6. Gowebly CLI (Web Development)
Gowebly CLI is a next-generation CLI tool that makes it easy to create amazing web applications with Go on the backend, using htmx, hyperscript or Alpine.js, and the most popular CSS frameworks on the frontend.
7. goCMS (CMS)
goCMS is a headless CMS (Content Management System) written in Golang using Gin framework + </>Htmx & A-H Templ, designed to be fast, efficient, and easily extensible. It allows you to create a website or blog, with any template you like, in only a few commands.
8. GoLang CMSs
This is a "plug-and-play" content managing system (CMS) for GoLang that does its job and stays out of your way.
Features
- Entity types
- Templates (CMS)
- Pages (CMS)
- Blocks (CMS)
- Menus (CMS)
- Settings (CMS)
- Translations (CMS)
- Custom Types
- Cache Store
- Log Store
- Session Store
- Task Store (queue for background tasks)
9. Xamboo (CMS)
The CMS Framework and web server to build full applications and APIs for Go
10. Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD/
11. Gogs
The Gogs (/gɑgz/
) project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way.
With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.
12. Notes
Notes is a self-hosted note taking web app that lets you keep track of your notes and search them in a easy and minimal way
13. GoLinks
golinks is a web app that allows you to create smart bookmarks, commands and aliases by pointing your web browser's default search engine at a running instance. Similar to bunny1 or yubnub.
14. Photoprism
PhotoPrism® is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way. You can run it at home, on a private server, or in the cloud.
15. CasaOS
CasaOS - A simple, easy-to-use, elegant open-source Personal Cloud system.
16. ListMonk
listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL (⩾ 12) database as its data store.
17. Navidrome (Music Server)
Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!
18. Yao
YAO is an open-source application engine, written in Golang, in the form of a command-line tool that can be downloaded and used immediately. It is suitable for developing business systems, website/APP API, admin panel, self-built low-code platforms, etc.
YAO adopts a flow-based programming model to implement various functions by writing YAO DSL (Logical Description in JSON format) or using JavaScript to write processes. The YAO DSL can be written in several ways:
19. Neko
Neko, a self-hosted virtual browser that runs in Docker and uses WebRTC technology. Neko is a powerful tool that allows you to run a fully-functional browser in a virtual environment, giving you the ability to access the internet securely and privately from anywhere.
With Neko, you can browse the web, run applications, and perform other tasks just as you would on a regular browser, all within a secure and isolated environment.
Whether you are a developer looking to test web applications, a privacy-conscious user seeking a secure browsing experience, or simply someone who wants to take advantage of the convenience and flexibility of a virtual browser, Neko is the perfect solution.
20. Gatus (Developer Tool)
Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others.
The icing on top is that each of these health checks can be paired with alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.
21. Remark42
Remark42 is a self-hosted, lightweight and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles, or any other place where readers add comments.
22. Blocky (DNS Proxy and Ad-blocker)
Blocky is an open-source DNS proxy and ad-blocker for the local network written in Go.
23. Magnetico (Torrent)
magnetico is the first autonomous (self-hosted) BitTorrent DHT search engine suite that is designed for end-users. The suite consists of two packages:
- magneticod: Autonomous BitTorrent DHT crawler and metadata fetcher.
- magneticow: Lightweight web interface for magnetico.
Both programs, combined together, allows anyone with a decent Internet connection to access the vast amount of torrents waiting to be discovered within the BitTorrent DHT space, without relying on any central entity.
magnetico liberates BitTorrent from the yoke of centralised trackers & web-sites and makes it truly decentralised. Finally!
24. Wakapi
This is a minimalist, self-hosted WakaTime-compatible backend for coding statistics.
25. fx (Function as a Service)
fx is a tool to help you do Function as a Service on your own server, fx can make your stateless function a service in seconds, both Docker host and Kubernetes cluster supported. The most exciting thing is that you can write your functions with most programming languages.
26. Gonic (Music Streaming Server)
Gonic is an amazing simple yet powerful music streaming server / free-software subsonic server API implementation.
27. Plik
Plik is a scalable & friendly temporary file upload system (Wetransfer like) in golang.
Features
- Powerful command line client
- Easy to use web UI
- Multiple data backend : File, OpenStack Swift, S3, Google Cloud Storage
- Multiple metadata backend : Sqlite3, PostgreSQL, MySQL
- OneShot : Files are destructed after the first download
- Stream : Files are streamed from the uploader to the downloader (nothing stored server side)
- Removable : Give the ability to the uploader to remove files at any time
- TTL : Custom expiration date
- Password : Protect upload with login/password (Auth Basic)
- Comments : Add custom message (in Markdown format)
- User authentication : Local / Google / OVH
- Upload restriction : Source IP / Token
- Administrator CLI and web UI
- Server side encryption (with S3 data backend)
- Multiarch build and docker images
- ShareX Uploader : Directly integrated into ShareX
- plikSharp : A .NET API client for Plik
- Filelink for Plik : Thunderbird Addon to upload attachments to Plik
28. Artalk
Artalk is a self-hosted open-source commenting system can work very well with any website.
29. OpenGist
Opengist is a self-hosted pastebin powered by Git. All snippets are stored in a Git repository and can be read and/or modified using standard Git commands, or with the web interface. It is similiar to GitHub Gist, but open-source and could be self-hosted.
Features
- Create public, unlisted or private snippets
- Init / Clone / Pull / Push snippets via Git over HTTP or SSH
- Syntax highlighting ; markdown & CSV support
- Search code in snippets ; browse users snippets, likes and forks
- Embed snippets in other websites
- Revisions history
- Like / Fork snippets
- Download raw files or as a ZIP archive
- OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect
- Restrict or unrestrict snippets visibility to anonymous users
- Docker support
30. SignTools (Developer Tool)
SignTools is a sideloading platform that takes a different approach from any similar tools. It consists of two components — a service and a builder. The builder is a macOS machine which performs signing using official Apple software. Doing so means high reliability and compatibility.
The service (this repo) can be hosted anywhere, and it provides a web interface for you to upload, sign, and download apps, using the builder where necessary. Having the web service means that you don't need anything installed on your phone, and you can still sideload without a computer.
31. WatchYourLAN (Networking IP Scanner)
Lightweight network IP scanner with web GUI
32. Traggo
Traggo is a tag-based time tracking tool. In Traggo there are no tasks, only tagged time spans.
With tags, Traggo tries to be as customizable as possible, f.ex. if you work on different projects you could add a project-tag. If you like to see statistics from the different things you do, you could add a type-tag with values like email, programming, meeting. You can do it just as you like.
Features
- easy to setup
- time tracking (obviously)
- customizable dashboards with diagrams
- a list and calendar view of the tracked time
- sleek web ui with multiple themes
- simple user management
33. Gokapi
Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days. It is similar to the discontinued Firefox Send, with the difference that only the admin is allowed to upload files.
This enables companies or individuals to share their files very easily and having them removed afterwards, therefore saving disk space and having control over who downloads the file from the server.
Identical files will be deduplicated. An API is available to interact with Gokapi. AWS S3 and Backblaze B2 can be used instead of local storage. Customization is very easy with HTML/CSS knowledge. Encryption including end-to-end encryption is available.
34. Gossa Multimedia Server
a fast and simple webserver for your files, that's dependency-free and with under 250 lines of code, easy to review.
Features
- 🔍 files/directories browser & handler
- 📩 drag-and-drop uploader
- 💾 90s web UI that prints in milliseconds
- 📸 video streaming, picture browser, pdf viewer
- ✍️ simple note editor
- ⌨️ keyboard navigation
- 🚀 lightweight and dependency free codebase
- 🔒 >95% test coverage and reproducible builds
- 🥂 fast golang static server
- 💑 easy multi account setup, read-only mode
- ✨ PWA-able
- 🖥️ multi-platform support
35. Workout Tracker
A workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities. It can be easily installed using Docker.
36. BricksLLM (AI)
This is an open-source AI-ready 🔒 Enterprise-grade API gateway that helps you monitor and impose cost or rate limits per API key. Get fine-grained access control and monitoring per user, application, or environment. Supports OpenAI, Azure OpenAI, Anthropic, vLLM, and open-source LLMs.
37. Soundscape (Music Streaming Server)
Soundscape - a personal music streaming server.
38. Guora (CMS)
🖖🏻 A self-hosted Quora like web application written in Go.
39. Glance (News & Productivity)
A self-hosted dashboard that puts all your feeds in one place
40. Statusnook (Uptime Monitor for API Endpoints)
Sturdy
Sturdy is an open-source version control platform that allows you to interact with your code at a higher abstraction level.
Features
- Interact with version control at a higher abstraction level (e.g. no need for pushing, pulling, stashing etc.)
- Discover work-in-progress code within your team in real-time
- Try your teammate's code locally with a single click
- Suggest code changes / ideas to a colleague by simply typing in your IDE
- Cloud or self-hosted!
- Enhance your existing GitHub setup, or break free and use standalone Sturdy
41. Matcha
Matcha is a daily digest generator for your RSS feeds and interested topics/keywords. By using any markdown file viewer (such as Obsidian) or directly from terminal (-t option), you can read your RSS articles whenever you want at your pace, thus avoiding FOMO throughout the day.
42. Neko Rooms
This is a free and open-source simple room management system for n.eko. Self hosted rabb.it alternative.
43. Photofield (Media)
Photofield is a photo viewer built to mainly push the limits of what is possible in terms of the number of photos visible at the same time and at the speed at which they are displayed.
The goal is to be as fast or faster than Google Photos on commodity hardware while displaying more photos at the same time. It is non-invasive and can be used either completely standalone or complementing other photo gallery software.
44. OliveTin
OliveTin gives safe and simple access to predefined shell commands from a web interface.
45. Gotly (Download youTube channels)
Gotly is a free and open-source self-hosted service for automatically downloading YouTube channels, playlists and videos. It's like Sonarr, but for YouTube.
46. Leng Block Ads and Fast DNS Server
This is a ⚡ fast dns server, built to block advertisements and malware servers.
Features
- DNS over UDP
- DNS over TCP
- DNS over HTTP(S) (DoH as per RFC-8484)
- Prometheus metrics API
- Custom DNS records support
- Blocklist fetching
- Hardcoded blocklist config
- Hardcoded whitelist config
- Fast startup and tiny image (so it can be quickly redeployed for use with templating for service discovery)
- Small memory footprint (~50MBs with metrics and DoH enabled)
- NixOS Flake for easy deployment
47. Scribble.rs (Drawing)
Scribble.rs is an alternative to the web-based drawing game skribbl.io. My main problems with skribbl.io were the ads and the fact that a disconnect would cause you to lose your points. On top of that, the automatic word choice was quite annoying and caused some frustration.
48. ExerciseDiary
Workout diary with GitHub-style year visualization.
49. MiniBoard
Miniboard is a free and open-source lightweight dashboard with tabs, uptime monitoring and notifications. It can be configured through GUI or yaml file.
It can be easily installed using Docker.
50. Tunneller service (Development)
Tunneller allows you to expose services which are running on localhost
, or on your local network, to the public internet.
This is very useful for testing webhooks, the generation of static-site compilers, and similar things.
51. Inertia CI CD
Inertia is a user-friendly, cross-platform command line application and serverside agent that enables quick and easy setup and management of continuous, automated deployment of a variety of project types on any virtual private server.
52. Litecart (eCommerce)
Litecart is an open source shopping-cart in 1 file of embedded database (SQLite), convenient dashboard UI and simple site.
53. Seelf (Deployment platform)
Seelf is a free and open-source lightweight self-hosted deployment platform written in Go.
54. WireGuard
WireGuard automates fast, secure, and distributed virtual networks.
55. Uptrace
Uptrace is an open source APM that supports distributed tracing, metrics, and logs. You can use it to monitor applications and troubleshoot issues.
Uptrace comes with an intuitive query builder, rich dashboards, alerting rules, notifications, and integrations for most languages and frameworks.
Uptrace can process billions of spans and metrics on a single server and allows you to monitor your applications at 10x lower cost.
Uptrace uses OpenTelemetry framework to collect data and ClickHouse database to store it. It also requires PostgreSQL database to store metadata such as metric names and alerts.
Features
- Single UI for traces, metrics, and logs.
- 50+ pre-built dashboards that are automatically created once metrics start coming in.
- Service graph and chart annotations.
- Spans/logs/metrics monitoring with notifications via Email, Slack, WebHook, and AlertManager.
- SQL-like query language to aggregate spans.
- Promql-like language to aggregate metrics.
- Data ingestion using OpenTelemetry, Prometheus, Vector, FluentBit, CloudWatch, and more.
- Grafana compatibility. You can configure Grafana to use Uptrace as a Tempo/Prometheus datasource.
- Managing users/projects via YAML config.
- Single sign-on (SSO) using OpenID Connect: Keycloak, Google Cloud, and Cloudflare.
- Efficient processing: more than 10K spans / second on a single core.
- Excellent on-disk compression: 1KB span can be compressed down to ~40 bytes.
56. Euterpe (Music Streaming)
Euterpe is self-hosted streaming service for music. Formerly known as "HTTPMS (HTTP Media Server)".
A way to listen to your music library from everywhere. Once set up you won't need anything but a browser. Think of it as your own Spotify service over which you have full control. Euterpe will let you browse through and listen to your music over HTTP(s).
Up until now I've had a really bad time listening to my music which is stored back home. I would create a mount over ftp, sshfs or something similar and point the local player to the mounted library.
57. Urlsh
This is a Golang URL shortener and bookmarker service with UI, API, Cache, Hits Counter and forwarder using postgres and redis in backend, bulma in frontend. Think of it as self hosting ready url shortener.
58. circled.me community server (Media Sharing)
This is a self-hosted open-source Photo, Chat and Sharing Community Server.
59. Eris
Eris is a modern IRC Server / Daemon written in Go that has a heavy focus on security and privacy.
60. Gopher (RFC 1436) Web Proxy
gopherproxy is a Gopher (RFC 1436) Web Proxy that acts as a gateway into Gopherspace by proxying standard Web HTTP requests to Gopher requests of the target server.
61. Tube
tube
is a Youtube-like (without censorship and features you don't need!) Video Sharing App written in Go which also supports automatic transcoding to MP4 H.264 AAC, multiple collections and RSS feed.
Features
- Easy to add videos (just move a file into the folder)
- Easy to upload videos (just use the builtin uploader and automatic transcoder!)
- Builtin ffmpeg-based Transcoder that automatically converts your uploaded content to MP4 H.264 / AAC
- Builtin automatic thumbnail generator
- No database (video info pulled from file metadata, or files next to it)
- No JavaScript (the player UI is entirely HTML, except for the uploader which degrades!))
- Easy to customize CSS and HTML template
- Automatically generates RSS feed (at
/feed.xml
) - Clean, simple, familiar UI
62. Feeds
feeds
is an RSS/Atom feed aggregator for twtxt that consumes RSS/Atom feeds and processes them into twtxt feeds. These can then be consumed by any standard twtxt client such as:
63- ErgoChat
Ergo (formerly known as Oragono) is a modern IRC server written in Go.
Features
- integrated services: NickServ for user accounts, ChanServ for channel registration, and HostServ for vanity hosts
- bouncer-like features: storing and replaying history, allowing multiple clients to use the same nickname
- native TLS/SSL support, including support for client certificates
- IRCv3 support
- yaml configuration
- updating server config and TLS certificates on-the-fly (rehashing)
- SASL authentication
- LDAP support
- supports multiple languages (you can also set a default language for your network)
- optional support for UTF-8 nick and channel names with RFC 8265 (PRECIS)
- advanced security and privacy features (support for requiring SASL for all logins, cloaking IPs, and running as a Tor hidden service)
- an extensible privilege system for IRC operators
- ident lookups for usernames
- automated client connection limits
- passwords stored with bcrypt
UBAN
, a unified ban system that can target IPs, networks, masks, and registered accounts (KLINE
andDLINE
are also supported)