# Which open source project to work on?
{id: which-project}

## Your own project
{id: your-own-project}

Pro: You can decide on everything:

* programming language
* technology stack
* architecture
* code layout
* testing

Contra: You have to do everything yourself.

* programming
* documentation
* examples
* design
* logo
* web site for the project

* No users.
* No cooperation from others (at least at the beginning).
* No community.

Advice:

* Something like that probably already exists. Maybe better finding it and contributing to that project.
* Take an existing proprietary product and implement an open source alternative


## A well-known project
{id: a-well-known-project}

* [VS Code](https://code.visualstudio.com/) - [GitHub](https://github.com/Microsoft/vscode/)
* [Django](https://www.djangoproject.com/) - [GitHub](https://github.com/django/django)
* [SQLite](https://www.sqlite.org/) - [source code](https://sqlite.org/src/doc/trunk/README.md)
* [Linux kernel](https://www.kernel.org/) - [source code](https://git.kernel.org/)
* [Blender](https://www.blender.org/) - [Get Involved](https://www.blender.org/get-involved/)

Pro: Sounds good.

Contra: Very difficult

* All the simple problems are already solved.
* The code-base is huge and quite complex.

Pro:

* There might be need for documentation, translation, examples

## A brand new project
{id: a-brand-new-project}

* [Explore GitHub](https://github.com/explore)
* Pick the topic and the language
* Sort by "Recently uploaded" and pick something with 0-1 stars

## A project that is missing something
{id: low-hanging-fruits}

* Missing meta data from the package.
* Missing Continuous Integration.
* Not enough tests (low test coverage).

* [PyDigger](https://pydigger.com/)
* [CPAN Digger](https://cpan-digger.perlmaven.com/)
* [Ruby Digger](https://ruby-digger.code-maven.com/)

## Something that you use
{id: a-project-that-you-use}

* Desktop application
* API of a web site you use.
* Dependencies of the applications at work.

## A project by an organization
{id: projects-by-organizations}

* [Open Source projects by organizations](https://osdc.code-maven.com/open-source-by-organizations/)
* Universities
* Companies
* Governments
* Non-profits

## Awesome lists
{id: awesome-lists}

* [Awesome list](https://github.com/sindresorhus/awesome)
* [Awesome for non-programmers](https://github.com/szabgab/awesome-for-non-programmers)
* [Awesome Open Source Israel](https://github.com/lirantal/awesome-opensource-israel)

## By country of origin (or language spoken by the maintainer)
{id: by-country}

* [Australia](https://github.com/topics/australia)
* [Chile](https://github.com/topics/chile)
* [Germany](https://github.com/topics/germany)
* [Israel](https://github.com/topics/israel)

## Type of project
{id: type-of-project}

* Operating System specific application? (e.g. something for Windows, macOS, or Linux only?)
* Desktop application
* Web applications

## Desktop applications
{id: desktop-applications}

* [Firefox](https://www.mozilla.org/en-US/firefox/new/)
* [Open Office](https://www.openoffice.org/)
* [Libre Office](https://www.libreoffice.org/)
* [VLC](https://www.videolan.org/vlc/)

##  Web application
{id: web-applications}

* [Wordpress](https://wordpress.org/)
* [Forem](https://www.forem.com/) that runs [DEV.to](https://dev.to/)

* [More Web applications](https://dev.to/szabgab/the-most-interesting-open-source-web-applications-356)

* Learning Management Systems LMS-es
* [Moodle](https://moodle.org/)
* [ATutor](https://atutor.github.io/)
* [Sakai](https://www.sakailms.org/)

## JavaScript frameworks
{id: web-frameworks}

* [React](https://react.dev/) - [source](https://github.com/facebook/react)
* [Vue](https://vuejs.org/) - [source](https://github.com/vuejs/vue)
* [Angular](https://angular.io/) - [source](https://github.com/angular/angular)

* Plugins for these

## HTML/CSS frameworks
{id: html-css-frameworks}

* [Bulma](https://bulma.io/)
* [Bootstrap](https://getbootstrap.com/)

## Databases
{id: databases}

* [SQLite](https://www.sqlite.org/)
* [PostgreSQ:](https://www.postgresql.org/) - [Test fram](https://buildfarm.postgresql.org/)
* [MySQL](https://www.mysql.com/)
* [MariaDB](https://mariadb.org/)
* ...

* [Databases on GitHub](https://github.com/topics/databases)

## Compilers
{id: compilers}

* [gcc](https://gcc.gnu.org/)
* [Python](https://www.python.org/)
* [Perl](https://www.perl.org/)
* [Raku](https://raku.org/)

* [Compilers on Github](https://github.com/topics/compilers)


## Networking (TCP/IP)
{id: networking}

* [Wireshark](https://www.wireshark.org/)
* [Snort](https://www.snort.org/)

* [Networking on GitHub](https://github.com/topics/networking)

## Static Site Generators
{id: static-site-generators}

* [Site Generators on on Jamstack](https://jamstack.org/generators/)

## CMS - Content Management System
{id: cms}

* [CMS on GitHub](https://github.com/topics/cms)

## In the OSDC
{id: in-the-osdc}

* Start with small, non-coding changes to projects maintained by the mentor (get used to the process, fast feedback)
* [Open Source by organization](https://osdc.code-maven.com/open-source-by-organizations/)
* Coding projects of each-other.
* Small contributions to other projects.


## Other
{id: other}

* Open source Co-pilot
* Open source AI systems?


