monodot / awesome-codebases

A curated list of real codebases to learn from and be inspired by.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Codebases Awesome

A curated list of real world code and documentation to learn from

I don't know about you, but when I'm learning new things, I like to look at existing codebases -- to see how they do it.

So let's build a list of high-quality, real world codebases to learn from -- from libraries and standalone applications, to code from training courses and books. By studying real codebases, it can become easier to put theory into practice, and learn new languages, frameworks, and security practices.

The ideal projects for this repo are:

  • Well-known projects or websites which you might already be using every day
  • Well-written code that follows the conventions of the language/framework
  • Tests (lots of them)
  • Good documentation
  • Actively maintained

Contents

Documentation

These projects have great docs:

Go

CLI tools

  • kubectl - The Kubernetes client
  • flyctl - The client for fly.io
  • k9s - Rich CLI tool for managing Kubernetes clusters, uses tview

Java

Libraries

Applications

  • Spring Petclinic - The canonical example application to learn Spring
  • OpenSearch - A distributed, open source, RESTful search and analytics application

Find trending Java projects on GitHub

JavaScript

Vue

  • GitLab - The CE (Commmunity Edition) of GitLab. Uses Ruby for the backend.
  • n8n - Tool for automating tasks and data integration between apps. (Not strictly open-source, but you can still view the code.)

Python

Libraries

  • FastAPI - a framework for building APIs with Python
  • Pydantic - a library for data validation
  • Rich - a library for rich text and beautiful formatting in the terminal

Find trending Python projects on GitHub

Standalone applications

  • httpx - an HTTP client for Python, which can also be run as a CLI tool
  • spack - a universal package manager

Django web applications

End user applications which are implemented using Django.

  • Netbox - a network management web application
  • Edx - a web application for creating and delivering courses and online training

Flask applications

Applications that use the Flask framework:

Shell (including bash)

CLI tools

  • rbenv - a tool for managing Ruby versions
  • nvm - a tool for managing Node.js versions

Terraform

Contribute

Contributions are welcome! Don't submit your own project, but submit a project that you think is well-written and maintained.

About

A curated list of real codebases to learn from and be inspired by.

License:Creative Commons Zero v1.0 Universal