-
Notifications
You must be signed in to change notification settings - Fork 35.9k
Add Tutorial: Build your own Youtube clone #1444
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
WalkthroughThe README's table of contents was reorganized for clarity, introducing a hierarchical "Build your own" section with indented tutorials, code-formatted technology names, and new top-level links for "Contribute" and "Origins & License." A TypeScript YouTube clone tutorial using Next.js 15 was also added to the tutorials list. Changes
Possibly related PRs
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
README.md (2)
11-39
: Improve nested list indentation in TOC
The new hierarchical TOC is clear and helps users navigate, but the nested "Tutorials" items are indented with 4 spaces, triggering MD007 (ul-indent). Consider reducing to 2 spaces to align with our markdownlint rules.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
14-14: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
15-15: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
16-16: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
17-17: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
18-18: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
19-19: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
20-20: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
21-21: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
22-22: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
23-23: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
24-24: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
25-25: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
26-26: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
27-27: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
28-28: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
29-29: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
30-30: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
31-31: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
32-32: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
33-33: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
34-34: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
35-35: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
36-36: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
37-37: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
38-38: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
39-39: Unordered list indentation
Expected: 2; Actual: 4(MD007, ul-indent)
478-478
: Add YouTube Clone tutorial link
Great addition of the TypeScript YouTube Clone tutorial! For better organization, you might optionally introduce a dedicated#### Build your own YouTube Clone
section instead of placing it under "Uncategorized."🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
478-478: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
478-478: Emphasis style
Expected: asterisk; Actual: underscore(MD049, emphasis-style)
478-478: Emphasis style
Expected: asterisk; Actual: underscore(MD049, emphasis-style)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md
(2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
README.md
13-13: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
14-14: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
15-15: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
16-16: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
17-17: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
18-18: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
19-19: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
20-20: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
21-21: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
22-22: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
23-23: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
24-24: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
25-25: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
26-26: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
27-27: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
28-28: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
29-29: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
30-30: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
31-31: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
32-32: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
33-33: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
34-34: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
35-35: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
36-36: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
37-37: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
38-38: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
39-39: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
478-478: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
478-478: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
478-478: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
🔇 Additional comments (1)
README.md (1)
40-41
: Top-level links for Contribute & Origins added
The addition of "Contribute" and "Origins & License" anchors matches the headings and improves discoverability. Nice work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
README.md (1)
5-7
: Refine introduction and quote formattingThe new intro line (“This repository is a compilation…”) and the Feynman blockquote set a great tone. Consider tightening the phrasing—e.g., “step-by-step guides” vs. “step-by-step guide”—and verify that the Markdown blockquote renders correctly (leading
>
and a blank line before it).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md
[grammar] ~65-~65: The base form is expected after “to”.
Context: ...?v=qTSDPkPyPqs) [video] - [C#: _How to Augmented Reality AR Tutorial: ARKit Portal to th...
(WHAT_TO_VBD)
[duplication] ~81-~81: Possible typo: you repeated a word.
Context: ...c52) - Go: Building Blockchain in Go - [Go: _Code your own blockchain in less th...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~85-~85: Possible typo: you repeated a word.
Context: ...Script**: Build your own Blockchain in JavaScript](https://github.com/nambrot/blockchain-in-js) - [JavaScript: _Learn & Build a JavaScript Blockcha...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~87-~87: Possible typo: you repeated a word.
Context: ...vaScript**: Creating a blockchain with JavaScript](https://github.com/SavjeeTutorials/SavjeeCoin) - [JavaScript: _How To Launch Your Own Production-R...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~93-~93: Possible typo: you repeated a word.
Context: ...actical Introduction to Blockchain with Python_](http://adilmoujahid.com/posts/2018/03/intro-blockchain-bitcoin-python/) - [Python: Let’s Build the Tiniest Blockchain...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~109-~109: Possible typo: you repeated a word.
Context: ...How to Build Your First Slack Bot with Python](https://www.fullstackpython.com/blog/build-first-slack-bot-python.html) - [Python: _How to build a Slack Bot with Pytho...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~113-~113: Possible typo: you repeated a word.
Context: ...**: How To Create a Telegram Bot Using Python](https://www.freecodecamp.org/news/how-to-create-a-telegram-bot-using-python/) - [Python: _Create a Twitter Bot in Python Usin...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~121-~121: Possible typo: you repeated a word.
Context: ...alize your local git contributions with Go_](https://flaviocopes.com/go-git-contributions/) - [Go: _Build a command line app with Go: l...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~127-~127: Possible typo: you repeated a word.
Context: ...ool) - Rust: Command line apps in Rust - [Rust: _Writing a Command Line Tool in Rust...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~149-~149: Possible typo: you repeated a word.
Context: ... Container Using Less than 100 Lines of Go_](https://www.infoq.com/articles/build-a-container-golang) - [Go: _Building a container from scratch i...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~158-~158: Possible typo: you repeated a word.
Context: ...2d59b25c) - C: Virtual machine in C - [C: Write your Own Virtual Machine](ht...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~163-~163: The handheld game console is spelled as two words.
Context: ....html) - [C++: Emulation tutorial (GameBoy emulator)](http://www.codeslinger.co.u...
(GAMEBOY)
[grammar] ~167-~167: The handheld game console is spelled as two words.
Context: ...2016/12/chip8-cpu/) - [JavaScript: GameBoy Emulation in JavaScript](http://imrann...
(GAMEBOY)
[duplication] ~176-~176: Possible typo: you repeated a word.
Context: ...cript**: Gooact: React in 160 lines of JavaScript](https://medium.com/@sweetpalma/gooact-react-in-160-lines-of-javascript-44e0742ad60f) - [JavaScript: _Learn how React Reconciler package ...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~181-~181: Possible typo: you repeated a word.
Context: ...wn Simplified AngularJS in 200 Lines of JavaScript_](https://blog.mgechev.com/2015/03/09/build-learn-your-own-light-lightweight-angularjs/) - [JavaScript: Make Your Own AngularJS](http://te...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~191-~191: Possible typo: you repeated a word.
Context: ... C: How to Program an NES game in C - [C: Chess Engine In C](https://www.you...
(ENGLISH_WORD_REPEAT_RULE)
[style] ~201-~201: In this context, ‘focus’ is usually used with the preposition “on”.
Context: ...ial in C++ platform independent focused in game logic for beginners_](http://javil...
(FOCUS_IN)
[duplication] ~221-~221: Possible typo: you repeated a word.
Context: ...m/) - Ruby: Developing Games With Ruby - [Ruby: Ruby Snake](https://www.diatomente...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~248-~248: Possible typo: you repeated a word.
Context: ...a simple artificial neural network with Go_](https://sausheong.github.io/posts/how-to-build-a-simple-artificial-neural-network-with-go/) - [Go: _Building a Neural Net from Scratch ...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~252-~252: Possible typo: you repeated a word.
Context: ...hon**: A Neural Network in 11 lines of Python](https://iamtrask.github.io/2015/07/12/basic-python-network/) - [Python: _Implement a Neural Network from Scr...
(ENGLISH_WORD_REPEAT_RULE)
[misspelling] ~270-~270: This word is normally spelled as one.
Context: ...th-keyboard) - [C: Build a minimal multi-tasking kernel for ARM from scratch](https://g...
(EN_COMPOUNDS_MULTI_TASKING)
[duplication] ~278-~278: Possible typo: you repeated a word.
Context: ...loader/) - Rust: Writing an OS in Rust - [Rust: _Add RISC-V Rust Operating System Tu...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~298-~298: Possible typo: you repeated a word.
Context: ... Writing a Simple Garbage Collector in C](http://maplant.com/gc.html) - [C: _C interpreter that interprets itsel...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~310-~310: Possible typo: you repeated a word.
Context: ...o/cradle/) - Haskell: Write You a Haskell - [Haskell: _Write Yourself a Scheme in 48 Hours...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~318-~318: Possible typo: you repeated a word.
Context: ... to implement a programming language in JavaScript_](http://lisperator.net/pltut/) - [JavaScript: Let’s go write a Lisp](https://idi...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~323-~323: Possible typo: you repeated a word.
Context: ...hon**: A Python Interpreter Written in Python](http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html) - [Python: _lisp.py: Make your own Lisp interpr...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~325-~325: Possible typo: you repeated a word.
Context: ...**: How to Write a Lisp Interpreter in Python](http://norvig.com/lispy.html) - [Python: Let’s Build A Simple Interpreter](...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~353-~353: Possible typo: you repeated a word.
Context: ...lding a Vector Space Indexing Engine in Python_](https://boyter.org/2010/08/build-vector-space-search-engine-python/) - [Python: _Building A Python-Based Search Engi...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~360-~360: Possible typo: you repeated a word.
Context: ... - C: Tutorial - Write a Shell in C - [C: Let's build a shell!](https://gith...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~372-~372: Possible typo: you repeated a word.
Context: ...oach: Building a toy template engine in Python_](http://alexmic.net/building-a-template-engine/) - [Python: A Template Engine](http://aosabook...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~387-~387: Possible typo: you repeated a word.
Context: ...gnition System with Machine Learning in Python_](https://medium.com/devcenter/developing-a-license-plate-recognition-system-with-machine-learning-in-python-787833569ccd) - [Python: _Building a Facial Recognition Pipel...
(ENGLISH_WORD_REPEAT_RULE)
[uncategorized] ~404-~404: The official spelling of this programming framework is “Node.js”.
Context: ...t's code a web server from scratch with NodeJS Streams_](https://www.codementor.io/@zi...
(NODE_JS)
[duplication] ~410-~410: Possible typo: you repeated a word.
Context: ...ing a basic HTTP Server from scratch in Python_](http://joaoventura.net/blog/2017/python-webserver/) - [Python: _Implementing a RESTful Web API with...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~419-~419: Possible typo: you repeated a word.
Context: ...**: Learn how to write a hash table in C](https://github.com/jamesroutley/write-a-hash-table) - [C: _The very basics of a terminal emula...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~438-~438: Possible typo: you repeated a word.
Context: ... — call(), apply() and bind() method in JavaScript_](https://blog.usejournal.com/implement-your-own-call-apply-and-bind-method-in-javascript-42cc85dba1b) - [JavaScript: _JavaScript Algorithms and Data Stru...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~453-~453: Possible typo: you repeated a word.
Context: ...o create a real-world Node CLI app with Node_](https://medium.freecodecamp.org/how-to-create-a-real-world-node-cli-app-with-node-391b727bbed3) - [Node.js: Build a DNS Server in Node.js](...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~464-~464: Possible typo: you repeated a word.
Context: ... Content-Based Recommendation Engine in Python_](http://blog.untrod.com/2016/06/simple-similar-products-recommendation-engine-in-python.html) - [Python: _Stock Market Predictions with LSTM ...
(ENGLISH_WORD_REPEAT_RULE)
[duplication] ~465-~465: Possible typo: you repeated a word.
Context: ... Stock Market Predictions with LSTM in Python](https://www.datacamp.com/community/tutorials/lstm-python-stock-market) - [Python: _Building a simple Generative Advers...
(ENGLISH_WORD_REPEAT_RULE)
[uncategorized] ~470-~470: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...lugin) - [Ruby: A Pedometer in the Real World](http://aosabook.org/en/500L/a-pedomet...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[duplication] ~472-~472: Possible typo: you repeated a word.
Context: ... - Rust: Building a DNS server in Rust - [Rust: _Writing Scalable Chat Service from ...
(ENGLISH_WORD_REPEAT_RULE)
🪛 markdownlint-cli2 (0.17.2)
README.md
45-45: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
383-383: Spaces inside link text
null
(MD039, no-space-in-links)
455-455: Spaces inside link text
null
(MD039, no-space-in-links)
🔇 Additional comments (3)
README.md (3)
11-41
: Approve hierarchical Table of Contents restructureThe reorganized TOC now clearly groups “Build your own” projects under a nested “Tutorials” list, and all links use backticks for tech names. Please double-check that each link’s anchor (e.g.,
#build-your-own-3d-renderer
) matches the actual heading IDs after GitHub’s sanitization rules.
475-477
: Approve addition of YouTube clone tutorialThe new TypeScript entry for “Build a YouTube Clone with Next.js 15: React, Tailwind, Drizzle, tRPC” integrates nicely under “Uncategorized.” Ensure the video link is accessible, and consider moving it to its own category once you have other similar entries.
478-482
: Approve new “Contribute” sectionThe “Contribute” guidelines are clear and consistent with the rest of the document. Thanks for adding calls to action for PRs and issue reviews.
add a youtube tutorial to bulid a fullstack youtube clone with Next.js 15: React, Tailwind, Drizzle, tRPC
Summary by CodeRabbit