DEV Community

Hono.js: A Lightweight Framework with Big Potential ๐Ÿš€

Joodi on December 01, 2024

When it comes to modern web development, simplicity, speed, and adaptability are the new cornerstones. Enter Hono.js, a minimalist yet powerful fra...
Collapse
 
gunslingor profile image
gunslingor • Edited

Looks like 1000 things before, a clone of a pure node based api wrapper. Seems like a pretty basic implementation, doesn't seem to allow enforced hierarchical routing, routes are burried in a func. Not sure why anyone would pick this over express, if nothing more than by comparing documentation and proven use cases. What does it have to offer over the other clones, hard objective numbers... the words in bold in the article are marketing terms... unless you can prove it has better "efficiency, scalability, and modernity" than all others... good luck ๐Ÿคฃ.

Collapse
 
florianrappl profile image
Florian Rappl • Edited

I used hono like a year ago and I think if all you want is to target a Node.js server you are indeed better off with express (or even better something like Fastify).

Hono shines when you want to decouple from the runtime. For instance, if you want to run today on Cloudflare Worker, tomorrow on AWS Lambda and next week on some other platform that may not have a full Node.js runtime then hono is useful. It brings those platforms into a common API. You build once and the adapters guarantee that it can be shipped to those.

That's also why it is being used by many frameworks as the working horse underneath. It is an abstraction over the potential deployment targets.

Collapse
 
joodi profile image
Joodi • Edited

Thanks for sharing your experience! Totally agreeโ€”Honoโ€™s real strength is its flexibility across runtimes and platforms. For Node.js-specific projects, Express or Fastify can definitely be great picks, but Honoโ€™s abstraction makes it shine in edge-native and multi-platform setups. Appreciate your insights! โœ”๏ธ

Collapse
 
gunslingor profile image
gunslingor

Maybe you guys are correct... but I didn't get that from the article. Again, I know nothing of hono outside this article, so when I read this kind of stuff sort of advert-introducing (new word) me to it, I sort of assume I'm the target audience, someone that doesn't already know the tool.

So its cloud centric while express and the like are server centric. That makes sense, next question is how does it work under the hood and in place with the huge range of proprietary cloud systems, what integration looks like, etc... I don't see the need to show route code that looks like many others that aren't great, need to see integration cleanup with docker and K8s as a result of switching for example, as well as cloudfare and bun and such. Performance comparisons would close the deal.

I find myself in a position were I can write any code fast, but getting it deployed affordably, reliably, extendably, and CI/CD-ably is another story, almost a nightmare of proprietary and environment dependent ugly configs that don't play well together. If some effectively wrapped each vendors proprietary nonsense, found the common ground, and created a common system to deploy anything to anywhere, hell yeah I would bite... if that's what this is, I thought it was just an API.

Thread Thread
 
florianrappl profile image
Florian Rappl

True (the article did not go into those details) - that's why I wrote the comment.

Collapse
 
iljaguzovski profile image
Ilja Guลพovski

I used it because it is only framework that worked with ssr jsx out of the box.

Collapse
 
joodi profile image
Joodi

Thatโ€™s awesome to hear! Out of curiosity, what kind of project were you working on where Honoโ€™s SSR and JSX support made a big difference? Would love to know more about your experience!

Collapse
 
joodi profile image
Joodi

Hey, thanks so much for taking the time to share your thoughts! I totally get where youโ€™re coming from, and I really appreciate your feedback. Let me address a couple of the points you raised:

About routing: Hono.js is designed to be super lightweight and minimalist. It might not enforce "hierarchical routing" out of the box, but itโ€™s got simplicity and flexibility that many developers really value.

Comparison with Express: 100% agree that Express is a rock-solid tool with amazing documentation and proven reliability. But Hono.js is built with modern environments like Cloudflare Workers in mind, where speed and a small footprint really make a difference.

On "efficiency and scalability": I get that these words might sound like marketing buzzwords, but they genuinely reflect what Hono.js aims to achieveโ€”especially in edge-native platforms like Deno or Bun. I promise Iโ€™ll include benchmarks and real-world examples in future posts to back this up!

Thanks again for bringing this upโ€”itโ€™s feedback like yours that sparks great discussions and helps improve things! Looking forward to hearing more from you. ๐Ÿ™Œ

Collapse
 
shifi profile image
Shifa Ur Rehman

Let me tell you what friend. Nothing is taking on expressjs anytime soon. Especially with v5 out and in active development and v4 getting infinite support cycle.

Only thing that competes with expressjs's pros are frameworks like NestJs and Fastify. Or just go with GoLang.

Collapse
 
joodi profile image
Joodi • Edited

You're absolutely right Express.js is a powerhouse, especially with v5 and its strong community support. Hono.js isnโ€™t here to replace Express but to offer a lightweight, edge-native solution for platforms like Cloudflare Workers and Deno.

Frameworks like NestJS and Fastify are fantastic too, but Hono.js shines for performance-critical, modern environments. Itโ€™s all about the right tool for the job!

Collapse
 
hengkicode profile image
Hengki Candra

alternatif expres.js fast get resfull api , like this

Collapse
 
joodi profile image
Joodi

Exactly! Hono.js is indeed a lightweight and super-fast framework that works great for building RESTful APIs, especially when performance and speed are critical. I'd love to hear about your experience with Hono.js if you've used it!

Collapse
 
kristiyan_velkov profile image
Kristiyan Velkov

Take your TypeScript skills to new heights with "Mastering TypeScript Core Utility Types":

๐Ÿ“– Buy on Leanpub
๐Ÿ“– Buy on Amazon

Collapse
 
thorx86 profile image
Athaariq Ardhiansyah

Puny sales. No one gonna buy/subscribe your product if your approach is not natural

Collapse
 
joodi profile image
Joodi

Got it, thanks for the feedback! ๐Ÿ™

Collapse
 
arafatweb profile image
Arafat Hossain Ar

Looks promising. Let's see

Collapse
 
joodi profile image
Joodi

Totally! ๐Ÿš€

Collapse
 
biomousavi profile image
Nick Mousavi

One year ago, I developed Scrum Planning Poker using Hono, deploying the backend on Cloudflare Workers and it worked flawlessly!

Collapse
 
joodi profile image
Joodi

Awesome! It's great that you shared your experience with us. ๐Ÿ™Œ

Collapse
 
nicolab profile image
Nicolas Talle

I'm currently working on a project with Hono.js on Bun.js. So far, so good, no unpleasant surprises. I'm happy with Hono :)

The error handling, I prefer the Express 5 way. Not a fan of Exception everywhere for error handling. But no big deal, it's still efficient and practical for catching different types of error.

Collapse
 
joodi profile image
Joodi

That's great to hear you're having a smooth experience with Hono.js on Bun.js! I totally get your preference for the Express 5 error handling styleโ€”it does feel more structured. But it's good to know that Hono's approach is still practical and efficient. Do you think Bun.js adds any significant benefits compared to Node.js?

Collapse
 
yosvaldo profile image
Yeshua Osvaldo

GOOD! Soon, we are going to work with Deno 2 and the framework to run will be HonoJS, is a new thing and the new and MODERN workfload is the way to go ;). Here we work with C# (Razor Pages / MVC for enterprise level / client's poject "), the most workfload to almost all withgs is a combination that has AstroJS in everything because the simple and optimized way from it:

Astro + Alpine (all static and basic things where CSS + Alpine can afford with basic integrations)
Astro + HTMX + Alpine (when simple server is needed for a determined project)
Astro + HTMX + Svelte / Qwik "in Astro Island " (when the bigger need of interactivity by JS is really needed)

Deno 2 + Honor will be a grreat tool to add to our workfload and I can't wait to try it for the next weeks.

Obs.: for all those like us that settled up Astro like "the" framework tool, with Deno 2 you can go with the Astro Projects without need to touch Node ;) I hope Honor focus in Deno 2 because developers that appreciate a modern workfload will go with Hono to work with Deno 2 ... We are searching and analysing all frameworks to choose the best to work with Deno 2, Typescript is our way to go, there's no JavaScript thinking in the company, Hono and Deno seems like the obvious couple, Deno righ now is getting a new way to play Tyepescript, but now is too late, the company is now focusing in modern web development tools. Even with the .NET workload the modern Razor Pages is the standard way for us to begin project, MVC is only used to specific's project, like with Astro when interactivity (massive dynamic) is need the company way is Svelte in Astro Island and now we are training to use Qwik, a steeper learning courve instead React(I always preffered Svelte instead react), I used to work with sveltekit and love it until I met Astro that "if" need, I can use Svelte in Island, only what is need to accomplish the job), but I am impressed with Qwik, but was my first touch with it, I am still reading the specs, next three weeks before ending the month (december) I already will have a deeper undestanding about Qwik in truth.

Cheers up! To modern Develop \o/
Cheers up! To Deno 2 that really deserves in version 2, must continue focus on modern workload
Cheers up! To Hono, to make a perfect couple with Deno (continuing to work hard with DENO 2)

obs.: a possible Cheers up! for Astro Team (I guess maybe if they don't, some others can create soon one likely to benefit the modern technology, where a JS world with frontend frameworks change constantly, we need to get updated in our skills) to rebuild Astro using Deno 2 instead Node lol ....

Collapse
 
joodi profile image
Joodi

Interesting perspective! I'm currently working with Next.js and really appreciate its versatility for SSR and SSG. While I don't have much experience with Deno or Astro, this has definitely piqued my curiosity about exploring modern tools like HonoJS and Qwik. Thanks for sharing your insights! โœจ๐Ÿ™

Collapse
 
cyberpriest profile image
cyberpriest

Hono.js is like fastapi in pythons
Correct?

Collapse
 
joodi profile image
Joodi

Yes, Hono.js is similar to FastAPI in Python; both are lightweight, high-performance frameworks focused on building APIs quickly and efficiently. Hono.js is for JavaScript/TypeScript, while FastAPI is designed for Python.

Collapse
 
fridaycandours profile image
Friday candour

Expressjs clone l

Collapse
 
sourabh_singh1812 profile image
Sourabh Singh

You just used some harsh words for express js and that's why you are seeing all these hate comments in your blog. But just for a reality check none of the haters even have a job, so great work but you could've been somewhat softer to express and gracefully pointed out the advantages of Hono instead of pointing out the flaws in express.

Collapse
 
joodi profile image
Joodi

Thank you for sharing your perspective! My intention was never to criticize Express.js, but rather to highlight the strengths of Hono.js and compare some of their differences. Express remains one of the most powerful and popular tools in the developer community, which is why I mentioned that Hono.js would feel familiar to those experienced with Express. If my tone came across as dismissive of Express, I sincerely apologizeโ€”that was not my intention. I appreciate your feedback and will strive to make my comparisons clearer and more balanced in the future.

Collapse
 
aliasfoxkde profile image
Micheal Kinney

I just learned Vite and React, don't do this to me... Lol.

Collapse
 
joodi profile image
Joodi

Don't worry It's just another tool in the toolbox for different use cases. Keep rocking Vite and React!

Collapse
 
codeposse profile image
CodePosse

Great another garbage piece of pet code.

Collapse
 
boby900 profile image
Boby Tiwari

Looking forward to use it for one of my hobby projects.

Collapse
 
joodi profile image
Joodi

Thatโ€™s awesome! Hope it works out great for your project. ๐Ÿ˜Š

Collapse
 
ngdangtu profile image
ฤฤƒng Tรบ

I'm still clueless on how to implement my favourite frontend framework so... nope, I have no interesting atm.

Collapse
 
joodi profile image
Joodi

I totally get it! Take your time, you'll figure it out step by step. No rush, itโ€™ll click when the timeโ€™s right!

Collapse
 
ravi_sorathiya_16af94958b profile image
Ravi Sorathiya
Collapse
 
neurabot profile image
Neurabot

Congratulations. One more framework in js.