Taylor Lindores-Reeves
Taylor Lindores-Reeves
  • Видео 11
  • Просмотров 46 313
Ultimate Guide: Function Calling with Vercel’s AI SDK RSC & NextJS 14
Join me in this comprehensive tutorial where I guide you through building a powerful crypto chatbot and stats interface with NextJS using Vercel’s AI SDK RSC package. This allows you to stream generative user interfaces to the browser using React Server Components & Server Actions.
I guide you through everything from setting up your environment, installing and configuring tools like TypeScript and Tailwind, and implementing code formatting with BiomeJS. You’ll learn how to handle API keys, manage environment variables, and stream various UI components for a truly unique user experience.
We incorporate tool calling in our AI integration which gives the LLM the ability to decide when and how...
Просмотров: 6 929

Видео

NextAuth v5 for Beginners: Simple Server-Side Auth in NextJS
Просмотров 610Месяц назад
In this video, learn how to set up AuthJS v5 beta for authentication on the server in NextJS 14. This tutorial covers configuring sign-in and sign-out processes, email-only authentication with sessions, and setting up NextAuth to handle everything on the server. We'll use a database for session management, and explore essential configurations, Prisma ORM integration, and securing pages and API ...
The Easiest Way to Generate Clean NextJS API Documentation
Просмотров 1242 месяца назад
First of all, sorry for the audio quality... This beginner-friendly tutorial guides you through the process of building a Todo List app using NextJS API Routes with the Next REST Framework package, which automatically generates clean API documentation for each API request. Throughout the video, you'll gain hands-on experience as we code the app's functionality including create, read, update, an...
Mastering Fetch API and Caching in NextJS
Просмотров 1,6 тыс.5 месяцев назад
In this video, I guide you through a useful approach to managing the Fetch API and caching in NextJS. I demonstrate how the Fetch API by default caches data, which can be beneficial for reducing server resource load, but may also present obstacles when trying to display real-time data updates. I reveal a workaround that involves setting the cache on a global level, which allows for setting cach...
How to Build an AI Assistant using NextJS (Vercel)
Просмотров 2,7 тыс.7 месяцев назад
Throughout this in-depth tutorial, we’ll learn how to build a research paper summariser using OpenAI's Assistants API. The summariser takes in a document as form data and returns a summary of the document as the response. I will walk you through handling file data, form submissions, and responses from the API. We’ll also learn some of the limitations of the current version of the API. If you ar...
NextJS Server-Side Product Modals using URL, Suspense & Fetch
Просмотров 12 тыс.7 месяцев назад
Discover how to set up pop-up modals on the server! In this tutorial, learn how to build modals that are fully server-side rendered using Next.js. The video guide walks through how to create a product page by fetching data from a public API, manipulating URL state and using React Suspense for handling loading states. Attention is also given to building a loading UI and demonstrating a convenien...
New React Hooks with NextJS Server Actions (2024)
Просмотров 1,6 тыс.7 месяцев назад
Dive into my latest tutorial on the experimental useFormStatus and useFormState hooks! Discover how to enhance your web applications with server-side capabilities, enabling features like comment systems. This comprehensive guide walks you through the installation of these new hooks and demonstrates their potential with a practical example. I tackle the nuances of creating a comment system, show...
Database Session Authentication with Prisma & NextJS App Directory
Просмотров 11 тыс.8 месяцев назад
In-depth tutorial on Next-Auth login authentication - you will learn how to protect your pages with authentication using advanced strategies like NextAuth database sessions and Prisma client extensions. Plus, passwordless login for a seamless user experience! 🔥 🔑 Key Takeaways 1. How to set up NextJS app in 2 minutes 2. How to set up a new database and Prisma query layer 3. How to set up NextAu...
Server-side Pagination with NextJS 13 Server Actions
Просмотров 10 тыс.9 месяцев назад
Welcome to this in-depth tutorial on setting up SEO-optimised, server-side rendered pagination in Next.js 13.5 using Prisma ORM as the database querying layer. If you're looking to create a listing page or e-commerce shop, this guide is tailored for you. Pagination helps search engines understand your site structure and ensures all your pages are crawled and indexed, which is particularly impor...
NextJS 14 Image Optimisation using Imgix (2024)
Просмотров 53011 месяцев назад
In this comprehensive tutorial, we'll dive deep into the world of image loading by leveraging NextJS's Image component, Imgix, and AWS S3. You'll learn how to create an Imgix Source, set up an S3 bucket, and create an IAM user with the necessary permissions and access keys. You'll also learn how to beautifully integrate these elements using NextJS's Image component with the loader prop and load...

Комментарии

  • @sivasirigiri6616
    @sivasirigiri6616 2 дня назад

    Hey can you please make a same video using trpc or t3 stack

  • @zak10x
    @zak10x 10 дней назад

    Hey, I really like your UI settings. If you can make a video on them or share the json code, that would be amazing!

  • @trndsettrlabs
    @trndsettrlabs 11 дней назад

    What vscode theme are you using?

  • @srenhyer3895
    @srenhyer3895 12 дней назад

    Few more questions. After implementing it this way I noticed that my page in the background did a rerender when the searchParams changed, even if I did router.replace instead of pushing the params. Also I wonder what are the pros of doing it this way (besides the js bundle size difference of a single client/server component), instead of just toggling the modal with a provider and passing in the server components by prop? I'd assume a modal would be the ideal usecase for keeping the modal a client component and passing in the server components? I'm asking because I'm not entirely sure.

    • @taylorlindoresreeves
      @taylorlindoresreeves 12 дней назад

      You could try using window.history.replaceState as this replaces the URL without browser refresh. The main benefit I think is SEO - pretty sure the search engines can pick up the URLs for each product modal when they're server rendered, but not with client components because it uses JavaScript to render the modal.

    • @srenhyer3895
      @srenhyer3895 12 дней назад

      @@taylorlindoresreeves Thanks. Doesn't seem like you can "wait" executing/fetching from a server component child component until the parent modal client component is opened. It seem as if the modal is a client component, and ServerComponentThatFetches is passed as child/prop it starts fetching its data immediately and does not wait for the modal to show its content. So server modals might be our only option if we have serer components inside the modal that needs to fetch some data upon display.

  • @srenhyer3895
    @srenhyer3895 12 дней назад

    Around thee 4.10 mark you mention that it's a bit of a technical challenge but definitely still doable to implement server side modals for global modals, but I'm curious how you'd do that let's say for a modal you trigger from clicking a button/icon in a global header, since you have no way of knowing whether search params changed from the root layout? :-)

    • @taylorlindoresreeves
      @taylorlindoresreeves 12 дней назад

      You can achieve this using middleware to capture the search parameters, storing them in a cookie. This same cookie can then be accessed in the layout at load time and during server‑side rendering.

    • @srenhyer3895
      @srenhyer3895 11 дней назад

      @@taylorlindoresreeves don't you mean setting them in a header and not a cookie? Just like you do for the pathname? That will opt all routes into dynamic rendering, but that might be acceptable.

  • @riponsoum
    @riponsoum 13 дней назад

    github link not working

  • @GuriLudhiana
    @GuriLudhiana 13 дней назад

    knowledgeable

  • @nasko235679
    @nasko235679 14 дней назад

    There's 0 documentation on credentials provider + database session. When I asked the creator of AuthJS he told me there never will be because he doesn't like it and I should just use JWT. You seem well versed in what is undoubtedly the worst documented auth library in the world lol, so it would be extremely helpful if you could make a video about credentials + database session setup. It's really hard for me to understand as a newer developer since it's all abstracted away and I don't know how to implement the session logic.

    • @taylorlindoresreeves
      @taylorlindoresreeves 14 дней назад

      Yeah, I've set up credentials across multiple projects so I certainly will create a video on that. It requires a few workarounds because as you said, the author doesn't want you to use credentials and it's obvious when trying to configure it, you have to implement a few hacks. Video will come soon. Thanks!

    • @nasko235679
      @nasko235679 14 дней назад

      @@taylorlindoresreeves No man, THANK YOU! Coming from Laravel where everything is batteries included, setting up an actually useable nextJS environment with authentication is tough. So far I've had great success using lucia auth for database sessions + credentials, but I'd like to learn how to do the same in authJS.

  • @varunmehra5
    @varunmehra5 15 дней назад

    Love this kinda content which is so natural that you didnt even bother editing the part where you missed importing Zod. Inspired me haha to not take my mistakes very seriously and get discouraged as a beginner

    • @taylorlindoresreeves
      @taylorlindoresreeves 15 дней назад

      Absolutely 👍 I make mistakes all the time 😅 it's part of being a programmer! Enjoy the journey 👨‍💻

  • @NitroBrewbell
    @NitroBrewbell 15 дней назад

    Great Tutorial Taylor ! Thank you. Hope you continue with more guides. Has anyone run into bun issue halfway through with error message: "ReferenceError: Can't find variable: TextDecoderStream" ? with with streamUI() function in actions file . It seems to work on Node but not on Bun. The workaround seemed complicated to me on Bun

    • @taylorlindoresreeves
      @taylorlindoresreeves 15 дней назад

      Thanks, no I haven't unfortunately. Hopefully someone else knows about this issue 🤔

  • @kyujong93
    @kyujong93 20 дней назад

    You have an apple keyboard :

  • @prashlovessamosa
    @prashlovessamosa 22 дня назад

    Wow thanks very helpful

  • @prashlovessamosa
    @prashlovessamosa 22 дня назад

    Great thanks for sharing

  • @tastefulthickness
    @tastefulthickness 24 дня назад

    To the moon 🤘H

  • @leo-phiponacci
    @leo-phiponacci 28 дней назад

    Thank you, great video! Can you please do a video about Credentials Provider with database sessions?

  • @StephenRayner
    @StephenRayner 28 дней назад

    Thumb down, too slow. Might be right for some junior devs. But for me this is so slow, watching you install packages and remove icons 😮😢.

    • @taylorlindoresreeves
      @taylorlindoresreeves 28 дней назад

      Yeah man, I felt feedback on my previous videos was I was too fast, not running through each step of the code. But I guess I could try a balance. Try on 2x 👍

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

    Thank you for the video . Keep going bro !

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

    great tutorial💯...is it possible to do a recursive function call with this? for instance it calls the get_crypto_price function and then uses the result to call a different function? thanks for the content

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

      Hmm you might be able to do it by updating the AI state with another system message that asks the LLM to run another function. What’s the use case out of curiosity?

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

    My understanding was Next.js does optimization inherently within its Image component, is Imgix more effective at compression?

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

      For sure, NextJS does indeed do some optimisation. But with the loader prop for the image component you get the benefit of handing off your images to an external source such as S3 bucket, which is always beneficial in terms of performance. But with Imgix as an additional caching and compression layer, you get fine grained control of your images, all while having them stored in an external source. Technically you could store 20mb images and not have to worry about how to handle compression and optimisation in the business logic or frontend layer image component (I think NextJS uses Sharp). You simply use the imgix URL and provide it with format and compress query parameters.

    • @salieflewis
      @salieflewis 28 дней назад

      @@taylorlindoresreeves That makes sense! Do you know if there is a similar workflow that can be used alongside Expo’s Image component?

    • @taylorlindoresreeves
      @taylorlindoresreeves 28 дней назад

      @@salieflewis hmm I’m not sure honestly, I don’t have experience with Expo. Good luck 🤞

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

    Hey, I have noticed your code shows source in every paragraph. But I couldn’t understand how you managed to do that. Would you explain it to me or tell me when did you code that part?

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

    Excellent video! keep em coming, cheers

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

    Beautiful Content🔥🔥 Deserve a lot more subs❤❤

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

    Is this cache for a specific user-session or shared between every user? I'd like to understand if another user have accessed your site if he would trigger a new request or not

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

      For a REST API it’s cached globally for all users. However, if using a server action, fetch requests are not cached.

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

    Do you have an updated version by any chance for Vercel's latest versions?

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

      Yeah I do, I’m just re-publishing. I forgot to add the intro to the final edit. Will be released in 1-2 hours. I think it’s the best video I’ve done. Hope you like it.

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

    Thank you, this is great content ! ;)

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

    thanks for tuto. No offence, hovewer some code looks overwhelmed. For example this: const currentPage = Math.min(Math.max(Number(page), 1), totalPages); Why can not you just use "page" variable instead, why you doing those calculations (I know that it's edge case handling)? Would be nice if you would explain those parts in your videos as well because it is not obvious at the first look. Now the biggest part of your video you just copy pasting some code that makes me feel that you just reusing someone else solution. It just my thoughts that maybe can improve your content :)

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

      No worries. I am definitely going to spend more time in future videos explaining things a bit better (I am new to this). With regards to the copy pasting, I will try to do more coding on the fly - it just takes significantly longer so my concern is that people will get bored watching me code easy frontend stuff. Thanks for the feedback.

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

    This server sided thingy is out of hand. What next ,server sided client browser

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

    Hi! is there a way to switch assistants?

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

      You basically create the assistant. The assistants API has been updated significantly since I made this video. I will make another on the latest version (v2) and function calling.

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

    You skipped over the entire coding of the pagination component...

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

      Yeah I actually just re-used a component from v0.dev as it was quicker option. I am getting a lot of feedback to say I should stop re-using and just code the damn things, so I will take this on board and hopefully improve in future vids. Thanks for the feedback.

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

    Bro. I appreciate your knowledge, but read the room. How do you expect people to follow what you are doing when you are not only making fast cuts, but completely skipping entire code creations steps that are vital to finish the project. You also never acknowledged when you made mistakes and did not show your changes to the code when you did. Constructive criticism: SLOOOOWWWWW DOOWWWWWWNNNNN. Make part 1 and part 2 if you need to. :)

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

      Good point, thanks for the feedback. I am going to do more on-the-fly coding and fixing - my concern is it bores people watching me debug, which is why I try and do things quickly. But a lot of feedback I am reading just now is similar to this, so I will do more full-length, less edited videos where I go through the whole process and don't re-use any code or components.

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

    cool.. explantion

  • @JeswinJ-ey8kh
    @JeswinJ-ey8kh 2 месяца назад

    lets say you deploy this app in production will you able to crawl all the single detail pages???if yes means is this the way to make it to crawl

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

    good news

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

    why without redux? it help my for pagination

  • @user-ck6yl6qb2g
    @user-ck6yl6qb2g 3 месяца назад

    bad tutorial. I found it hard to follow you, it was unclear and unstructured

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

    All the bullshit to sell Prisma to the developers

  • @huseyinlora
    @huseyinlora 4 месяца назад

    BROOOO ZOOOM ON THIS FKN EDITORR WE CANNOT SEE ANYTHING

  • @rabihdaoud8629
    @rabihdaoud8629 4 месяца назад

    Amazing tutorial. Can you do one with function calling??

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

      Absolutely, great idea, I've noted it down - lots of developments in the function calling API recently so it's a good time to do a tutorial. I will create this in the coming weeks. Please subscribe if you haven't already to make sure you're notified.

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

      Just released this tutorial - check my latest vid 👀Hope you like it!

  • @benjaoliva3383
    @benjaoliva3383 4 месяца назад

    This is a very good video, straight to the point and nice quality code writing 👏

  • @user-vm6py5gf8m
    @user-vm6py5gf8m 4 месяца назад

    Thank You.Can I ask about how it would function for different users accessing server at different time.Does it revalidate at a set interval of say 60 secs or 60 secs elapsed after the user accessed the server Thank you for your explanation💥

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

      I think it revalidates for each specific user. It's not global in that sense.

  • @davidhendriksen
    @davidhendriksen 4 месяца назад

    Excellent! I see you're using Prisma. How do you typically handle the CMS part in your app? For instance, if admins wish to upload images for the e-commerce shop, would you integrate the CMS into your Next.js application, or opt for a separate backend?

  • @user-vr7gx8po5x
    @user-vr7gx8po5x 4 месяца назад

    Please increase font size , You are doing awesome but 😢

  • @dailywisdomquotes518
    @dailywisdomquotes518 5 месяцев назад

    the code not running, just i wasted some time

  • @dailywisdomquotes518
    @dailywisdomquotes518 5 месяцев назад

    could you add function calling for above code

  • @lucascp021
    @lucascp021 5 месяцев назад

    very useful video, keep up the great work

  • @nightrider1413
    @nightrider1413 5 месяцев назад

    Really nice video! What font is that? MonoLisa?

  • @YuriiLebid-op1xv
    @YuriiLebid-op1xv 5 месяцев назад

    Thanks, very professional

  • @Anonym-rs6uo
    @Anonym-rs6uo 5 месяцев назад

    Awesome video man, keep it up! Worked perfectly and its so much faster then my implimentation on the client side.

  • @user-eh8ct1gi4q
    @user-eh8ct1gi4q 5 месяцев назад

    Help Me pls

  • @KadirKATIRCI
    @KadirKATIRCI 5 месяцев назад

    your contents explains a lot of things that we have to know. thank you so much and i would love to see much more videos