Skip to content

Latest commit

 

History

History
108 lines (65 loc) · 4.13 KB

README.md

File metadata and controls

108 lines (65 loc) · 4.13 KB

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 sample code from training courses and books. By studying real codebases, it becomes easier to put theory into practice, and learn new languages, frameworks, and best practices.

The ideal projects for this repo have some or all of the following characteristics:

  • 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:

  • Edx - a web application for creating and delivering courses and online training
  • Netbox - a network management web application
  • Sentry - error-tracking platform
  • Wagtail - Django-based CMS

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.