Next.js Server Actions... 5 awesome things you can do

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ค. 2023
  • A full tutorial and breakdown of the new Next.js Server Actions feature. Learn how to handle form submissions and implement optimistic updates without the need to API routes.
    #reactjs #javascript #webdevelopment
    Get the Full Next.js Course fireship.io/courses/nextjs
    Server Actions Announcement nextjs.org/blog/next-13-4

ความคิดเห็น • 394

  • @beyondfireship
    @beyondfireship  ปีที่แล้ว +57

    If you like this style of content, check out the full course for more. Use NEXT30 to get 30% off (expires this sunday) fireship.io/courses/nextjs

    • @toastrecon
      @toastrecon ปีที่แล้ว +2

      Purchased! Can't wait to get started.

    • @abdullahrafique2883
      @abdullahrafique2883 ปีที่แล้ว +1

      Is this nextjs course with latest updates? Like next13

    • @mgams4830
      @mgams4830 ปีที่แล้ว +1

      like the miniature of the video

    • @maxwebstudio
      @maxwebstudio ปีที่แล้ว +3

      Take my money 💸

    • @Alcaatraz01
      @Alcaatraz01 ปีที่แล้ว

      Any chance Nuxt3 course happens? And/or sveltekit. Good stuff though.

  • @TomHermans
    @TomHermans ปีที่แล้ว +122

    Like how you specifically chosen dogs for this tutorial so you could have upDog as a function. Well played

    • @invinciblemode
      @invinciblemode ปีที่แล้ว +34

      What’s updog

    • @funkenjoyer
      @funkenjoyer ปีที่แล้ว +28

      @@invinciblemode not much, sup?

  • @Danielo515
    @Danielo515 ปีที่แล้ว +441

    Do you know what’s great about api endpoints? Freedom to move your app to a different backend

    • @ianbdb7686
      @ianbdb7686 ปีที่แล้ว +5

      exactly

    • @chipmo
      @chipmo ปีที่แล้ว +103

      In practice "move your app to a different backend" will almost certainly involve a lot more than simply changing a url. Many frontends are typically strongly coupled to a particular backend and vice versa with the backend only existing for that frontend, and the argument is that in many cases having additional abstraction around this coupling can make us less flexible rather than more.
      React has always been bullish on removing barriers between code and challenging theory about how we should divide things up, remember "separation of concerns not separation of technology" so this is par for the course for them. Of course if you feel you do need that abstraction and explicit separation you are still welcome to write APIs and separate client side UI. But if that UI is the only consumer of that API then this may be a decent way to create it that's clearer, less complex and more performant. What's more if you further down the line realise you need the API then the pathway to going from server side to API led is probably a lot smoother than it was.

    • @tobiascornille
      @tobiascornille ปีที่แล้ว +45

      How often do you do that though? I'd say for most indie projects that's not a big concern

    • @ricardocnn
      @ricardocnn ปีที่แล้ว +8

      It's Laravel without reload

    • @ecel_style
      @ecel_style ปีที่แล้ว +8

      but you will never, it will never happen :)

  • @James_Hallam
    @James_Hallam ปีที่แล้ว +6

    Fantastic content. Information rich with no filler but seasoned with a little levity and entertainment. Perfect.

  • @pif5023
    @pif5023 ปีที่แล้ว +14

    I would love to see a video with frameworks and languages portrait as tribes and nations that fight over the Web like it was an history class

  • @manav8289
    @manav8289 ปีที่แล้ว +19

    InertiaJS also reloads components without needing to build an API, while also preserving state without a refresh, all from your backend router from ROR or Laravel. I don't like having server and client code in the same file, but that's just me.

  • @maxwebstudio
    @maxwebstudio ปีที่แล้ว

    Amazing video. Thank you ! So excited about those updates 🔥

  • @alexanderf7008
    @alexanderf7008 ปีที่แล้ว

    thank you, I finally started to understand developing technics thanks to your videos

  • @vin5718
    @vin5718 ปีที่แล้ว +20

    Using server actions defined somewhere in client components even with having to use useTransition is still really cool and probably going to be my most used feature.

    • @gin2064
      @gin2064 ปีที่แล้ว

      same

    • @alulaleak
      @alulaleak 5 หลายเดือนก่อน

      when using a server action in a client component, does the action still happen on the server side?

    • @edan626
      @edan626 5 หลายเดือนก่อน

      yes@@alulaleak

  • @planetmall2
    @planetmall2 ปีที่แล้ว +1

    Great video! Loves your coding tutorials!

  • @AshleyTayles
    @AshleyTayles ปีที่แล้ว

    Love your humour dude, thanks for the content! 😊

  • @jordondax
    @jordondax ปีที่แล้ว

    You're a machine! Enjoyed the video.

  • @Alex-xl4xe
    @Alex-xl4xe ปีที่แล้ว +1

    Server Actions are the feature I literally needed the most right now, I had two github-discussions running which where closed now because of this.

  • @mertdr
    @mertdr ปีที่แล้ว +85

    “Javascript rules them all” idea has been a smart choice to handle both frontend and backend by a single language. server actions brings the same react conventions rather than nodejs or api routes paradigm and makes to adopt this approach easier. But I don’t know if it’s good or bad news for frontend devs since we all are becoming full stack devs gracefully like the old days (php+jquery). Nowadays having smaller teams is becoming a trend even for big companies after all.

    • @heroe1486
      @heroe1486 ปีที่แล้ว +12

      It's not a smart choice, it would have been if the node ecosystem wasn't a mess and if there were better frameworks for it, a lot of people thus don't want to write their backend code in JavaScript and that's understandable.
      (Big) Companies would never use NextJS for the backend of a serious and not very small application.

    • @mertdr
      @mertdr ปีที่แล้ว +3

      @@heroe1486 The reason I think it’s smart is that you can make a website without php but you cannot make a website without javascript. Of course I refer to today’s standards and php can be replaced with any other language in this context. I’m also not a huge fan of node and don’t enjoy backend scripting that much. But apparently things are going to evolve around this approach.

    • @IvanRandomDude
      @IvanRandomDude ปีที่แล้ว +12

      Full stack is indeed a future. Businesses will not be paying specialists anymore, they will expect us to be able to deliver apps from UX to deployment. But that obviously has it''s cons. Knowing a little bit of everything means we will not be excelling in anything which can lead to overall lesser quality. Of course, talking about simple to medium projects. Big and complex projects with uber business logic will always require specialists and domain experts.

    • @oscarljimenez5717
      @oscarljimenez5717 ปีที่แล้ว +1

      When tooling being upgrading year after year, frameworks, ai, etc. Frontend developers will convert to Fullstack developers, and Backend developers only be necessary in a microservice arquitcture or big apps, no need in small apps.

    • @oscarljimenez5717
      @oscarljimenez5717 ปีที่แล้ว +5

      @@timebroua that's why backend developers will be not removed. Frontend developers will transition to fullstack and backend developers will be needed to be more expert. As backend developer, you really want to create the endpoints for a frontend developer? and then argue with him because comuncation problems?

  • @leoryzap
    @leoryzap ปีที่แล้ว +29

    This is going completely over my head lol, probably because i dont have a concept of how this was done originally.

    • @user-sw2xg9lz6p
      @user-sw2xg9lz6p ปีที่แล้ว +5

      +1

    • @heroe1486
      @heroe1486 ปีที่แล้ว +7

      Remember we were all using Next because "it's just React but with extra goodness (file based routing, handy utility functions, middleware etc)"

    • @Gogonel290
      @Gogonel290 ปีที่แล้ว +14

      I feel like using react query its more easier, readable and intuitive, and can be used outside of html forms

    • @heroe1486
      @heroe1486 ปีที่แล้ว +4

      ​@@Gogonel290 All of that without needing to couple your backend code with your frontend one and not being forced to use Node, React Query makes everything very easy. And as a bonus it also works with Vue Svelte and Solid

    • @MasayaShida
      @MasayaShida ปีที่แล้ว +1

      Same

  • @tak68tak
    @tak68tak ปีที่แล้ว

    Thanks. best tutorial video ever seen.

  • @jeykherjiot2408
    @jeykherjiot2408 ปีที่แล้ว

    Very clear you explanation, you're awesome bro

  • @jimynicanorquintanillacero9401
    @jimynicanorquintanillacero9401 3 หลายเดือนก่อน

    Awesome explanation, thank you

  • @Sindoku
    @Sindoku ปีที่แล้ว +115

    I’m thinking that NextJS is turning into Ruby on Rails, which most people didn’t like because of how “magicky” it felt. In the other hand, if you understood how it works, then using RoR offered a big advantage.

    • @okage_
      @okage_ ปีที่แล้ว

      agreed

    • @_sevelin
      @_sevelin ปีที่แล้ว +22

      I think next is unnecessarily more complex in terms of syntax. Doesnt seem that scalable now... Ror on the other hand is easy to understand...

    • @timalk2097
      @timalk2097 ปีที่แล้ว +2

      I see now why most of the elder devs that were really successful were RoR devs (in my region at least)

    • @marusdod3685
      @marusdod3685 ปีที่แล้ว

      @@_sevelin you're talking about scalability, almost all companies that used ruby on rails migrated away from it because it was dogshit slow

    • @_sevelin
      @_sevelin ปีที่แล้ว +2

      @@marusdod3685 i meant the code's scalability (i think the better word would be maintainability). i can't imagine writing so much non relevant code to achieve something simple. at least that's where ror shines...

  • @haze4828
    @haze4828 ปีที่แล้ว

    I knew it was coming, I was prepared for the punchline, it still got me. Every. time. Curse you upDog!

  • @supremebeme
    @supremebeme ปีที่แล้ว +14

    The AI Audio is pretty good in this one.

    • @yellowboat8773
      @yellowboat8773 ปีที่แล้ว +3

      Dam I didn’t even realise this was AI generated voice?

    • @supremebeme
      @supremebeme ปีที่แล้ว +3

      @@yellowboat8773 yeah it’s especially funny during the jokes because AI can’t get the cadence quite right.

    • @MrFrozener
      @MrFrozener ปีที่แล้ว

      for non-native english speakers, it's far too fast

  • @Slaat1
    @Slaat1 3 หลายเดือนก่อน +1

    loved the timing with the like button glow up!

  • @solomonowusu-ansah1751
    @solomonowusu-ansah1751 6 หลายเดือนก่อน

    Nice one. Loved it

  • @timelsaer6729
    @timelsaer6729 ปีที่แล้ว

    This update is so crazy good🙌🏻

  • @nightshade427
    @nightshade427 ปีที่แล้ว +11

    NextJs server actions looks like aspnet postback update panels from 2000. Seems to work the same way. It even posted back via ajax and didn't do a full page refresh. What is new is old.

    • @migue018
      @migue018 ปีที่แล้ว +1

      Yeah and it worked like a charm...no page reload!

  • @hashimanshad1041
    @hashimanshad1041 11 หลายเดือนก่อน

    fantastic content

  • @braneopacic5022
    @braneopacic5022 4 หลายเดือนก่อน

    This was great, tnx!

  • @anoniem012
    @anoniem012 ปีที่แล้ว +2

    I love php working style happy to see nextJS mixing it with javascript.

  • @fluente
    @fluente ปีที่แล้ว

    Damn. First time I’m seriously considering the pro membership.

  • @DavisonIncorp
    @DavisonIncorp ปีที่แล้ว +8

    I don't know, part of me really liked having react apps be frontend, and the ability to have something entirely different as my backend. I know i'm not being forced into this, but I kind of like the systems that we have now more than this. Will need to play with it more.

    • @kodekorp2064
      @kodekorp2064 7 หลายเดือนก่อน

      Its similar to developing in Ruby On Rails framework.

  • @AIZEN155
    @AIZEN155 3 หลายเดือนก่อน

    Fact : I learned everything I need from this vid

  • @serenity-sounds551
    @serenity-sounds551 8 วันที่ผ่านมา

    awesome. thaks

  • @JamesQQuick
    @JamesQQuick ปีที่แล้ว

    Geez this stuff is cool!

  • @heroe1486
    @heroe1486 ปีที่แล้ว +55

    You can do that without reloading via Laravel + livewire, Phoenix + Liveview, Rails + Stimulus, Django + Reactor and so on.
    As always they're reinventing features that existed for a while elsewhere and making it like it's a new thing.
    We're a ton to use React/Next because of its simplicity and because we actually want separation of concerns.

    • @YuriG03042
      @YuriG03042 ปีที่แล้ว +26

      it's a new thing in React, which is what Next is meant for. you are acting like they claimed to build a new base on the moon or something

    • @oscarcisneros1368
      @oscarcisneros1368 ปีที่แล้ว

      Stop trying to sell us your shitty boomer frameworks

    • @heroe1486
      @heroe1486 ปีที่แล้ว +8

      ​​​​​​​​@@YuriG03042 It's in response to the Abramov's "With PHP you have to reload"
      And welll yes that's what they're trying to convey, just look at their Apple like conferences and overall marketing for things that have been here in other frameworks/PAAS for years, same for the "it's going to reshape the industry" kind of reactions from the public.

    • @buldezir
      @buldezir ปีที่แล้ว +10

      Also same stuff exists in SvelteKit for quite a while

    • @heroe1486
      @heroe1486 ปีที่แล้ว +5

      ​@@buldezir And apparently in Remix too

  • @pengain4
    @pengain4 10 หลายเดือนก่อน +1

    I like SvelteKit approach more: it's quite similar but you still maintaining separation of execution concern (BE/FE).

  • @nikdanilov2854
    @nikdanilov2854 ปีที่แล้ว

    if i am not wrong actions work only if your api routes are within the project? or they can be used if you have api routes somewhere else too?

  • @AndreasBeder
    @AndreasBeder ปีที่แล้ว +16

    I was just wondering about the three CSS http calls, are they necessary?

    • @amatzen
      @amatzen ปีที่แล้ว +2

      Was wondering just the same, especially if they are identical, which I suppose they are.

    • @gaborkrisko
      @gaborkrisko ปีที่แล้ว

      ​@@amatzen in that case the are probably served from the browser cache

    • @senxo.visuals
      @senxo.visuals ปีที่แล้ว +2

      ​@@gaborkrisko They are not served from cache, because there's a different ?v=123123 on each of them, each time they load. But maybe it's due to the development/local server and how it ensures that files are always fresh?

    • @zuma206
      @zuma206 ปีที่แล้ว +5

      Just the Dev server, wouldn't happen in prod

  • @user-wq2ku3kt3s
    @user-wq2ku3kt3s 11 หลายเดือนก่อน +2

    Could you please describe more about database usage in actions?
    Because it is a more tricky thing, when you need to open a connection, then close it, or even open one connection over all actions ?:)
    I use surrealdb + server actions, and there are some interesting things with open and close connection :)

  • @maskman4821
    @maskman4821 ปีที่แล้ว

    This is really awesome 😲😍🤩😌😘

  • @constant8339
    @constant8339 ปีที่แล้ว +2

    you can use this with the src directory right?

  • @halfgui8227
    @halfgui8227 หลายเดือนก่อน

    That whats up dog killed me

  • @codinginflow
    @codinginflow ปีที่แล้ว

    2:06 Interesting. I usually put the server-side data into a state so I can update it immediately from the response I get back from the server

  • @nabinsaud4688
    @nabinsaud4688 ปีที่แล้ว

    She is amazing ❤

  • @codinginflow
    @codinginflow ปีที่แล้ว

    Did you not apply any custom font here because it causes jitter in the UI when you revalidate the page?

  • @Dev-Siri
    @Dev-Siri ปีที่แล้ว +16

    after seeing Remix, literally every framework after it implemented server action.
    and its good, the frameworks are better because of this feature.
    for anyone wondering about leaked credentials, just remember, if you are using it in a server component, then a leak is impossible since the code will never run on the client and the env will be undefined in the browser anyway if it is not prefixed with NEXT_PUBLIC_.
    If you are using server actions in a client component, then it may be a potential leak. But remember that server actions only run on the server + the envs will not be available if not prefixed with NEXT_PUBLIC_. And server actions are currently in alpha so their security will be improved in the future.

  • @leagueoflags
    @leagueoflags ปีที่แล้ว +58

    Mark my words, Vercel will become the new, bloated, unpayable AWS in 5 years time. Keep hyping it, everyone...

    • @heroe1486
      @heroe1486 ปีที่แล้ว +16

      Impossible, that's not the same audience, most or their users are beginners or small companies that benefit from it for pennies before scaling a bit (and realizing the pricing isn't worth).
      But yeah the hype isn't deserved, it's overpriced (40x the price of a VPS or CDN for bandwidth) because most people can't figure out docker, how to use a CDN and GitHub actions and think they're doing crazy stuff that no one can reproduce.

    • @someonewhowantedtobeahero3206
      @someonewhowantedtobeahero3206 ปีที่แล้ว +6

      Their pricing is obnoxious.

    • @rand0mtv660
      @rand0mtv660 ปีที่แล้ว +7

      @@heroe1486 I mean, every 3rd party service operates like that. It abstracts all of this stuff to be few clicks as possible so it's convenient. You are paying for the convenience, that's mostly it.

    • @seanpe8474
      @seanpe8474 ปีที่แล้ว

      ​@@heroe1486 on your point about the vps and cdn being cheaper, if I'm making a portfolio site or just want something quick and usable, I don't wanna go through all those steps. for a production project, yes it makes sense to have more fine tuned control in order to solve those issues but for a personal/hobby project not worth the extra hassle (which leads to effort invested that may demotivate me from finishing the project in the first place).
      Theres still even an argument that that overhead is worth it: sure you'll save money on deployment but you instead pay more on labor/knowledge cost.

  • @DominikSipowicz
    @DominikSipowicz ปีที่แล้ว

    thanks 🔥🚢

  • @CodingWithTaaxo
    @CodingWithTaaxo ปีที่แล้ว +1

    Nice

  • @jonndenzelramos5238
    @jonndenzelramos5238 10 หลายเดือนก่อน

    Thanks dad!

  • @himanshurawat3934
    @himanshurawat3934 3 หลายเดือนก่อน

    when i import useOptimistic in next js application it says no module found. I am using stable next 14 version. do i need to do change or add some experimental flag for the same?

  • @jordymaryns4945
    @jordymaryns4945 ปีที่แล้ว +2

    Will the React course ever become a single purchase?

  • @shaunpx1
    @shaunpx1 ปีที่แล้ว +3

    Great video as always! but Isnt Remix doing this or somthing simular with loaders and actions?

    • @danielcooke3243
      @danielcooke3243 ปีที่แล้ว +2

      yeah, next13 is entirely "inspired" by remix - and likewise the new routing system in remix v2 is inspired by nextjs13 - its a win win for all frameworks.

  • @thechronicgrump3906
    @thechronicgrump3906 ปีที่แล้ว

    I keep getting Type error: Type '(formData: FormData) => Promise' is not assignable to type 'string' on my build. The issue is from this part
    action={updateProfile}>. Any idea how to fix?

  • @m.kolomoyets
    @m.kolomoyets ปีที่แล้ว +1

    Will it replace react-hook-forms?

  • @MarijanKopcic
    @MarijanKopcic ปีที่แล้ว

    All of this is for s simple form handling :) hahaha nice one keep it up

  • @avidworkslol
    @avidworkslol ปีที่แล้ว +1

    I'll be honest, when I first heard about all this I couldn't help but think how overcomplicated React was getting, but this video reversed my thinking.

  • @g-program-it
    @g-program-it ปีที่แล้ว

    nice, i didn't know what all the hype was about, cheers for clarifying with the video

  • @TheChartwhisperers
    @TheChartwhisperers 8 หลายเดือนก่อน

    Do you know what is good about api endpoints?
    Creating mobile apps that uses the same backend.

  • @henriquesenadev2194
    @henriquesenadev2194 4 หลายเดือนก่อน

    I am starting with Next... why using frontend server actions to update database instead a dedicated backend? What is the benefit?

  • @lucasgiunta8874
    @lucasgiunta8874 10 หลายเดือนก่อน

    Those feature are the equivalent of Actions Form from Sveltekit right ?

  • @bossgd100
    @bossgd100 ปีที่แล้ว

    Ready to modify all backend code until the next update

  • @blaizeW
    @blaizeW ปีที่แล้ว +14

    Another great video that makes me to want to quit web development 🙂👍

    • @emilz0r
      @emilz0r ปีที่แล้ว

      😂

  • @Ramon314
    @Ramon314 ปีที่แล้ว

    But how do you apply authentication on something like this? You need the header from the request, right?

  • @izzy7541
    @izzy7541 ปีที่แล้ว +29

    Yep, revalidate all page resources after every form submission. This is a revolution!
    P.S Already a year in remix and svelte 🤪

    • @nikmat
      @nikmat ปีที่แล้ว

      React router dom v6 has it too?

    • @izzy7541
      @izzy7541 ปีที่แล้ว +2

      @@ianbdb7686 it's not new and in react. Got a long time in remix

    • @henriquealmeida348
      @henriquealmeida348 ปีที่แล้ว

      Refetching everything is usually and actually a very good thing as you won't need to engineer complex situations. But, as far I understood in this situation, it will only refetch the specific component.

  • @krishgarg2806
    @krishgarg2806 ปีที่แล้ว +2

    everything looks great, but one thing has me thinking, how are we thinking about authentication? Like checking auth status in server actions, using cookies or tokens, login and register. I know you can say just use next-auth but that would increase too much dependence on a third party library.

    • @riddixdan5572
      @riddixdan5572 ปีที่แล้ว +4

      that's what we call vendor locking

    • @oscarljimenez5717
      @oscarljimenez5717 ปีที่แล้ว

      Middleware

    • @claritise
      @claritise ปีที่แล้ว

      You can use pretty much any authentication package you want? All you are doing is either decoding a JWT or doing a session cookie lookup.

  • @KoenVerheyen
    @KoenVerheyen ปีที่แล้ว +2

    Is there a way to set the default playback speed to .5 for this channel only?

    • @Ramon314
      @Ramon314 ปีที่แล้ว

      yes, but why?!

  • @FajarAndiPatappari
    @FajarAndiPatappari ปีที่แล้ว

    Fullstack for the win

  • @hgeldenhuys
    @hgeldenhuys ปีที่แล้ว +3

    Okay, Remix has to step up their game

  • @XRENDERMAN
    @XRENDERMAN ปีที่แล้ว +1

    So this is better than it was? Still looks like a lot of code and things to keep in mind for such simple thing to do. It would be 5 lines of code in Sveltekit

  • @esraamohamed6539
    @esraamohamed6539 10 หลายเดือนก่อน

    if I have a sidebar layout that gets a data and I want to mutate in that data from another place, how can I do that?

  • @AveN7ers
    @AveN7ers ปีที่แล้ว

    Difference between this and solid-start createServerAction?

  • @Frozd
    @Frozd ปีที่แล้ว +3

    Oh look! Something SvelteKit already has!
    Nah it's actually a cool feature and I'm happy it comes to more frameworks! :)

    • @erickmoya1401
      @erickmoya1401 ปีที่แล้ว

      Look what they have to do to mimic a small portion of our power

  • @Mariiius53
    @Mariiius53 ปีที่แล้ว +2

    Server, server... The client side first was also useful

  • @kai12626
    @kai12626 10 หลายเดือนก่อน +2

    Seem promising but for now its painful to await a server action with revalidatePath then `router.back()` (to the list screen) to close a parallel routes modal.

  • @primostasis
    @primostasis ปีที่แล้ว +1

    hi kind of confuse how to implement an alert message after a successful submit update or insert using this "use server" components does anyone know how? ahahah

    • @jaiminparmar7996
      @jaiminparmar7996 ปีที่แล้ว +1

      you need to do that in a client component

  • @seniorfrontend
    @seniorfrontend ปีที่แล้ว

    i fucking love you Jeff Delaney

  • @JagdeepSinghKalsi
    @JagdeepSinghKalsi ปีที่แล้ว

    Yup, that's like Livewire in Laravel

  • @swapnilcodes
    @swapnilcodes ปีที่แล้ว

    🎉🎉

  • @emanuelescarsella3124
    @emanuelescarsella3124 ปีที่แล้ว +1

    Isn't that the same thing sveltekit does for svelte?

  • @PenguinCrayon269
    @PenguinCrayon269 ปีที่แล้ว

    historical lessons of software engineering thrown out of the window as long as "IT DOESN"T RELOAD THE PAGE BRO"

  • @usamesavas9848
    @usamesavas9848 ปีที่แล้ว

    is it only possible via form? why cannot I call a server action from a button click?

  • @krome305
    @krome305 ปีที่แล้ว

    PHP is waving

  • @unknownlordd
    @unknownlordd หลายเดือนก่อน

    i knew that updog joke was happening 😂

  • @g-pg
    @g-pg ปีที่แล้ว +11

    Someone correct me if I'm wrong, but I think the benefit of mutating directly on the component isn't that great considering that in any organized app we would have to write the logic in separate files, like we already do with Next's APIs. As for optimistic updates, the useSWR hook, which is also maintained by Vercel, is a very simple and effective tool to handle the rendering of API requests

    • @philheathslegalteam
      @philheathslegalteam ปีที่แล้ว +1

      Ill say this. As a maintainer of an OSS library using SWR, server actions completely decimated its use case in web.
      For RN, and non next apps SWR is still useful, but in next 13 it’s completely useless. I almost discourage using SWR in next 13 app dir.

    • @Amaraticando
      @Amaraticando ปีที่แล้ว +1

      server actions can be defined inside components, imported from other files or passed as props.
      This is not the same DX as using SWR or react-query.

  • @hermeschi
    @hermeschi 11 หลายเดือนก่อน

    Can someone explain why he used useTransition at 5:46, if that were a normal function, what would be the difference?

    • @icarojose6316
      @icarojose6316 7 หลายเดือนก่อน

      It wouldn’t work. Because the functions like and dislike are actually server functions

  • @ivanakcheurov
    @ivanakcheurov ปีที่แล้ว +2

    Is “API first” principle obsolete nowadays? How can Server Components allow other clients to use the same backend? That was the whole point of SPAs, mobile clients communicating only over REST/GraphQL so that you can add more clients/automation/consumers later

    • @ghostlexly
      @ghostlexly 6 หลายเดือนก่อน

      I think same as you, but looks like people don’t care and are just hyped

  • @artrix909
    @artrix909 ปีที่แล้ว +7

    next js moving up in the directory!

  • @shreyas.sihasane
    @shreyas.sihasane 9 หลายเดือนก่อน

    Can you please make a short video on how to upload the image using this server actions from client component to server component to get that image URL..
    Please make video I am very struggling with it.

  • @marksears3117
    @marksears3117 ปีที่แล้ว +1

    Where is the redirect from 04:21 imported from?

    • @aenjojo
      @aenjojo ปีที่แล้ว

      from "next/navigation"

  • @codinginflow
    @codinginflow ปีที่แล้ว +1

    The opimistic update feature is cool but it requires JS again, whereas normal form actions can execute without JS

  • @adampatterson
    @adampatterson ปีที่แล้ว

    Why is the css reloaded loaded with rhe actions?

  • @workflowinmind
    @workflowinmind ปีที่แล้ว +9

    Serious question, how are you so productive? How big is your team? Very impressed by your publication rate/quality

  • @ninecrowns7092
    @ninecrowns7092 ปีที่แล้ว +3

    Vercel's keynotes creep me out. It's like they're trying to be the Hooli of Javascript frameworks.

  • @NimeshkaSrimal
    @NimeshkaSrimal 11 หลายเดือนก่อน

    Isn't it labeled as experimental in the docs? I was going to try it, but then withdrew because of this.

  • @cqz89
    @cqz89 หลายเดือนก่อน

    Very like the old way PHP

  • @JaviMata
    @JaviMata ปีที่แล้ว

    The use server it’s not the default value for components?

    • @skillm3h4ppy1er
      @skillm3h4ppy1er ปีที่แล้ว

      it is but you have to redeclare it when the function is in client component file otherwise the function will be a client one

  • @kwhandy
    @kwhandy ปีที่แล้ว +2

    haiyya don't use vercel kv, use normal sql mysql or postgres and prisma
    don't want vendor lock tho

    • @majorhumbert676
      @majorhumbert676 ปีที่แล้ว

      Should be trivial to replace the function calls once you want to move to a different database

  • @korseg1990
    @korseg1990 ปีที่แล้ว

    I would like to see how frontend devs will deal with high-load, scaling and security 😅

  • @eddie10
    @eddie10 ปีที่แล้ว

    Is that the same feature Remix had since their beginning? Why cannot the frameworks just “borrow” thing from each other, but try are trying to reinvent the wheel “this time better”😢

  • @MrMudbill
    @MrMudbill ปีที่แล้ว +15

    Something about mixing server side code and client side code, in the same language in the same file, is giving me a lot of anxiety. I expect server secrets to be leaking a lot if this becomes popular.

    • @aakarshan4644
      @aakarshan4644 ปีที่แล้ว +2

      they already did lol, i saw a tweet of people accessing server side env variable in client console

    • @agungokill
      @agungokill ปีที่แล้ว

      php already did long time ago lmao

    • @MrMudbill
      @MrMudbill ปีที่แล้ว

      @@agungokill php didn't use the same language for server and client, so it had better separation, if only marginally. But here since it's all JavaScript, simply forgetting to write "use server" feels like enough to leak something.

    • @agungokill
      @agungokill ปีที่แล้ว

      @@MrMudbill that's the point, if php do it better why need something like similar to php again to some extent. just improve php to able to passing component tho

    • @MrMudbill
      @MrMudbill ปีที่แล้ว

      @@agungokill I don't think I understand what you're suggesting