Amazing video! I don’t know if it’s just me but: being able to write your server logic in Typescript without extra tooling, the fact you can write JSX, just amazing, my only concern with these new and better technologies is compatibility with existing libraries and packages, maybe you could do a video addressing that
I'd love to see that too. Where I work, we use Next.js (page router) for a big web app and the DX is terrible. The dev server crashed at least one a day and take close to 2GB of memory. All I care about in Next if getServerSideProps(), so if I could use something lightweight to replace it, that would be awesome.
Is it that you're not sure how full-stack works? Here. OPEN THE TERMINAL AND RUN > mkdir HotelTrivago > cd HotelTrivago > bun init > bun install express cors CREATE FILE CALLED "server.js" IN THE "HotelTrivago" FOLDER THEN BUILD AN API THAT SPITS OUT SOME TEXT USING THE BELOW CODE START CODE BLOCK const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors()); app.get('/', (req, res) => { res.send("Trivago"); }); app.listen(3000, () => { console.log('listening on port 3000'); }); END CODE BLOCK BACK TO THE TERMINAL AND START UP THIS BAD BOY > bun server.js OPEN BROWSER AND GO TO 'localhost:3000/' AND BEHOLD, OUR SERVER/API HAS RESPONDED WITH THE WORD "Trivago" NOW WRITE A CLIENT APP THAT USES THIS API ENDPOINT CREATE AN "index.html" FILE ANYWHERE, OPEN WITH A TEXT EDITOR AND INSERT THIS MARKUP START MARKUP BLOCK async function clickityclickity() { let response = await fetch('localhost:3000'); let data = await response.text(); document.querySelector('p').innerHTML = data; } Hotel? Click Me END MARKUP BLOCK NOW OPEN "index.html" WITH A BROWSER CLICK THE BUTTON AND BEHOLD THE "Hotel?" TURNS INTO A "Trivago" FULL STACK, BABY
While bun is great, Bun is still reliant on one primary developer. I love bun and will continue to use it for smaller projects or side projects, but until it becomes reliable longevity wise, I prefer to stay with the standard tech for now for business focused work.
JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will. I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
@@juststudying1019 i want programming/computer things to not change for years, to not be deprecated. For programs/games to work on any future computers. For things to be reproducable on any computers.
I am absolutely blown away! 😮 This is so much better than Node and Express! If they come up with a framework like Nest or Adonis with bun and hono, it will absolutely dominate the backend world!
The problem with this new tech is that the industry doesn't implement it. They stick with the OG tech. So spending time learning something like that could be wasting of time sadly.
It doesn't take any time to learn this if you already know express. That was the point of bun, to supercede node, express, npm, but actually fast since it runs on zig.
JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will. I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
wow this is awesome , specially the ability to write jsx ( I don't hate ejs but i wish that if it was jsx ) in the template engine. I hope to see more on this matter especially from you that obviously are very good at explaining . thanks bro
Sam- It seems that since this video was posted, Hono has changed a bit, requiring its "helpers" -- which include: stream(), streamText() and streamSSE() -- to now be imported (i.e.: import { stream, streamText, streamSSE } from 'hono/streaming') for your streaming example @T=3:35 to work. Otherwise, well done!! Thanks.
I just had to rewrite a small webapp because Flask doesn't handle SSE nicely, and Bun + Hono works so much better. Thanks a lot for showing this setup!
@@blender_wiki will this magic button also give all the context that I need? Is not the speed of the video that is fast... but the flow... but thanks for such a lovely condesending and mansplaining comment! We def. need more of these!
How do you feel about there only being basically 1 contributor to bun? Do you still recommend bun for production even though it doesn't pass the bus test?
I started to think that web dev is getting more broken with time, First, it was html css Javascript & php Then react angular express angular react vite mysql Today react express mongodb express nextjs nestjs bo fo ko do so & nono One year from now they will be +infinity
Can hono be used in non serverless environments? Because if it can't how would you implement socket connections or anything that needs a longer connection
Hey Sam! Great video as always! I am curious how this works with bigger projects where I have JSX templates and layouts just like Next, but without all the hassle, it just renders HTML. I would appreciate if you could make a longer video on that.
It’s not opinionated like next, so you would just have to create your own layout components. You could make it work however you want but you wouldn’t get default caching behaviour or default 404 or error pages.
I don't think 404 pages or error pages are that much difficult to handle. But I can't say the same about caching. Caching seems very hard. If you could make a video on caching different parts of your website i.e mixing database caching, CDN caching and all that good stuff, that would be really good. @@SamMeechWard
Great video Sam, thanks. BUT JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will. I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
What about database operations? I used it around 10 month ago. Only problem in that time i found is that db operation. I need to use totally raw operation. Express has mongoose ODM but i Don't find similar that
Amazing video! I don’t know if it’s just me but: being able to write your server logic in Typescript without extra tooling, the fact you can write JSX, just amazing, my only concern with these new and better technologies is compatibility with existing libraries and packages, maybe you could do a video addressing that
Your content is really amazing, i would love to see a vite and hono full fledged tutorial.
i wanted to use hono for a time now but bun and hono combined looks crazy fun. I think the next project will be with bun and hono
JS developers change frameworks more often than they take a bath.
yeah this is getting rediculous lol
Express.JS is 14 years old. So, this is a little bit concerning. How can a human being survive without showering for 14 years straight?
@@TolyaBogomolov i see humor is lost to js devs
Why complain most of this stuff is free and you get to use something that you like.
the use of context reminds me of how Golang Web Frameworks like Gin and Echo work. Pretty nice!
Same here! I was looking for this comment
Yo, can't wait for Hono+Vite+React setup tutorial!
I've tried a couple of time to make it works but failed! Can't wait to see the video!
Man just ditch React and Client frameworks once and for all. You have JSX on the server with these. What else do you need?
I'd love to see that too. Where I work, we use Next.js (page router) for a big web app and the DX is terrible. The dev server crashed at least one a day and take close to 2GB of memory. All I care about in Next if getServerSideProps(), so if I could use something lightweight to replace it, that would be awesome.
beth stack but hono
@@jarnathan-snow
@alaskandonut yoooo, thx bud
Bro will you make a full stack application using Bun, so that we can learn something from your experience
The way you can learn from this experience is if YOU make a full-stack app using Bun. His knowledge isn’t magically transferred into your head
Is it that you're not sure how full-stack works? Here.
OPEN THE TERMINAL AND RUN
> mkdir HotelTrivago
> cd HotelTrivago
> bun init
> bun install express cors
CREATE FILE CALLED "server.js" IN THE "HotelTrivago" FOLDER THEN BUILD AN API THAT SPITS OUT SOME TEXT USING THE BELOW CODE
START CODE BLOCK
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/', (req, res) => {
res.send("Trivago");
});
app.listen(3000, () => {
console.log('listening on port 3000');
});
END CODE BLOCK
BACK TO THE TERMINAL AND START UP THIS BAD BOY
> bun server.js
OPEN BROWSER AND GO TO 'localhost:3000/' AND BEHOLD, OUR SERVER/API HAS RESPONDED WITH THE WORD "Trivago"
NOW WRITE A CLIENT APP THAT USES THIS API ENDPOINT
CREATE AN "index.html" FILE ANYWHERE, OPEN WITH A TEXT EDITOR AND INSERT THIS MARKUP
START MARKUP BLOCK
async function clickityclickity() {
let response = await fetch('localhost:3000');
let data = await response.text();
document.querySelector('p').innerHTML = data;
}
Hotel?
Click Me
END MARKUP BLOCK
NOW OPEN "index.html" WITH A BROWSER
CLICK THE BUTTON AND BEHOLD THE "Hotel?" TURNS INTO A "Trivago"
FULL STACK, BABY
Amazing! We’re waiting for a full Tutorial ;-)
While bun is great, Bun is still reliant on one primary developer.
I love bun and will continue to use it for smaller projects or side projects, but until it becomes reliable longevity wise, I prefer to stay with the standard tech for now for business focused work.
Luckily hono supports node too
@@WillDelishtrue
JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will.
I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
Today bun is good tomorrow there is something better and we all abandon bun😢
@@juststudying1019 i want programming/computer things to not change for years, to not be deprecated. For programs/games to work on any future computers. For things to be reproducable on any computers.
It would be great to see the performance part in comparison with express, fastify on node to understand the capabilities of this modern framework
Google is your friend:
"Node.js vs Deno vs Bun: Express hello world server benchmarking"
I am absolutely blown away! 😮 This is so much better than Node and Express! If they come up with a framework like Nest or Adonis with bun and hono, it will absolutely dominate the backend world!
Did you ever test elysia i'm looking for something performant and reliable
Same here. Bun + Hono is such a nice combo. Easy to work with, and holy f-- it’s performant.
that absolutely look great!, would be nice to see hono - monorepo tutorial :D
Subscribed for the hono+vite magic that you'll drop
ok you've sold me!
next project will be with hono (bun i already use :D)
The problem with this new tech is that the industry doesn't implement it. They stick with the OG tech. So spending time learning something like that could be wasting of time sadly.
yep
It’s pretty straight forward though, anyone with react and express knowledge will pick this up in an hour.
It doesn't take any time to learn this if you already know express. That was the point of bun, to supercede node, express, npm, but actually fast since it runs on zig.
JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will.
I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
@@juststudying1019 you're complaining like you are making these solutions smh
amazing, seems like something's great is growing out of bun. im excited to see where it will go.
You know what I have an old express project, I will try migrating it to bun + hono . Want to see what are the gotchas in this combo.
I wish Bun had Windows and Nextjs support ... hopefully soon
Just quit using Windows and start using Linux, you'll thank me later.
wow this is awesome , specially the ability to write jsx ( I don't hate ejs but i wish that if it was jsx ) in the template engine. I hope to see more on this matter especially from you that obviously are very good at explaining . thanks bro
Looove hono + bun combo. Also sprinkle some htmx and its pretty magical
Don’t forget drizzle
Have you tried Elysia? The DX is really amazing
it is not. Have you tried nesting guards?
@@jarnathan-snowyh that's a chore but I prefer beforehandle function
Sam- It seems that since this video was posted, Hono has changed a bit, requiring its "helpers" -- which include: stream(), streamText() and streamSSE() -- to now be imported (i.e.: import { stream, streamText, streamSSE } from 'hono/streaming') for your streaming example @T=3:35 to work. Otherwise, well done!! Thanks.
we need more Hono videos! this was great!
Thanks for showing the basic for a fresh start. Cheers!
Gratefull, I'll waiting for your tutorial using Hono🤩
Hono seems cool, but after Sveltekit I can’t see me using another tool for api
Hello sam, how about ElysiaJs?
Dude, super well paced and explained, mint.
amazing demonstration Sam!
Tutorial for hono/vite if possible. Idk if you already did it but thanks ahead of timeif you are thinking about it.
Yes we would love a tutorial on vite and hono please 🙏
Great video! I would love to see a Hono, Vite, React tutorial.
Being able to serve HTML using JSX instead of EJS or other template language is so good!!!
Damn, Hono looks incredible!
The client/server type safety is a nice feature!
That is very cool I usually use python for backend development but I am excited to try hono and bun
You had me at “Because Bun” it’s always about the bun
I just had to rewrite a small webapp because Flask doesn't handle SSE nicely, and Bun + Hono works so much better. Thanks a lot for showing this setup!
The future of us!
More bun and Hono please! Maybe build full rest api with swagger, mongo and some sort of autorization it is be nice
looks so cool! I'm gonna try it out for sure, thanks for the info!
Hono is awesome! Would love seeing more content on hono
Hono is beautiful. Been using it so much.
Hey sam please make a comparison between Hono and ElysiaJS
error: Cannot find module "react/jsx-dev-runtime" from "/Users/sam/Documents/server/src/app.tsx"
that is soo good dud, i see yesterday.
yea i tried this ~ 12 - 18 months ago but couldnt stick w it for larger stuff glad the ecosystem has improved w it
Could you make a video integrating tRPC with hono?
You are going so fast... is hard to follow... but none the less... very valuable content. thanks
In YT you have a great option to slow down the playback speed of a video and also an advanced button called "pause".🤷🏿♀️🤷🏿♀️🤷🏿♀️
@@blender_wiki will this magic button also give all the context that I need? Is not the speed of the video that is fast... but the flow... but thanks for such a lovely condesending and mansplaining comment! We def. need more of these!
@@DamirSeckiyou need to watch some beginner videos first. If you are a developer this speed is fine
@@mrcheeseguyman I probably need to, yes....been dev only for 30 years....
@@DamirSeckiI don’t understand why you can’t follow his speed. I have been a developer for only 4 years and I have zero trouble following along
Nice intro! Well done.
Such a amazing tutorial
Thanks now I understand why Hono is better that ElisiaJS too 🎉
Would be nice to see more vids on this topic
hono still has a loooot of issues like websocket implement and graphql like yoga with enable ws ...etc, so i cannot recommend hono for now
Which cli and cli font are you using? I'm so obsessed with the fonts, ain't I?
How do you feel about there only being basically 1 contributor to bun? Do you still recommend bun for production even though it doesn't pass the bus test?
Nope use deno …
What about the server folder you created at the start, Sam? 😁
Great, as always. ✌️
This is great! Is there support to integrate Bun into a AWS lambda runtime and Hono into an AWS lambda proxy?
This looks great for use with HTMX with built in JSX
I started to think that web dev is getting more broken with time,
First, it was html css Javascript & php
Then react angular express angular react vite mysql
Today react express mongodb express nextjs nestjs bo fo ko do so & nono
One year from now they will be +infinity
We will be done with mentel fog
Htmx
Super Cool video! Subbed!
Can hono be used in non serverless environments? Because if it can't how would you implement socket connections or anything that needs a longer connection
you may want to switch rust/axum it also looks like express but much faster and lightweight than ever, also supports multithreading with tokio
True, but we're in node/js land right now 🥲
Hi Sam,
have you built a production app with bun? if yes how has been your experience?
It’s been awesome, only great things to say about using bun. I’ve been deploying to fly.io.
@@SamMeechWard Wow! will definitely try it. Thanks
Definites on what a production app is - if you mean an app with thousands of live users, then Bun isn't stable for that.
@@mdmathewdc Please share your experience.
We have few public API running with bun, it is just great.
idea about having context argument instead of req, res is actually convenient
With qwik can be good solution for full stack, how about SSR, IRS kinda things like NextJS. Thanks for tutorial, keep it up 🎉
Could you compare Hono and tRPC? It appears they both have similar capabilities. Thanks!
Hey Sam! Great video as always! I am curious how this works with bigger projects where I have JSX templates and layouts just like Next, but without all the hassle, it just renders HTML. I would appreciate if you could make a longer video on that.
It’s not opinionated like next, so you would just have to create your own layout components. You could make it work however you want but you wouldn’t get default caching behaviour or default 404 or error pages.
I don't think 404 pages or error pages are that much difficult to handle. But I can't say the same about caching. Caching seems very hard. If you could make a video on caching different parts of your website i.e mixing database caching, CDN caching and all that good stuff, that would be really good. @@SamMeechWard
Hah, I'm doing the same! With drizzle orm and vitest it's perfect stack for me.
Hey Sam, how can we connect to a database while calling APIs
What about elysia? Can you also review that project?
Are you able to run a successful docker build with Bun?
I've been bashing my head for the past 6 versions
Great video Sam, thanks.
BUT
JS developers are sick to be honest they always run for new things without any need, searching for the perfect library or runtime or framework and they never find one or will.
I am a js developer but the community is just too much, and I am not against developing more libraries that are better, but not hundred of solutions for the same problem and most of them are the same
There’s a Safari bug that prevents Bun web servers from successfully sending binary downloads like images and files to that web browser. 😢
One of the issues i still have with the validator is that your validator has to return strings (if you try a number itll just throw a ts error)
Is Bun.serve() necessary? when already using bun run --hot src/index.ts??
What about database operations? I used it around 10 month ago. Only problem in that time i found is that db operation. I need to use totally raw operation. Express has mongoose ODM but i Don't find similar that
I’ve used Prisma with hono and bun. No problem.
@@elephant_888 can you share the setup docs?
try out drizzle.team
im always wanting to try bun , but i don't know if its stable for production yet or not
How hono vs Elysia?
Have they solved Bun not working with SSH-ed25519? I couldn't use Bun due to my SSH dependencies not working with it.
waiting to watch a vite and hono full fledged tutorial
since i only new about express js, could be more risk to implement this to my project, but i will try my best to use it from my next project
bun update command not update version numbers in package.json in my local, do you know how to fix it?
Please more of hono.js
🙂
This is DOPE
what about security like helmet plugin?
never tried hono but tried elysia i was a pleasant experience
It's kinda mix of express.js and golang. But anyway looks so cool and clean
do you have a video about exposing an ML (AI) model thourgh a JS/TS API?
can you also make a video on elysiajs and bun
can jsx work with htmx this way?
Where can this be deployed?
Is it sending a Server Sent Event stream with the stream.write stuff?
I don’t think Express will miss you 😂
You could’ve used NestJ, but hey it’s your choice.
how to handle concurrency or multithread using Hono ?
why hono, not bun-native elysia?
Have you tried ElysiaJS?
How does it compare to Elysia?