Christopher Ehrlich
Christopher Ehrlich
  • Видео 9
  • Просмотров 74 838
How to make your team love you
Follow me on Twitter: ccccjjjjeeee
Examples are from the Axiom codebase (axiom.co)
Просмотров: 2 517

Видео

How to get into Open Source
Просмотров 6 тыс.Год назад
My stuff: ccccjjjjeeee github.com/c-ehrlich
45% failed Dan's Server Component Quiz
Просмотров 1,9 тыс.Год назад
🚨 Dan left two comments with corrections. Unfortunately I can only pin one, but both are worth reading 🚨 Dan's tweet dan_abramov/status/1648923232937058304 Repo: github.com/c-ehrlich/dan-quiz Ryan Carniato's stream with Nikhil: ruclips.net/video/jwppKc4avIk/видео.html Kent C Dodds' stream with Joe Savona and Dan Abramov: ruclips.net/video/h7tur48JSaw/видео.html My stuff: twitter.com...
WinRAR in 100 Seconds
Просмотров 11 тыс.Год назад
Download WinRAR 4.20 www.oldversion.com/windows/winrar-4-20 Inspired by this tweet ThePrimeagen/status/1622698478697648160 Find me on Twitter: ccccjjjjeeee
Getting the most out of NextAuth.js
Просмотров 2 тыс.Год назад
NextAuth.js docs next-auth.js.org/getting-started/introduction Repo used in this video: github.com/c-ehrlich/t3-auth-kitchen-sink Find me on twitter: ccccjjjjeeee
You need to understand this about Next.js
Просмотров 6 тыс.Год назад
Ryan's excellent stream: ruclips.net/video/QS9yAsv1czg/видео.html Repo used for the demo: github.com/c-ehrlich/next-is-an-spa Find me on Twitter: ccccjjjjeeee
Advanced tRPC - Callers, functions, and gSSP
Просмотров 8 тыс.Год назад
🚨 createSSGHelpers has been renamed to createServerSideHelpers 🚨 Repo for this video: github.com/c-ehrlich/you-dont-need-callers If you want to use schema in the frontend, they cannot be imported from the same file as things that run specifically in the backend. One solution would be to put them into a `procedureName.schema.ts` or similar file. tRPC: trpc.io/docs Create T3 App: create.t3.gg/ Fi...
How tRPC really works
Просмотров 35 тыс.Год назад
Larger version of the diagram: c-ehrlich.dev/img/youtube/trpc-data-flows.png This video explains tRPC from an app developer's perspective. Resources: tRPC: github.com/trpc/trpc tRPC Docs: trpc.io/docs/ Create T3 App: github.com/t3-oss/create-t3-app Chris Bautista's 🚮 NextConf Talk: ruclips.net/video/2LYM8gf184U/видео.html My links: ccccjjjjeeee github.com/c-ehrlich Thanks to Sachin,...

Комментарии

  • @jfhandfield
    @jfhandfield Месяц назад

    Great video. Thank you for the video.

  • @pablovargas859
    @pablovargas859 3 месяца назад

    This is gold my friend! Excellent video!! This mindset make PRs a training tool, so people can use PRs a information that they can learn from, even in other teams.

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 3 месяца назад

    Another problem is: if you changed code and it uses another 3rd party library or just start using just another cal, of the 3rd party library, then you need to review the library also. Most people consider it as a back box working correct, but it isn't rue.

  • @codenocode
    @codenocode 3 месяца назад

    yesss

  • @igrb
    @igrb 3 месяца назад

    Can confirm, the team loves chris now I know how to make them love me!

  • @ChristianBrugger
    @ChristianBrugger 3 месяца назад

    Great video, and I think there is an even deeper point here. Empathize with the needs of your team. I have been in projects where communication was not done through code review. Do what you say apply. Well, directly not, but indirectly full on. At some point somebody looked at my stuff as well, and I could have done way more to make their life much easier! Thanks for the pointer to think into this direction. I like especially the idea of pictures about design decisions / changes, will think about how I can incorporate that into my work.

  • @farcesable
    @farcesable 3 месяца назад

    I'll be brutally honest here; if someone ever submits a PR for a project and includes a video with narration I'm just going to reject the PR outright.

    • @ccccjjjjeeee
      @ccccjjjjeeee 3 месяца назад

      why

    • @chhunkim-fr5rk
      @chhunkim-fr5rk 3 месяца назад

      What the reason for reject?

    • @RedShipsofSpainAgain
      @RedShipsofSpainAgain 3 месяца назад

      ​@ccccjjjjeeee Because it's ridiculous to have to uncles a video narration of your PR. If a PR isn't intuitive amd simple enough for a reviewer to understand it, then it's too big of a PR, too complex of a PR, or both.

    • @galactic_dust42
      @galactic_dust42 3 месяца назад

      @@ccccjjjjeeee First of all: storage, why wasting tons of storage and bandwidth (even if it's not yours), while text is very lightweight ? The trends of transforming everything into a video, completely destroy people attention and their ability to concentrate on a task. If you can't summarize or synthetize enough your work into a clear, short and concise PR, then it's a bad PR. And finally, in terms of waste of time, videos are the ultimate thing. If i need to search for a specific things across the PR history, i have to watch dozen of videos (probably hours longs ?) while a simple text search whould match it instantly ?! Come on, let's be serious.

  • @atomnorbi8271
    @atomnorbi8271 3 месяца назад

    Cool! But I think we should start small. How can I make my family love me?

    • @ccccjjjjeeee
      @ccccjjjjeeee 3 месяца назад

      By getting better at working for a b2b saas company, obviously.

  • @mshubitidze
    @mshubitidze 3 месяца назад

    what an amazing, to the point vid, thanks cj

  • @nsttt
    @nsttt 3 месяца назад

    Amazing vid

  • @moka7986
    @moka7986 7 месяцев назад

    That's what exactly I was looking for. Thanks! One question, I don't see any 'use client' directive on your code and useState is supposed to be used only under 'use client' as far as I know. How did you do that?

    • @fredseni7261
      @fredseni7261 6 месяцев назад

      I think at the time of making the video , next wasnt using react server components .

    • @ccccjjjjeeee
      @ccccjjjjeeee 2 месяца назад

      Yes, this video was about Pages directory, which doesn't have Server Components. The new model is more complicated, I'm not quite sure what to call it.

  • @rig-xf6or
    @rig-xf6or 8 месяцев назад

    It would be great if you done a video to explain how trpc works with nextjs react server components (i.e. when using .query() instead of .useQuery()). I intend to keep using trpc for the forseeable so i can build out a mono repo of all my applications with different clients that share the same backend / auth / types.

  • @rig-xf6or
    @rig-xf6or 8 месяцев назад

    Great video thanks! I've been using ct3a to build all my companies applications but now have a good bit of confidence of how all the trpc magic works. Will be making some middlewares this week!

  • @SuperKidontheblock
    @SuperKidontheblock 8 месяцев назад

    That thumbnail is wild man. Lmao

  • @mosescosme8629
    @mosescosme8629 9 месяцев назад

    Brilliant video. Very glad to have found this.

  • @OtterSwims
    @OtterSwims 10 месяцев назад

    This is a great explainer and helps me understand t3 app structure much better, but would be a bit nicer if we had access to the github source code you shared here so we could look at the files ourself to understand better. Thanks!!

  • @philbrk8750
    @philbrk8750 10 месяцев назад

    thank you a lot. This is incredibly helpful. Videos like yours enable me to move forward in this field of programming. Going through all of this only with the tRPC docs would have probably taken me weeks or made me quit :D

  • @lvargascol
    @lvargascol Год назад

    Thanks man! This really help me out

  • @mauriciabad
    @mauriciabad Год назад

    Really good video! It's quite hard to find software engineering videos that are not code tutorials, and actually talk about advanced stuff. I'm starting to contribute to open source and this video helped me understand how to do it effectively and how to progress. Thanks

  • @2hari-g2b
    @2hari-g2b Год назад

    I am still wondering how TRPC manages to share types between different codebases say a simple react SPA (not Nextjs) and and express server. How is the library able know about the code in other other codebase ? Is it just that we rely on zod to do checks on both side ? that way we have to remember zod object schema - but I never saw it happening. So still wondering...

  • @marketinga2z
    @marketinga2z Год назад

    You are amazing! Thanks to you, now I can statically generate all the dynamic routes that have fixed content! BTW, I did land on that page at some point! 😂

  • @greendsnow
    @greendsnow Год назад

    trpc is just another patch for nextjs's missing feature e2e typesafety. I invite you to Sveltekit.

  • @yuxiang4218
    @yuxiang4218 Год назад

    Really helpful! Thanks!

  • @giovannimaendra4006
    @giovannimaendra4006 Год назад

    Thanks for the explanation! Really help me to get better understanding of TRPC flow in 20 minutes, keep it up 🔥

  • @toohee8561
    @toohee8561 Год назад

    Thankyou

  • @filipniklas
    @filipniklas Год назад

    Good stuff!

  • @kubakazimierczak6646
    @kubakazimierczak6646 Год назад

    Thanks Chris for explaining all of this. Your video touches on many topics, but lacks timestamps, so I wrote them down: 0:48 - Separate common logic into it's own functions 3:14 - How to structure your project How to call tRPC procedures from getServerSideProps: 5:05 - createCaller() 5:33 - just call an extracted function (see 0:48) tRCP calls with dynamic inputs (ex.: from query string): 6:15 - with initialData 7:35 - with createServerSideHelpers + dehydrate (aka createProxySSGHelpers in older versions)

  • @mr.komp1004
    @mr.komp1004 Год назад

    Will it be in 1080p? Cant really see the code(

  • @gabrielbianchi2246
    @gabrielbianchi2246 Год назад

    Ooh I’ll be watching this through its entirety! Excited for this :)

  • @JohannPerezE
    @JohannPerezE Год назад

    This was really helpful. Subscribed

  • @filipniklas
    @filipniklas Год назад

    Super helpful! Reading docs and posts is one thing but for those who are new to tRPC and web dev in general, having someone to walk you through the logic and code really helps the understanding. Thank you for making this!

  • @goshmain982
    @goshmain982 Год назад

    we need you

  • @SuperYoda7
    @SuperYoda7 Год назад

    this is really great! Well explained, I learned so much. exactly what I was looking for thank you. Only your sketch is so small and hard to read. But regardless of that keep it up man!

  • @reqtified
    @reqtified Год назад

    Is it possible to do a DB check in prisma with the middleware, I basically need to check if a user is authed and also DOES exist in the database

    • @ccccjjjjeeee
      @ccccjjjjeeee Год назад

      yes, trpc middleware runs on the server so you can do all the normal server stuff. next.js middleware is a different thing and a bit more complicated in terms of what you can and can't do

  • @usercl3ev2pt1b
    @usercl3ev2pt1b Год назад

    Can you use trpc without transpiling like an environment ts is not used, jsdoc instead or build step/bundler/transpiling is necessary? For example, you can use zod with jsdoc, is it the same story for trpc?

  • @Imjoshnewton
    @Imjoshnewton Год назад

    This is awesome. I’ve been using tRPC for a personal project and also a work project for a couple months now and feel much more confident in my knowledge of what felt like magic at the beginning. I hadn’t learned much about middle ware and now have lots of thoughts on simplifying repetitive checks in some of my procedures.

  • @mocastello9253
    @mocastello9253 Год назад

    amazing tRPC explanation! thanks for your time and that great video!

  • @furkano.1962
    @furkano.1962 Год назад

    Why first example isn't blocked on page load while last example is blocked until all server components fetched? Is it because server components were hidden inside of client component ?

  • @electroheadfx
    @electroheadfx Год назад

    Thanks for this video, I updated to the last import { createServerSideHelpers } from '@trpc/react-query/server' import superjson from 'superjson' import { appRouter } from '@railwai/api' import { createTRPCContext } from '@railwai/api' import { type CreateNextContextOptions } from '@trpc/server/adapters/next' const ssr = createServerSideHelpers({ router: appRouter, ctx: {}, transformer: superjson, }); export default ssr but I have typescript error : Type '{}' is missing the following properties from type '{ site: any; cookies: any; req: NextApiRequest; res: NextApiResponse; }': site, cookies, req, res because I have data in context, how I can get it ?

    • @akshar234
      @akshar234 Год назад

      same, did you fix it?

  • @bassam.2023
    @bassam.2023 Год назад

    This is the explanation that I was looking for. 🙏🏻You are a gem. 🙌🏻Subscribed! 😁

  • @felix20111128
    @felix20111128 Год назад

    Thanks for making this video, it's super helpful! I did some tests locally, with createServerSideHelpers, it indeed prefetched the data on the client. However, after checking the network requests, I noticed that there's still a request sent to the trpc api route on the backend after the page is loaded on the client, is this expected? Thanks!

    • @felix20111128
      @felix20111128 Год назад

      Nvm, it turns out that I forgot to set staleTime in useQuery :)

  • @Uppurak
    @Uppurak Год назад

    thank you for this video, it has given more a lot more confidence in contributing!

  • @cablecardigital7671
    @cablecardigital7671 Год назад

    This may have been one of the most helpful YT videos I've ever seens. Thanks!

  • @flyingcakes85
    @flyingcakes85 Год назад

    Hi, great video! Time to share on my social (i barely got followers, but anyways, this is one of the rare videos about open source that I actually liked)

  • @aakarshan4644
    @aakarshan4644 Год назад

    Hey would love your advice on finding growing orgs/repos. Are they more in web dev space or in more niche fields like web3 etc ?

    • @ccccjjjjeeee
      @ccccjjjjeeee Год назад

      they're in every space! stay up to date on new libraries that people in your field are excited about, use one of them, run into issues, try to fix them

  • @aakarshan4644
    @aakarshan4644 Год назад

    really nice advice overall! I'm still stuck at the stage where I can't go beyond small bug fixes and improvements across many open source repos.. I want to dive deep and hopefully even work full time at a open source startup.

    • @ccccjjjjeeee
      @ccccjjjjeeee Год назад

      find your place in one project and slowly take on bigger and bigger tasks, you'll be surprised where you are in a year!

  • @mawill432
    @mawill432 Год назад

    You answered most of my questions in this vid. I've been so terrified of contributing to open source projects. I don't know if i'm just afraid of judgement or if its the fear of breaking something, but I've never made the leap into it.. This vid sort of bolsters my confidence. Thanks!

    • @igorthelight
      @igorthelight Год назад

      * About your fear of breaking something - they will not add your code if it brake something obvious. If it will brake something obscure - someone would fix it (maybe even you). And noone would blame you, because noone is perfect! * About your fear of being judged - they could deny your code for SO many reasons so you shouldn't be harsh on yourself about it! Just ask why they didn't merged your changes, maybe do a better explanation or make sure that you followed all of their rules. * Start with small Pull Requests - fix some typos, refactor some messy code ;-) * Start with a small projects

  • @leonardpahlke
    @leonardpahlke Год назад

    /lgtm /approve

  • @brayanjpm
    @brayanjpm Год назад

    Great video dude 👏 You should make a video about ways to find this or that bug for make “improvements” in the repo or PRs

  • @siniarskimar
    @siniarskimar Год назад

    RUclips recomennded me this video. Some tips from me. The goal of OSS is not to become a maintainer of some project. If that's your only goal, you should check up on your complexes. Contribute with the mentally of "i want to help" not the "i contributed to big OSS and i want to boast that my PR got accepted". Find projects that interest you and you think it's worth to spend some of your time to push them toward their goal.

    • @ccccjjjjeeee
      @ccccjjjjeeee Год назад

      I think you misunderstood my point. What I was trying to say is that maintaining a project is a different learning experience compared to making one or two contributions at a time to many different projects. Both are valuable, and I've made some drive-by contributions as well, but being a maintainer teaches a lot of things that you just don't get from making individual contributions. If getting into OSS because you want to grow as an engineer is a bad motive, then I guess I'm guilty.

    • @TsoiIzAlive
      @TsoiIzAlive Год назад

      Also you shouldn‘t idealize