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:
- PostgreSQL - Highly regarded as having excellent documentation
- FreeBSD Handbook
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
- Spring Boot - A popular framework for Java
- Apache Camel - An integration library
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:
- Apache Superset - a data exploration and visualisation platform
Shell (including bash)
CLI tools
Terraform
- Book code for Terraform: Up & Running by Yevgeniy Brikman - Example code to accompany Yevgeniy's book
Contribute
Contributions are welcome! Don't submit your own project, but submit a project that you think is well-written and maintained.