Goodbye javascript (for now)

Web Dev Cody
29 Jul 202414:56

Summary

TLDRThe speaker discusses their concerns with increasing memory usage in Next.js applications, possibly due to image optimization with Sharp. They explore the idea of 'doing more with less' in web development, comparing the memory footprint of different frameworks like Next.js, Hono, Bun, and Go with Fiber. The speaker highlights the efficiency and performance of Go, suggesting it as a potential alternative to JavaScript-based solutions for its lower memory usage and built-in features. They also touch on the potential of HTMX to reduce client-side interactivity complexity, advocating for a shift towards simpler, more efficient coding practices.

Takeaways

  • 📈 The speaker has been investigating memory usage issues in Next.js applications, particularly with image optimization using Sharp.
  • 🔍 They are exploring the idea of achieving more with less, in terms of code, dependencies, and complexity in the software industry.
  • 💡 The speaker's work involves AWS, cloud computing, and infrastructure as code, where they've noticed that complexity can sometimes outweigh the deployment's actual needs.
  • đŸ› ïž They have refactored some applications from Next.js to other technologies like Hono and Bun to reduce memory usage, with varying degrees of success.
  • 📉 A comparison of memory usage between different implementations shows that a Go and Fiber implementation uses significantly less memory than JavaScript-based ones.
  • 🚀 The speaker considers Go to be a strong alternative due to its performance, low memory footprint, and ability to compile into a single executable.
  • đŸ€” There's a contemplation about the necessity of client-side interactivity and whether it justifies the overhead of JavaScript frameworks and libraries.
  • 🌐 HTMX is highlighted as a potential solution for achieving frontend functionality with less JavaScript, by leveraging server-side rendering and HTML.
  • 🛑 The speaker expresses a desire for a shift in mindset towards simplicity and efficiency, questioning the need for complex ecosystems in common web development tasks.
  • 🔧 They advocate for evaluating whether the same functionality can be achieved with fewer dependencies, less memory, and reduced third-party services.
  • 🔄 Despite the exploration of new technologies, the speaker will continue to produce content on Next.js and other JavaScript frameworks, acknowledging their value in certain contexts.

Q & A

  • What issue with Next.js applications prompted the speaker to investigate memory usage?

    -The speaker noticed that their Next.js applications were consuming increasing amounts of memory over time, which led them to investigate the cause and consider ways to optimize performance.

  • What does the speaker suggest as a potential cause for the memory consumption issue in Next.js applications?

    -The speaker suggests that the image optimization process using Sharp might be contributing to the memory consumption issue in Next.js applications.

  • What philosophy is the speaker advocating for in the software industry?

    -The speaker is advocating for a philosophy of 'doing more with less,' which means achieving better performance, more features, or other benefits using less code, fewer dependencies, and reduced complexity.

  • What alternative to Next.js did the speaker try for their applications?

    -The speaker tried using Hono and Bun for their applications as an alternative to Next.js to see if it would help with the memory usage issue.

  • How does the memory usage of the Hono and Bun implementation compare to the Go and Fiber implementation?

    -The Hono and Bun implementation has a memory usage of around 150 megabytes, whereas the Go and Fiber implementation uses significantly less memory, starting at 6 megabytes and going up to 11 megabytes after deployment.

  • What benefits does the speaker see in using Go for their projects?

    -The speaker sees benefits in using Go such as lower memory usage, the ability to build a fully functioning REST API without external dependencies, and the inherent performance and concurrency features built into the language.

  • What is the speaker's opinion on the current state of the JavaScript ecosystem?

    -The speaker feels that the JavaScript ecosystem is bloated and often requires too many external tools and dependencies to achieve what could be done more efficiently with other languages like Go.

  • What is the speaker's view on the use of HTMX for front-end interactivity?

    -The speaker finds HTMX appealing because it allows for achieving front-end interactivity with less complexity and without the need for extensive JavaScript code, by leveraging server-side rendering with Go.

  • What is the speaker's recommendation for new developers or small teams looking to build web applications?

    -The speaker recommends considering the use of Go for its performance and simplicity, but also acknowledges that for quick prototyping or in certain contexts, using Next.js can still be beneficial.

  • What is the speaker's perspective on the continuous updates and changes in the JavaScript ecosystem?

    -The speaker expresses frustration with the constant updates and changes in the JavaScript ecosystem, which can lead to instability and additional work to keep up with the latest tools and practices.

Outlines

00:00

📈 Memory Usage and Optimization Concerns

The speaker discusses their increasing focus on memory usage, particularly in Next.js applications, which they've noticed consume more memory over time. They attribute this partly to image optimization with Sharp. The speaker reflects on the broader industry question of whether more can be achieved with less—less code, fewer dependencies, and reduced complexity. They share their experience with AWS, serverless architecture, and infrastructure as code, noting that sometimes the complexity of these technologies can overshadow the simplicity of the actual deployment. The speaker introduces an icon generator application built with Next.js, which generates significant revenue but also high memory usage, leading them to explore alternatives like Hono and Bun for better performance and lower memory footprint.

05:02

🛠 Exploring Go for Performance and Efficiency

The speaker continues by sharing their exploration with Go, motivated by the desire to achieve more with less. They compare memory usage between different implementations of a mailing list application, highlighting the stark difference between a Bun and Hono version versus a Go and Fiber version. The Go version demonstrates significantly lower memory usage, which leads to cost savings and better performance. The speaker emphasizes Go's ability to serve more requests per second and its advantage of having built-in features like channels for concurrent processing, without the need for additional dependencies. They also touch on the developer experience in Go, including auto-formatting and automatic importing, and the benefits of a single binary deployment in Docker, which contrasts with the JavaScript ecosystem's reliance on build tools and bundlers.

10:03

🚀 Embracing HTMX for Client-Side Interactivity with Less Complexity

In the final paragraph, the speaker discusses their growing interest in HTMX, a lightweight JavaScript library that enables rich, interactive user experiences with minimal code. They reflect on the potential of achieving high levels of client-side functionality without the bloat associated with larger JavaScript frameworks. The speaker acknowledges the hype around HTMX and considers using it alongside Go for future projects. They express a mindset shift towards simplifying development, reducing dependencies, and focusing on shipping functional code without the overhead of constantly updating and managing complex ecosystems. The speaker concludes by reassuring the audience that they will continue to produce content on Next.js and other technologies but encourages a broader mindset of efficiency and simplicity in software development.

Mindmap

Keywords

💡Memory Usage

Memory usage refers to the amount of RAM that a running application consumes. In the video's context, the speaker is concerned about the increasing memory usage of their Next.js applications over time, which they suspect might be due to image optimization with the Sharp library. This issue is central to the video's theme of achieving more with less, as it highlights the need for efficiency in resource consumption.

💡Next.js

Next.js is a popular React framework for building user interfaces. The speaker uses Next.js in several of their applications and discusses its memory consumption issues. Next.js is part of the broader discussion on whether the JavaScript ecosystem is bloated and if alternative technologies could offer better performance with less complexity.

💡Image Optimization

Image optimization is the process of minimizing the file size of an image to improve loading times and reduce bandwidth usage without significantly affecting the image quality. The speaker mentions that image optimization with Sharp might be contributing to memory issues in their Next.js applications, illustrating the trade-off between performance and resource usage.

💡Serverless

Serverless computing is a cloud-computing execution model where the cloud provider dynamically manages the allocation and provisioning of servers. The speaker mentions their work with AWS and serverless architectures, which are part of the complex systems they are evaluating for efficiency and simplicity.

💡Infrastructure as Code

Infrastructure as Code (IaC) is the management of infrastructure using code and software development practices. The speaker refers to using Terraform for IaC, which is part of their broader exploration of complex cloud setups and the quest for simplification in deployment processes.

💡Hona

Hona is a minimalistic framework for building server-side applications. The speaker refactored one of their applications to use Hona to reduce memory usage, demonstrating an example of 'doing more with less' by adopting a simpler technology to achieve the same functionality.

💡Bun

Bun is a new JavaScript runtime that aims to be fast and efficient. The speaker discusses using Bun in their applications and compares its memory usage to other technologies, questioning whether the benefits of newer technologies outweigh their potential drawbacks in terms of performance and stability.

💡Go

Go, also known as Golang, is a statically typed, compiled programming language designed at Google. The speaker considers Go as an alternative to JavaScript for its performance benefits and lower memory footprint, as demonstrated by their comparison of a Go implementation versus a JavaScript one.

💡Performance

Performance in this context refers to how well an application or system executes in terms of speed and resource usage. The video's theme revolves around improving performance by reducing complexity and resource consumption, as evidenced by the speaker's exploration of different technologies and their impact on memory usage and execution speed.

💡Simplicity

Simplicity is the concept of making things as simple as possible without reducing functionality. The speaker advocates for a mindset shift towards achieving more with less, which includes using simpler code, fewer dependencies, and less complex systems to improve performance and reduce resource usage.

💡HTMX

HTMX is a JavaScript library that allows you to create dynamic and highly interactive websites using standard HTML and server-side templates. The speaker considers HTMX as a way to achieve client-side interactivity with less JavaScript, aligning with the video's theme of reducing complexity and dependencies.

Highlights

The speaker has been investigating memory usage issues in Next.js applications, particularly with image optimization using Sharp.

A shift in philosophy is proposed: achieving more with less code, fewer dependencies, and reduced complexity.

The speaker's work involves AWS, serverless architectures, and infrastructure as code, but notes the complexity can outweigh the deployment benefits.

An icon generator application built with Next.js is highlighted, noting its high memory usage despite being a simple app.

Refactored applications from Next.js to other technologies like Hono and Bun to reduce memory usage.

A comparison of memory usage between Hono, Bun, and a Go implementation shows significant differences, with Go using much less memory.

The speaker questions the need for high memory usage in single-page applications and explores alternatives to JavaScript for better performance.

Go is presented as a potential solution for achieving high performance with less memory and fewer external dependencies.

A mailing list project refactored to Go demonstrates lower memory usage compared to its JavaScript counterparts.

The simplicity of deploying a Go application as a single binary is contrasted with the complexity of JavaScript build tools.

The speaker discusses the benefits of Go's standard library, including built-in tools for formatting and importing that streamline development.

Channels in Go are highlighted as a feature that prevents blocking of API requests, unlike Node.js.

The speaker criticizes the need for additional tools like esbuild in the JavaScript ecosystem and praises Go's simplicity in deployment.

A Dockerfile example is provided to illustrate the minimal size and performance of a Go application container.

HTMX is introduced as a potential solution for achieving client-side interactivity without JavaScript, leveraging Go's server-side rendering capabilities.

The speaker reflects on a decade of web development and expresses a desire for simpler, more maintainable codebases.

A call to action for developers to consider whether they can achieve the same functionality with less code and complexity is made.

The speaker reassures that they will continue to produce content on Next.js and other JavaScript frameworks despite their current focus on Go.

Transcripts

play00:00

so if you all follow me on Twitter you

play00:01

might have seen me posting a lot more

play00:02

charts and graphs about memory usage and

play00:04

the reason I'm kind of getting into that

play00:06

rabbit hole is because I noticed a lot

play00:08

of my nextjs applications just start

play00:10

eating up memory over time and I think a

play00:13

lot of this is because of the image

play00:15

optimization was sharp but it kind of

play00:17

just got me thinking of like should we

play00:19

be trying to achieve more in this

play00:21

industry by using less and by less I

play00:24

mean like less code less dependencies

play00:28

less complexity now I was say a lot of

play00:30

the stuff I do at work is related to AWS

play00:32

and cloud computing we do like

play00:33

serverless Dynamo DB Dynamo streams to

play00:36

elastic search infrastructure as code

play00:38

with terraform and it's like the

play00:41

complexity sometimes starts to get so

play00:44

much greater than the actual thing

play00:46

you're trying to deploy out to

play00:48

production right which kind of reminded

play00:50

me of this ideology of like can we

play00:51

achieve more either that's like more

play00:53

performance more features more Whatever

play00:57

by doing less or writing less or hending

play01:00

on this so here's icon generator this is

play01:02

like one of my first real applications I

play01:05

deployed with nextjs that actually gets

play01:06

me I think $1,000 a month from revenue

play01:09

which is pretty nice but you can see

play01:11

here it's having around like 400

play01:12

megabytes of usage which kind of seems

play01:15

like a lot of uh usage uh maybe there's

play01:17

a bunch of caching going on behind the

play01:19

scenes which is why it's like so high

play01:21

but I was seeing kind of similar

play01:22

performance with other things I was

play01:23

deploying right so for example here's

play01:24

another application that I used to have

play01:26

in nextjs it's like one page and I was

play01:29

inspecting the memory usage which I

play01:31

don't think I have it anymore with the

play01:33

nextjs version but we can look at

play01:35

something else that's also one page my

play01:37

WDC starter kit okay this used to be a

play01:41

nextjs as well and at times I've saw it

play01:43

go all the way up to like 300 400

play01:46

megabytes of memory and it just kind of

play01:49

got me thinking of like why is it that a

play01:52

single static page needs so much memory

play01:56

cuz it really shouldn't and so what I

play01:58

did is I refactored the starter kit to

play02:00

instead use hona and then also I have

play02:02

another application that I kind of

play02:03

worked on this used to be in nexj as

play02:05

well saw the same things where like the

play02:06

memory used to just kept getting higher

play02:08

I refactor this use hona and Bun okay so

play02:12

let's kind of look at the difference

play02:13

right so this is now hovering about 1 15

play02:16

what you're looking at right here is the

play02:17

hona implementation I'm pretty sure and

play02:19

if we go over to no glass with node

play02:22

let's look at the memory usage of this

play02:24

hovering around 105 granted there's not

play02:26

much traffic hitting this site at all

play02:28

but this is better it's not great I mean

play02:31

I still think this is quite a lot of

play02:32

memory usage for a single application

play02:35

with very very little

play02:36

traffic here's bun you can see that when

play02:39

I first deploy it it's like 44 Megs and

play02:41

then again that just slowly starts

play02:43

climbing and climbing and climbing and

play02:45

then I did a deployment that went back

play02:47

down to something lower and then it

play02:48

starts climbing and climbing and

play02:49

climbing and granted in the grand scheme

play02:51

of things like Railway only charges you

play02:53

like not that much money for like memory

play02:55

usage but overall when I have like this

play02:57

many projects deployed out and all of

play02:59

them slowly start creeping up in memory

play03:00

usage either because it's like a garbage

play03:02

collection issue or there's memory leaks

play03:04

inside of nextjs or inside of the

play03:06

services I don't know if buns production

play03:08

ready or not it just got me thinking of

play03:10

like why not just do something else why

play03:12

not just use go use rust use C if this

play03:16

is the state with JavaScript um like why

play03:19

not just use something that's actually

play03:20

like performant from out of the box so

play03:23

some of the investigation I've been kind

play03:24

of looking into is using go go is

play03:27

another thing that I've used on my

play03:28

channel a couple times I kind of just

play03:29

played around with it but now I'm at the

play03:32

point where I actually might go more uh

play03:34

all in on go at this point now granted I

play03:36

just released a starter kit that uses

play03:38

nextjs and I still think nextjs is a

play03:41

great way of like you're a solar preneur

play03:44

or small team you just need to get

play03:45

something out there yeah you can move

play03:47

very very fast with nextjs and I would

play03:50

still probably someone came to me and

play03:51

said hey I need something built I would

play03:53

probably use nextjs but in the grand

play03:54

scheme of things I think we need to have

play03:57

a a philosophy or mind set change a

play04:01

little bit and try to achieve more with

play04:03

less so let's look at the project that I

play04:05

refactored to go and I believe it's

play04:08

called um if I go to the promo site I

play04:11

have two implementations of a mailing

play04:13

list okay so one is in go and fiber and

play04:16

one is in bun and hona so let's look at

play04:18

the bun and hona one if you go over here

play04:19

this is eating up 150 megabytes of

play04:22

memory for a very very simple page where

play04:25

literally I'm seeing this across the

play04:26

board so maybe this is a railway issue

play04:28

maybe Railway has overhead to your

play04:30

services but let's look at the go and

play04:33

fiber implementation you're going to be

play04:34

blown away this is using 11 megabytes of

play04:37

memory when I first deploy it it uses

play04:39

six and then it goes up to 11 megabytes

play04:42

of memory which is good because a how

play04:44

much do I get charged for running a

play04:46

service that's 11 megabytes of memory I

play04:48

get charged Pennies on Railway versus

play04:51

bun and hona I'm going to get charged

play04:53

more now secondly the code between the

play04:56

go implementation and the bun

play04:57

implementation is very similar right

play04:59

there's like it's almost like the same

play05:01

code just written in different syntax

play05:04

and so if you are trying to get more

play05:07

performance by writing the same code why

play05:10

wouldn't you just do that okay so that's

play05:13

kind of like what I'm doing here and

play05:15

yeah I mean it's it's great now you can

play05:16

even get this lower people keep saying

play05:18

that I should be using the standard

play05:19

librar and go instead of fiber but the

play05:23

point is is like you're able to achieve

play05:26

this type of performance in this low

play05:28

memory usage out of the box box with not

play05:30

even having to thinking about caching

play05:32

like I'm not caching anything like I

play05:34

don't even have to think about CDN or

play05:36

caching or any of optimizations like

play05:38

this literally just doesn't use memory

play05:40

on your machine but let's be honest I

play05:42

think the go implementation could

play05:43

probably serve a lot more requests per

play05:45

second than anything in the node or

play05:47

JavaScript ecosystem so now that I have

play05:49

you hooked with this very obvious like

play05:51

argument of why you should probably just

play05:53

use go I mean like look at this I'll

play05:55

even zoom in for you look how nice that

play05:57

is 6 megabytes the other argument for go

play06:00

is that you can basically achieve a

play06:03

fully functioning rest

play06:04

API with bringing in no external

play06:07

dependencies okay you can just use the

play06:10

things that are built into the go

play06:11

standard library and build out a rest

play06:14

API now grant that with bun and hona I

play06:16

mean you don't have that many

play06:17

dependencies but again you're like

play06:19

depending on bun which in my opinion

play06:21

it's it's too early to like really adopt

play06:24

it I'm sure it has like underlying

play06:26

issues and honestly I think it just

play06:27

needs more time to cook I would probably

play06:30

still use node on anything serious but

play06:32

on side projects you just want it to be

play06:34

fast yeah I mean probably use bun and

play06:35

hona but again like look at this

play06:38

comparison you might not care and I

play06:41

think that's the point I'm trying to

play06:42

drive at is you should care the same

play06:44

amount of code in terms of developer

play06:46

experience in fact I think go actually

play06:48

has a really good developer experience

play06:49

like you literally can just like save a

play06:51

file it autof formats for you

play06:52

automatically you don't have to install

play06:53

prettier again doing more with less it's

play06:56

built into the go standard Library like

play06:58

format stuff for you already bringing in

play07:01

these packages you don't have to like

play07:03

right click on anything and say import

play07:05

go will just automatically import stuff

play07:07

when you save files some things that are

play07:09

built into the box that you're not going

play07:10

to have with nextjs is channels so if

play07:13

you have used node you'll notice that if

play07:15

you have a longer running thing that

play07:18

really eats into CPU time it's going to

play07:20

block the entire thread in node.js so if

play07:23

you imagine you have like a for Loop

play07:24

inside like a back and endpoint that

play07:25

does like a million records that has a

play07:28

loop through a million records you're

play07:29

potentially going to block every single

play07:31

request from hitting your node API is

play07:34

that something that you actually want to

play07:36

think about probably not right with go

play07:38

you have channels and channels basically

play07:41

spin things up and run them in their own

play07:43

threads I do think it's more Nuance to

play07:45

that um but everything runs in its own

play07:47

thread so you don't have to worry about

play07:49

like me blocking the entire thread for

play07:52

every API request because you have these

play07:54

constructs that are built directly into

play07:56

go that allow you to just like push

play07:58

things into a channel and process them

play08:00

now grant that stuff like PHP laravel

play08:02

has like Q's built in which I think

play08:04

achiev something similar Elixir and

play08:06

earling is also really great with that

play08:08

type of stuff another thing I want to

play08:09

show you is if you've ever deployed

play08:11

nodejs to production in particular to

play08:13

like

play08:14

serverless most of the times they're

play08:16

bringing in like es build so they can

play08:18

bundle your node application like

play08:20

actually bundle your API code and get

play08:23

that deployed out so it's not as

play08:25

large so again you're bringing in more

play08:28

external things that are not baked into

play08:30

JavaScript or typescript itself just so

play08:33

that you can get this stuff running on

play08:35

AWS which I think is a code smell I

play08:37

think it's a smell with the design of

play08:39

the ecosystem with typescript with

play08:41

JavaScript and instead let me just show

play08:43

you this this Docker file okay I have

play08:46

this Docker file which runs through it

play08:48

builds up this go binary and again when

play08:52

go finishes running it just gives you

play08:54

one single binary with all the code

play08:56

that's necessary inside of that binary

play08:59

okay so with this multi-stage Docker

play09:01

file I build a go binary and I also have

play09:04

like my public assets and then I create

play09:06

a Docker image from scratch scratch if

play09:08

you don't know what the scratch is is

play09:09

basically an image that has nothing on

play09:11

it so it's like zero bytes it's it's

play09:13

super small super performant and so I

play09:16

can just grab that node binary and my

play09:18

public assets and put them in this empty

play09:20

Docker image and then run that binary

play09:24

and at the end of this like when you

play09:25

actually build this we're talking like

play09:28

maybe a megabyte or less of how big this

play09:30

image is because it only contains those

play09:32

two things which is nice because this is

play09:35

literally built into go it compiles your

play09:38

code into a single executable which in

play09:41

no JS like I'm just tired of like having

play09:43

to deal with es build I'm tired of

play09:45

dealing with web pack and then at some

play09:47

point it was using like snow build or

play09:49

snow pack and then we started using like

play09:51

Grunt and gulp it's just a NeverEnding

play09:53

cycle of like BS dare I say that to

play09:58

basically cover up the smells of the

play10:00

ecosystem versus I think go is just

play10:03

designed from the get-go of like this is

play10:05

good engineering and by the way I do

play10:07

want to point out that I have a nextjs

play10:09

starter kit if you do still want to use

play10:11

nextjs even though I've been bashing the

play10:13

entire ecosystem where I'm basically

play10:15

making videos to walk you through all

play10:17

the code base of the starter kit the

play10:18

starter kit is all free MIT um but I do

play10:21

plan to make a bunch of videos to

play10:22

explain this code base um again no hate

play10:25

towards nextjs I have actually made some

play10:26

decent money using nextjs so I'm not

play10:28

going to write write it off but I just

play10:31

wanted to give that little plug right

play10:32

there um since you're still listening

play10:34

hopefully now I think another thing that

play10:35

really triggered my mindset change a

play10:37

little bit was htx I I know htx seems

play10:40

like a meme but the more you think about

play10:43

it like the fact that if you write go

play10:45

and you can achieve this much

play10:47

performance increase by just switching

play10:50

to go you are going to take a hit in

play10:53

terms of your client side

play10:55

interactivity and if you end up having

play10:57

to pull in view or spell or react or

play11:00

next or whatever to achieve client side

play11:03

functionality it just doesn't feel right

play11:05

now one of the things that makes htx so

play11:07

appealing again is that all the heavy

play11:10

lifting and power of go can generate

play11:13

your templates and send them over from

play11:15

the back end to the front end now this

play11:17

isn't new I mean we've been doing this

play11:18

forever in the industry but the idea is

play11:21

that like can you achieve more with less

play11:23

can you achieve the same or close to the

play11:25

same frontend client side

play11:27

functionality without having to write

play11:29

any JavaScript at all and I think htx

play11:32

kind of provides that now currently

play11:34

that's kind of the mindset and ideology

play11:35

I want to kind of follow for a little

play11:37

bit right now um I just just want to

play11:40

experiment like can I achieve a nice

play11:42

enough user experience where I still

play11:45

have all the benefits of using go I

play11:47

still have all the benefits of showing

play11:49

Spinners and interaction and dynamically

play11:51

swapping out things on the page without

play11:53

having to bring in all this bloat that's

play11:56

associated with typescript and the

play11:57

JavaScript ecosystem now now I'll be

play11:59

completely honest this thing was hyped

play12:00

up maybe like a year ago by like

play12:02

primagen and a bunch of other people and

play12:04

I think it's kind of cooled off since

play12:06

then but I'm am honestly thinking about

play12:08

using HTM X and go for a lot of my

play12:11

content in the future so if you want to

play12:13

stick around on my channel and still

play12:15

learn about typescript the nextjs I will

play12:17

still publish that type of content

play12:19

because I don't want to just completely

play12:20

kill off all my channel but again this

play12:24

is more of like a mindset change that's

play12:25

happened to me I've been coding for

play12:26

almost 10 plus years and I'm just to the

play12:29

point where it's like I just want to be

play12:30

able to ship code and not worry about

play12:34

next js's 50 caching rules or worry

play12:37

about using unstable no store unstable

play12:41

cash or another version update with

play12:43

nextjs that's going to break something

play12:44

or change the way we have to do stuff or

play12:46

react 19 bringing out a new compiler I

play12:48

have to think about and use it's like

play12:51

what if I could just put two tags on an

play12:54

HTML element and when you click it

play12:57

automatically have this button show an

play12:59

indicator and then when it's done my go

play13:02

API sends over HTML which I can swap out

play13:05

in the front end and Achieve 90% of the

play13:09

same functionality that I have seen all

play13:11

throughout my career most of the stuff

play13:12

that I've used angularjs and angular and

play13:15

react and view for it's literally here's

play13:18

a form submit it process some data send

play13:22

some data back like that is literally

play13:23

what I've been doing for 10 plus years

play13:25

and your mileage may vary like if you're

play13:27

on a project that's building like eraser

play13:29

IO or you're building excal drol then

play13:32

yeah you're going to have to get more

play13:34

into the JavaScript side of things but

play13:36

for most of what I built in this

play13:38

industry and what a lot of people build

play13:40

as well is literally here's a form

play13:43

submit it process it send something back

play13:45

and again I think we need to start

play13:46

thinking in the mindset of can we

play13:47

achieve 90% or 95% of the interactivity

play13:50

that our designers ask for or that our

play13:52

business ask for by using like 50% less

play13:58

code or 50% less complexity or 75% less

play14:03

third- Party Services because the more

play14:05

you keep tacking on to this it's just

play14:07

like a gear Cog that you keep adding

play14:09

gears and the moment one of those gears

play14:11

breaks or becomes deprecated you end up

play14:14

spending more time trying to update that

play14:16

stuff or swap it out instead of actually

play14:19

shipping functionality so that's my talk

play14:22

um again don't be scared I'm still going

play14:23

to make nextjs content I have like two

play14:26

legit projects using nextjs so I'm not

play14:28

going to just abandon them like like

play14:29

project planner AI completely written

play14:31

with nextjs so yeah I'm not going to

play14:33

just abandon it but I just wanted to

play14:35

kind of put that idea into your head

play14:37

especially if you're like a beginner to

play14:39

have that mindset can you achieve the

play14:41

same functionality with using less

play14:43

dependencies using less memory using

play14:46

less complexity less thirdparty Services

play14:50

less Cloud providers and still achieve

play14:53

what you need okay have a good day happy

play14:55

coding

Rate This
★
★
★
★
★

5.0 / 5 (0 votes)

Étiquettes Connexes
Web OptimizationMemory UsageNextJSGo LanguagePerformanceSimplicityCode EfficiencyServerlessCloud ComputingDeveloper Mindset
Besoin d'un résumé en anglais ?