Skip to content

Ideas for Projects to Learn Go

Here are 10 project ideas to help you learn Go (Golang) effectively, ranging from beginner to intermediate levels:


Beginner Level

  1. To-Do List CLI

    • Build a command-line application to manage tasks.
    • Features: Add, list, mark as complete, and delete tasks.
    • Learn: File handling, CLI arguments, and Go’s standard library.
  2. Basic Web Scraper

    • Fetch and parse HTML from a website to extract specific data (e.g., headlines or links).
    • Learn: HTTP requests, HTML parsing (goquery), and error handling.
  3. Currency Converter API

    • Create a REST API that converts currencies using real-time rates from a public API like exchangerate-api.
    • Learn: Working with JSON, external APIs, and building HTTP servers.
  4. Markdown to HTML Converter

    • Write a tool that converts Markdown files into HTML.
    • Learn: File I/O and using libraries (like blackfriday).
  5. Simple Chat App (Terminal-based)

    • Implement a basic real-time chat using Go’s networking package.
    • Learn: TCP/UDP connections and goroutines for concurrency.

Intermediate Level

  1. URL Shortener

    • Build a web application that shortens URLs and redirects users to the original link.
    • Learn: HTTP routing, persistent storage (SQLite or Redis), and basic web development concepts.
  2. File Server

    • Create a simple HTTP file server to upload, download, and list files.
    • Learn: File operations, HTTP methods, and authentication.
  3. Personal Finance Tracker

    • Develop an application to track income, expenses, and savings.
    • Features: SQLite or PostgreSQL database, CRUD operations, and a basic UI (CLI or web).
    • Learn: Database integration (gorm or sql package).
  4. Real-Time Stock Price Monitor

    • Build a tool that fetches stock prices periodically and displays trends.
    • Learn: Go’s scheduler (time package), WebSocket support, and API consumption.
  5. Simple RESTful Blog API

    • Create an API for a blog with endpoints for posts, comments, and users.
    • Features: CRUD operations, user authentication, and pagination.
    • Learn: Structuring projects, middleware, and testing in Go.

Bonus Tips:

  • Start with smaller projects and gradually scale up as you become comfortable with Go.
  • Explore Go’s unique features like goroutines, channels, and interfaces in your projects.
  • Use Go’s built-in tools like go fmt, go test, and go doc to improve your development process.

Let me know if you want more details about any project!