The Perfect Advanced React/TypeScript Project - Markdown Supported Note Taking With Categories

Поділитися
Вставка
  • Опубліковано 25 гру 2024

КОМЕНТАРІ • 203

  • @jeremydiaz6494
    @jeremydiaz6494 Рік тому +7

    Seriously amazing stuff. I've been studying by Kyle's content for over 3 years now. Just so grateful he makes content.

  • @ederolima
    @ederolima 2 роки тому +15

    24:50 you can use "as const" to indicate that the array is actually a tuple for the compiler

  • @TheJonChristie
    @TheJonChristie 2 роки тому +10

    excellent video! No errors after doing EXACTLY as you instructed and the result is a SOLID TS project. Thanks !!!!

    • @beinerthchitivamachado9892
      @beinerthchitivamachado9892 2 роки тому +1

      He's Goated. There's sooo many tutorials out there where you legit do the same as the video and you get a bunch of errors. Mostly because they become outdated, of course.

  • @ayoubdouch6975
    @ayoubdouch6975 2 роки тому +3

    Kyle is back from the dead and this project is slapping .
    I will do it , thank you!!!

  • @piotrekjazz1287
    @piotrekjazz1287 Рік тому +6

    I watched that through and I am completly lost due to lack of explenation what data will be used further down the line (eg object structures of localStorage, tabs notes etc), this is a common tutorials' problem, but I got a better understanding how the types work. Thanks

  • @victorleyvaramirez4291
    @victorleyvaramirez4291 10 місяців тому

    Ty man, the exact needed proyect for improving my skills, i was trapped in jsx and with this its a lot of help to get my feet into Typescript, Kudos!

  • @MikeIsTechBoi
    @MikeIsTechBoi 2 роки тому +22

    This was great for practicing my MERN Stack skills, I add a custom backed to this project using NestJS, Mongo, and Prisma + User accounts. Glad to see more opportunities to practice my Frontend + Backed skills. Thanks!!!
    Edit: I just replaced Bootstrap with Tailwind in my project cuz I can't stand Bootsrap lol.

    • @MavenSharp
      @MavenSharp 2 роки тому +2

      Great work buddy! Same lol, I also can't stand Bootstrap. Tailwind for the win

    • @yashnaravade5219
      @yashnaravade5219 2 роки тому +3

      NIce work! would you mind sharing the GitHub link for it? I'd love to go through it and follow to make my own too

  • @hunglam2680
    @hunglam2680 2 роки тому +3

    I'm just at the beginning of the course and looking forward to finishing it. Left a like on the video anyway cos i know it will be good!

  • @DarrylHebbes
    @DarrylHebbes 2 роки тому +1

    Oh man so excited that you made this, many thanks!

  • @AnnieBox
    @AnnieBox Рік тому +3

    These Note & RawNote, NoteData & RawNoteData thing... are super confused.. like 28:49, the onCreateNote function, it takes a NoteData as a parameter, and in the function it calls setNotes function, which takes prevNotes as parameter, which supposed to return an array of RawNote. However, it returns an array with prevNotes, and {data, id, tagsIds}.... so confused... 😭🤔

  • @Azoraqua
    @Azoraqua 2 роки тому +4

    If you don't want a certain property of an object, you can use the `Omit` type to omit said property in the resulting type. That may be more practical if there's not much change.
    ```
    type SimplifiedNote = Omit
    ```

    • @codeWithMete
      @codeWithMete 2 роки тому

      Hello, I just create my channel, can you support?😊

  • @GilAguilar
    @GilAguilar 2 роки тому +3

    Thanks for the great content. I haven't worked much with TypeScript but can see the benefits of using it. This was an amazing tutorial!!!

  • @Vthoen
    @Vthoen 4 місяці тому

    Nice tutorial, as a beginner (needed to change the speed to 0.75 but) good to follow!

  • @BeeBeeEight
    @BeeBeeEight Рік тому +5

    Thank you for showing us how to do this typescript project, I really learnt a lot especially about that custom hook which I'm quite sure is actually used a lot in many projects.
    I also like to highlight that the people behind react router are the same ones developing the Remix fullstack framework and both use the same names for variables and functions eg. Outlet, Link, useLoaderData, useParams, useActionData etc. I was hoping that if you're a keen user of react router you could show us how to implement a fullstack app with Remix too. 😊

  • @NotesNNotes
    @NotesNNotes 2 роки тому +7

    just completed - as a novice to TS with a minimal understanding of React, it took me about 4 hours
    something broke towards the end and I had to spend a fair amount of time digging through the code (it was the use of a colon instead of =, lol)
    I'm excited to make some tweaks + stylize / modularize as needed!
    thanks, Kyle, for another super useful and concise tutorial :)

    • @Michael-Martell
      @Michael-Martell 2 роки тому

      That happens every time I learn something new. It does get to a point though when you know exactly what to look for in clean code and debugging! Keep it up!

  • @salmanSyntax
    @salmanSyntax 2 роки тому +1

    You are simply the best. Great work kyle, Keep it coming. Thanks a lot for these videos.

  • @PaulnJenna
    @PaulnJenna Рік тому +2

    As with all coding tutorials: 10-15 mins in = "Wow, I get all this, I'm actually understanding how to code".... 15+ minutes = "I have no idea what's going on, I'm an imposter, I have zero clue about coding" lol

  • @timothypark1037
    @timothypark1037 2 роки тому

    Thank you so much for this wonderful tutorial! Many thanks from South Korea :D😀

  • @AmandeepSingh-sx9ke
    @AmandeepSingh-sx9ke 3 місяці тому

    Thank you for all your videos and teaching.

  • @kaze-xo
    @kaze-xo 3 місяці тому

    Holy shit I finally followed everything! Good job to myself!!!

  • @mumk
    @mumk Рік тому +1

    Thanks Kyle, very interesting! God bless you!

  • @nickolaizein7465
    @nickolaizein7465 2 роки тому

    Really, this is my one of the best programming channesl! Interesting and usefull information. 😇 Nice explanation and cool ideas :)

  • @JackTomasik
    @JackTomasik Рік тому +1

    Have a bug when trying to style the NoteCard component at 48:36, vscode is saying styles.card is deprecated. Anyone one else get this issue or know how to fix it? Thanks!

  • @Lion-mh9rq
    @Lion-mh9rq Рік тому +1

    Really like your video, please make more tutorial about typescript, and may be full stack react-project with docker/docker compose

  • @serviobarbosa
    @serviobarbosa 2 роки тому

    Hi, just finished this project with your help, thanks. Amazing video as aways.
    One small adjustment I would make is when we delete a note, also delete the tags associated with this note (in the case when they are not associated with a diferent note)

  • @FrancoTr20
    @FrancoTr20 Рік тому

    great project mate, thank you for sharing

  • @IshanKesharwani
    @IshanKesharwani 2 роки тому +1

    Saw the video intro and seems like a 3-day task since I never worked wi TS. Will dedicate these 3 days specifically for this.

  • @Kas1m_
    @Kas1m_ 2 роки тому

    Starting it now thanks man ❤

  • @fabianschober
    @fabianschober Рік тому

    Yo Kyle, what about Angular? I would love to see a series on Angular!

  • @studyingasyouwere
    @studyingasyouwere 2 роки тому +7

    Thank you for this video. I have been posting web dev content using HTML and CSS, but am interested in learning React. These types of videos will help me a ton!

    • @gubatenkov
      @gubatenkov 2 роки тому +3

      Learn Next.js it is used in many commercial projects

    • @studyingasyouwere
      @studyingasyouwere 2 роки тому +2

      @@gubatenkov Yes, Next.js is on my list! Thank you for the tip 😀

    • @WarframeCrunch
      @WarframeCrunch 2 роки тому

      @@gubatenkov React isn't using next.js? When you type create react app?

    • @muhammaderza7097
      @muhammaderza7097 2 роки тому +1

      Learn JS first

    • @studyingasyouwere
      @studyingasyouwere 2 роки тому

      @@muhammaderza7097 That sounds sensible. Thank you for the tip!

  • @azatecas
    @azatecas 2 роки тому

    thank you, i was planning on making something like this to replace Standard Notes and bundle it with tauri

  • @ghalitsar2730
    @ghalitsar2730 Рік тому

    how to implement passing "onSubmit" function 29:00 in NextJs... i`ve created 2 page 1 for "home-page" , and 1 for "new-page" and I was writing code at "home-page" and suddenly I just wondering how to pass "onSubmit" function to another page... and I think its impossible ? but I understand that I was wrong to put code at "home-page" but where should I put the code?

  • @navid.elyasi
    @navid.elyasi 11 місяців тому

    thanks for your great contents 💯💯💯💯 really appreciate your work 🙏🙏🙏🙏

  • @ilyaselaissi1628
    @ilyaselaissi1628 2 роки тому +1

    This is a masterpiece

  • @yuksak
    @yuksak 2 роки тому +4

    Could you create such or a bigger app using sass/scss please? Because there’s no such content on youtube that explains style side and its folder structure etc. I mean ofc there are but they don’t show how to use in bigger projects. I know basic sass/scss features. But i struggle using it in a bigger project

  • @beinerthchitivamachado9892
    @beinerthchitivamachado9892 2 роки тому

    Kyle, you're THE GOAT!!!

  • @alibadra5367
    @alibadra5367 2 роки тому +3

    Kyle I was trying the as prop and it's not working I think you faced the same problem since you always used the as={link} instead of nesting elements

  • @billy8461
    @billy8461 2 роки тому

    i wish you did videos like this using Angular cuz your explanations are god like..

  • @ImNotSoLegit
    @ImNotSoLegit 2 роки тому +1

    How do you prevent the page from refreshing when trying to edit a tag? I can't see how it is working on his end the way its currently coded.

  • @Exypnos
    @Exypnos Рік тому

    Anybody else running into this issue at 28:52 in the onCreateNote function? Typescript compiler is giving me an error Argument of type '(prevNotes: RawNote[]) => (RawNote | { id: string; tagIds: void[]; title: string; markdown: string; })[]' is not assignable to parameter of type 'SetStateAction'.

    • @Sam-rz5hw
      @Sam-rz5hw Рік тому

      you might have forgot a return statement if you are using curly braces, otherwise you can use paranthesis

  • @WarframeCrunch
    @WarframeCrunch 2 роки тому +1

    Ok thats not for me I stuck at 17:30 this is going too fast to understand I just give up.

  • @krish_unni
    @krish_unni 2 роки тому

    Great stuff. Thanks 👍

  • @prayushdave
    @prayushdave Рік тому +2

    Thank you man for the amazing project! After completion, I am trying to implement Unit Testing using React Testing Lib and Jest. Any resources and suggestions for it!?

  • @NoC67000
    @NoC67000 Рік тому +1

    Merci pour le tuto!

  • @ChrisK-ef8np
    @ChrisK-ef8np 2 роки тому +2

    I was just about to create a similar project, but in svelte. 😂

  • @osmancho3185
    @osmancho3185 2 роки тому +1

    Thank you for this interesting tutorial! I think this is more for middle developers, I didn't understand some parts.
    The only thing is that when you delete a note, the associated tag remains in the list even if there is no notes with this tag anymore. So it makes sense to inject an algorithm that deletes a tag which has no associated note.

  • @gudsoundz432
    @gudsoundz432 7 місяців тому

    Please do a project on in-browser markdown with React(typescript). Thank you

  • @aram5642
    @aram5642 2 роки тому +8

    Should you ever run out of ideas for tutorials, I would be happy ti see you build (and test!) a project with a cron-like funtionality, ie. sending reminders at a specific time.

  • @grimmdanny
    @grimmdanny 2 роки тому

    Markdown is a really outdated 90s era method of formatting that I wish had been forgotten to time.

  • @bahaaaldein5723
    @bahaaaldein5723 Рік тому

    thanks a lot ♥️♥️

  • @Anonymous____________A721
    @Anonymous____________A721 10 місяців тому +1

    Can anyone pls explain how useNote is working in all components 😢😢

  • @RealLexable
    @RealLexable 2 роки тому

    Man,.. seems to be too far beyond my head yet,.but sounds amazing

  • @clarkdnro
    @clarkdnro 2 роки тому +1

    I love the useLocalStorage hook

    • @nogovi2686
      @nogovi2686 7 місяців тому

      it doesnt actually work

  • @pratham15541
    @pratham15541 2 роки тому

    Thanks wds for this project

  • @otabeksodikov2773
    @otabeksodikov2773 Рік тому

    thanks for great content

  • @tobethebestfounou9409
    @tobethebestfounou9409 2 роки тому

    Please help me out of this problem with my nodejs application " Content Security Policy: The page’s settings blocked the loading of a resource at inline (“default-src”)" i am new to nodejs

  • @kashmirtechtv2948
    @kashmirtechtv2948 5 днів тому

    why are you not using the id directly on rawData instead of creating a sepaarte type raw with just id?

  • @gudsoundz432
    @gudsoundz432 7 місяців тому

    please do a tutorial on how to create an in-browser markdown editor tool. please use React and Typescript, styled components. thank you

  • @mikamanelka1326
    @mikamanelka1326 2 роки тому

    I see React + TS, I like

    • @codeWithMete
      @codeWithMete 2 роки тому

      Hello, I just create my channel, can you support?😊

  • @yevhenlysenko7444
    @yevhenlysenko7444 2 роки тому

    perfect lesson!

  • @treyrader
    @treyrader Рік тому

    Kyle! love your content bro. But yo check it's pronounced "Veet" lol. It's a french term meaning "to be quick". I've heard ya pronounce it Veet before, but we gotta keep the french alive! lol cheers

  • @CaliburPANDAs
    @CaliburPANDAs 2 роки тому +2

    Kyle, can you do a video about tech layoffs and what it means for self-taught and new grads applying? Thanks 🙏🏻

    • @rdubb77
      @rdubb77 Рік тому

      Others have. Basically you have no chance if you're just applying to jobs. Too few jobs and way too many people looking. It will come down to pure networking, and getting to know people personally and personally helping out on projects, paid or not to get known. That's essentially the only way in now.

  • @AM-nm6ts
    @AM-nm6ts 2 роки тому

    thanks for the video, but please could you add the link 10:37 thanks a lot

  • @bikrantjungbudhathoki3687
    @bikrantjungbudhathoki3687 2 роки тому

    I want to ask a question to someone who has already finished this video. Is it worth watching this video(just to learn some advanced typescript) ? I mean there are lot of typescript with react videos where they just create some basic interfaces and types and whenever they encounter some type error they just use "any" and say "we can ignore it for now". Is this video different than others ?

  • @regilearn2138
    @regilearn2138 2 роки тому +1

    Why are you not using arrow functions components? any reason for that

    • @rdubb77
      @rdubb77 Рік тому

      I was wondering the same thing too. Probably habit. BTW you're talking about Function Expressions, not Function Declarations, Function Expressions happen to use the arrow in modern usage. The main benefit to Function Expressions are that you need to define them before using them, which makes the code more readable, but I guess it doesn't matter so much for components.

  • @kashmirtechtv2948
    @kashmirtechtv2948 5 днів тому

    whats better? highlight or posthog?

  • @regilearn2138
    @regilearn2138 2 роки тому +1

    MERN + RTK QUERY + TYPESCRIPT ADVANCE Project please ❤❤❤❤

  • @_hugo_cruz
    @_hugo_cruz 2 роки тому

    Thanks bro!!!!

  • @francoagustin765
    @francoagustin765 Рік тому

    why do you not use ESLINT ? is not necesary for you or what is your opinion for this?

  • @mohammedraqeeb4392
    @mohammedraqeeb4392 2 роки тому

    THANK YOU FOR THE AMAZING VIDEO MATE. Please consider our request to stop using bootstrap. Please!

  • @sanvirahmed
    @sanvirahmed 2 роки тому

    Maybe the video was recorded more than one month ago, right?
    You are using the old routing system😊

  • @lorenzowynberg
    @lorenzowynberg 2 роки тому

    Thanks Boss!

  • @asvicnal8483
    @asvicnal8483 2 роки тому

    Would you be able to put together a crash course on DynamoDB and HTTP Module?

    • @codeWithMete
      @codeWithMete 2 роки тому

      Hello, I just create my channel, can you support?😊

  • @adamhuss3679
    @adamhuss3679 4 місяці тому

    How is he running the TypeScript without compiling and getting duplicate JavaScript files? I've been trying to do this.

  • @thequang9234
    @thequang9234 2 роки тому

    will all the notes be persistent through refreshes ?

  • @rs-vd1ds
    @rs-vd1ds 2 роки тому

    Can you make a video on microfrontends

  • @Kacper-r5v
    @Kacper-r5v 2 роки тому

    map function on useMemo in App.tsx is throwink an TypeError and breakes the application

  • @kashmirtechtv2948
    @kashmirtechtv2948 5 днів тому

    why are you filtering based on title and not the id?

  • @ivanfilhoz
    @ivanfilhoz 2 роки тому

    17:53 - That explanation on the required fields is not accurate. The non-null assertion operator (!) is applied to the "current" key, which relates to the input DOM element itself, not its value. Other than that, nice tutorial. Thanks!

  • @theRINspace
    @theRINspace Рік тому +1

    Why did he use types to define the structure of the notes instead of an interface?

  • @kashmirtechtv2948
    @kashmirtechtv2948 5 днів тому

    why are you using useref instead of usestate

  • @sujoydutta920
    @sujoydutta920 2 роки тому +1

    Nice valuable tutorial and coding with TS just makes it a hell of a lot better project. One question can I use MUI instead of react-bootstrap?

  • @derciojds
    @derciojds 2 роки тому

    Bootstrap is good for the prototype

    • @codeWithMete
      @codeWithMete 2 роки тому

      Hello, I just create my channel, can you support?😊

  • @OcasoND
    @OcasoND 2 роки тому +1

    It definitely got sweaty 20 mins in ..

  • @nguyenhuudungz
    @nguyenhuudungz 2 роки тому +1

    So advanced =))).

  • @clashol
    @clashol Рік тому

    I can follow the tutorial and understand it but I can't really do it on my own, How can I change that?

    • @falcon94q
      @falcon94q Рік тому +1

      Everyone has this problem, not just you. Therefore, you need to start with very simple projects, and then gradually make more complex ones. Otherwise, it won't work.

  • @jordankhalil8961
    @jordankhalil8961 Рік тому

    Dude I put you on .05 playback speed just to keep up

    • @rdubb77
      @rdubb77 Рік тому

      That's par for the course for most tutorials; they're edited to be around an hour, so you need to listen slow and pause a lot to stay with them.

  • @djibrilm__-
    @djibrilm__- Рік тому

    and me who was lying to myself that I knew enough typescript

  • @whonayem01
    @whonayem01 2 роки тому

    Thanks.

  • @sofiamouchard8902
    @sofiamouchard8902 Рік тому

    For me a got this problem: Router' cannot be used as a JSX component. Its instance type 'BrowserRouter' is not a valid JSX element// but I could be fixed when asked google:
    Your react-router-dom is at version "^5.2.2" while your @types/react-router-dom is set to "^5.1.7".
    There is also a difference in your react-dom versions. Your react-dom is at version "^16.8.6" while your @types/react-dom is set to "^16.8.12".
    Try doing: npm i react@16 react-dom@16 react-router-dom@5 @types/react@16 @types/react-dom@16 @types/react-router-dom@5
    doing that solved it.. If anyone else got the same problem.

  • @WarframeCrunch
    @WarframeCrunch 2 роки тому

    I will be learning that tommorrow, time for Counter Strike.

  • @lisali6205
    @lisali6205 Рік тому

    thanks

  • @labhamjain3915
    @labhamjain3915 2 роки тому

    You may prefer daisyui over bootstrap

  • @arqsz
    @arqsz 2 роки тому

    Nice!

  • @karthikm.1804
    @karthikm.1804 2 роки тому

    please same project with vanilla js

  • @debugpro
    @debugpro 2 роки тому

    pls make this using NEXT JS

  • @Kacper-r5v
    @Kacper-r5v 2 роки тому

    Amazing video! You could use React.useState, React.useRef etc... instead of importing them.

  • @harunjeylan9362
    @harunjeylan9362 2 роки тому

    thanks🙏🙏🙏🙏🙏

  • @ryanhajji
    @ryanhajji 5 місяців тому

    25:39

  • @ryanhajji
    @ryanhajji 5 місяців тому

    40:08