├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Thank you for your interest in contributing to our GitHub repository. The main goal of this repository is to create a comprehensive list of open-source projects that can serve as learning materials for developers implementing similar features in their applications. 4 | 5 | Before contributing, please ensure you have read through and follow the guidelines below. 6 | 7 | ## How to Contribute 8 | 9 | Create a new pull request with the relevant changes. The quickest way to do this is directly from the GitHub website. No need to clone the repo locally. 10 | 11 | ## Adding a New Project 12 | 13 | To add a new project, you need to edit the README.md file and include the project in the 'Projects' section. Follow the format of the existing projects. Consider the following: 14 | 15 | - The repo should contain real-world apps. Please do not add mini demos or tutorials. The objective is to provide production apps for learning. 16 | - Add the project to the relevant sections. If you think a new section is needed for your project, feel free to add it. Remember, sections should be for major parts of an app, not minor packages or libraries. 17 | 18 | ## Contact 19 | 20 | If you have any questions about contributing or need help with something, feel free to open an issue or send a direct message. 21 | 22 | We look forward to your contributions, and we appreciate your support in our aim to make learning from real-world projects accessible to everyone! 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Elie 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learn from Open Source Projects 2 | 3 | This repo contains a list of real open source projects to learn from. It's often easier to learn from real-world examples. Examples in tutorials are usually limited. 4 | 5 | [Issues](https://github.com/elie222/learn-from-open-source/issues) contains many projects that have yet to be added to the README. They're also a good list of projects to learn from. 6 | 7 | Feel free to make a pull request to add more projects to the list. 8 | 9 | ## Table of Contents: 10 | 11 | - [Angular](#angular) 12 | - [Custom Domains](#custom-domains) 13 | - [Docker](#docker) 14 | - [Drizzle](#drizzle) 15 | - [Gmail API](#gmail-api) 16 | - [OpenAI](#openai) 17 | - [Lemon Squeezy](#lemon-squeezy) 18 | - [Neon](#neon) 19 | - [NestJS](#nestjs) 20 | - [Next.js](#nextjs) 21 | - [Next Auth](#next-auth) 22 | - [Nx](#nx) 23 | - [Phoenix](#phoenix) 24 | - [PostHog](#posthog) 25 | - [Prisma](#prisma) 26 | - [Resend](#resend) 27 | - [Stripe](#stripe) 28 | - [Supabase](#supabase) 29 | - [T3](#t3) 30 | - [Tailwind](#tailwind) 31 | - [Tinybird](#tinybird) 32 | - [Tiptap](#tiptap) 33 | - [tRPC](#trpc) 34 | - [Turborepo](#turborepo) 35 | - [Turso](#turso) 36 | - [Upstash](#upstash) 37 | - [CLI](#cli) 38 | - [Pnpm](#pnpm) 39 | 40 | ## YouTube Channels 41 | 42 | - [Elie Steinbock](https://www.youtube.com/@elie2222) 43 | - [Marc Seitz](https://www.youtube.com/@marcseitz) 44 | 45 | ## Projects 46 | 47 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 48 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 49 | - [Aptabase](https://github.com/aptabase/aptabase) 50 | - [Cal.com](https://github.com/calcom/cal.com) 51 | - [Documenso](https://github.com/documenso/documenso) 52 | - [Dub.co](https://github.com/steven-tey/dub) 53 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 54 | - [Inbox Zero](https://getinboxzero.com/github) 55 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 56 | - [Novel.sh](https://github.com/steven-tey/novel) 57 | - [Papermark](https://github.com/mfts/papermark) 58 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 59 | - [Quivr](https://github.com/StanGirard/quivr) 60 | - [Railtrack](https://github.com/noahflk/railtrack) 61 | - [UnKey](https://unkey.dev/) 62 | - [Vercel Platforms Starter](https://github.com/vercel/platforms) 63 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 64 | - [OpenBio](https://github.com/vanxh/openbio) 65 | - [Zapdos](https://github.com/pingdotgg/zapdos) 66 | - [Tldraw](https://github.com/tldraw/tldraw) 67 | - [Commitgpt](https://github.com/RomanHotsiy/commitgpt) 68 | - [Keep](https://www.github.com/keephq/keep) 69 | - [Impler](https://github.com/implerhq/impler.io) 70 | - [Midday](https://git.new/midday) 71 | - [Wing](https://github.com/winglang/wing) 72 | 73 | ## Angular 74 | 75 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 76 | 77 | ## Custom Domains 78 | 79 | - [Dub.co](https://github.com/steven-tey/dub) 80 | - [Cal.com](https://github.com/calcom/cal.com) 81 | - [Papermark](https://github.com/mfts/papermark) 82 | - [Vercel Platforms Starter](https://github.com/vercel/platforms) 83 | 84 | ## Docker 85 | 86 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 87 | - [Documenso](https://github.com/documenso/documenso) 88 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 89 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 90 | - [Zapdos](https://github.com/pingdotgg/zapdos) 91 | - [Keep](https://www.github.com/keephq/keep) 92 | - [Impler](https://github.com/implerhq/impler.io) 93 | 94 | ## Drizzle 95 | 96 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 97 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 98 | - [OpenBio](https://github.com/vanxh/openbio) 99 | - [UnKey](https://unkey.dev/) 100 | 101 | ## Gmail API 102 | 103 | - [Inbox Zero](https://getinboxzero.com/github) 104 | 105 | ## OpenAI 106 | 107 | - [Inbox Zero](https://getinboxzero.com/github) 108 | - [Novel.sh](https://github.com/steven-tey/novel) 109 | - [Quivr](https://github.com/StanGirard/quivr) 110 | - [Vercel Platforms Starter](https://github.com/vercel/platforms) 111 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 112 | - [Commitgpt](https://github.com/RomanHotsiy/commitgpt) 113 | 114 | ## Lemon Squeezy 115 | 116 | - [Aptabase](https://github.com/aptabase/aptabase) 117 | - [Inbox Zero](https://getinboxzero.com/github) 118 | 119 | ## Neon 120 | 121 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 122 | - [OpenBio](https://github.com/vanxh/openbio) 123 | 124 | ## NestJS 125 | 126 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 127 | - [Impler](https://github.com/implerhq/impler.io) 128 | 129 | ## Next.js 130 | 131 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 132 | - [Documenso](https://github.com/documenso/documenso) 133 | - [Dub.co](https://github.com/steven-tey/dub) 134 | - [Cal.com](https://github.com/calcom/cal.com) 135 | - [Inbox Zero](https://getinboxzero.com/github) 136 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 137 | - [Papermark](https://github.com/mfts/papermark) 138 | - [Quivr](https://github.com/StanGirard/quivr) 139 | - [Railtrack](https://github.com/noahflk/railtrack) 140 | - [Vercel Platforms Starter](https://github.com/vercel/platforms) 141 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 142 | - [OpenBio](https://github.com/vanxh/openbio) 143 | - [Zapdos](https://github.com/pingdotgg/zapdos) 144 | - [UnKey](https://unkey.dev/) 145 | - [Keep](https://www.github.com/keephq/keep) 146 | - [Impler](https://github.com/implerhq/impler.io) 147 | 148 | ## Next Auth 149 | 150 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 151 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 152 | - [Documenso](https://github.com/documenso/documenso) 153 | - [Dub.co](https://github.com/steven-tey/dub) 154 | - [Inbox Zero](https://getinboxzero.com/github) 155 | - [Zapdos](https://github.com/pingdotgg/zapdos) 156 | - [Keep](https://www.github.com/keephq/keep) 157 | 158 | ## Nx 159 | 160 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 161 | - [Impler](https://github.com/implerhq/impler.io) 162 | 163 | ## PostHog 164 | 165 | - [Inbox Zero](https://getinboxzero.com/github) 166 | - [Keep](https://www.github.com/keephq/keep) 167 | 168 | ## Prisma 169 | 170 | - [Documenso](https://github.com/documenso/documenso) 171 | - [Dub.co](https://github.com/steven-tey/dub) 172 | - [Cal.com](https://github.com/calcom/cal.com) 173 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 174 | - [Inbox Zero](https://getinboxzero.com/github) 175 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 176 | 177 | ## Remix 178 | 179 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 180 | - [Zapdos](https://github.com/pingdotgg/zapdos) 181 | 182 | ## Resend 183 | 184 | - [Dub.co](https://github.com/steven-tey/dub) 185 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 186 | - [Papermark](https://github.com/mfts/papermark) 187 | - [OpenBio](https://github.com/vanxh/openbio) 188 | 189 | ## Stripe 190 | 191 | - [Documenso](https://github.com/documenso/documenso) 192 | - [Dub.co](https://github.com/steven-tey/dub) 193 | - [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 194 | - [OpenBio](https://github.com/vanxh/openbio) 195 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 196 | - [Papermark](https://github.com/mfts/papermark) 197 | 198 | ## Supabase 199 | 200 | - [Quivr](https://github.com/StanGirard/quivr) 201 | - [Railtrack](https://github.com/noahflk/railtrack) 202 | 203 | ## T3 204 | 205 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 206 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 207 | - [Cal.com](https://github.com/calcom/cal.com) 208 | - [OpenBio](https://github.com/vanxh/openbio) 209 | - [Railtrack](https://github.com/noahflk/railtrack) 210 | - [Zapdos](https://github.com/pingdotgg/zapdos) 211 | 212 | ## Tailwind 213 | 214 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 215 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 216 | - [Documenso](https://github.com/documenso/documenso) 217 | - [Dub.co](https://github.com/steven-tey/dub) 218 | - [Cal.com](https://github.com/calcom/cal.com) 219 | - [Inbox Zero](https://getinboxzero.com/github) 220 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 221 | - [Papermark](https://github.com/mfts/papermark) 222 | - [Quivr](https://github.com/StanGirard/quivr) 223 | - [Railtrack](https://github.com/noahflk/railtrack) 224 | - [Vercel Platforms Starter](https://github.com/vercel/platforms) 225 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 226 | - [OpenBio](https://github.com/vanxh/openbio) 227 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 228 | - [Zapdos](https://github.com/pingdotgg/zapdos) 229 | - [UnKey](https://unkey.dev/) 230 | - [Keep](https://www.github.com/keephq/keep) 231 | 232 | ## Tinybird 233 | 234 | - [Aptabase](https://github.com/aptabase/aptabase) 235 | - [Dub.co](https://github.com/steven-tey/dub) 236 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 237 | - [Papermark](https://github.com/mfts/papermark) 238 | - [UnKey](https://unkey.dev/) 239 | 240 | ## Tiptap 241 | 242 | - [Novel.sh](https://github.com/steven-tey/novel) 243 | - [OpenBio](https://github.com/vanxh/openbio) 244 | 245 | ## tRPC 246 | 247 | - [Analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) 248 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 249 | - [Cal.com](https://github.com/calcom/cal.com) 250 | - [OpenBio](https://github.com/vanxh/openbio) 251 | - [Zapdos](https://github.com/pingdotgg/zapdos) 252 | 253 | ## Turborepo 254 | 255 | - [AnswerOverflow](https://github.com/AnswerOverflow/AnswerOverflow) 256 | - [Documenso](https://github.com/documenso/documenso) 257 | - [Cal.com](https://github.com/calcom/cal.com) 258 | - [Inbox Zero](https://getinboxzero.com/github) 259 | - [Novel.sh](https://github.com/steven-tey/novel) 260 | - [Trigger.dev](https://github.com/triggerdotdev/trigger.dev) 261 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 262 | - [Dub.co](https://github.com/steven-tey/dub) 263 | 264 | ## Turso 265 | 266 | - [OpenStatus](https://github.com/openstatusHQ/openstatus) 267 | 268 | ## Upstash 269 | 270 | - [Dub.co](https://github.com/steven-tey/dub) 271 | - [Inbox Zero](https://getinboxzero.com/github) 272 | - [YC Idea Matcher](https://github.com/neondatabase/yc-idea-matcher) 273 | - [OpenBio](https://github.com/vanxh/openbio) 274 | 275 | # CLI 276 | 277 | - [Commitgpt](https://github.com/RomanHotsiy/commitgpt) 278 | - [Dun](https://github.com/NickTikhonov/dun-cli) 279 | - [Keep](https://www.github.com/keephq/keep) 280 | 281 | # Pnpm 282 | 283 | - [Impler](https://github.com/implerhq/impler.io) 284 | --------------------------------------------------------------------------------