Introducing No.JS: HTML-first reactive framework for web apps

I spent 5 months building a framework and finally shared it. No.JS — an HTML-first reactive framework. What if you could build reactive web apps using just HTML attributes, no JavaScript? It started when I needed a dropdown that filtered a table. Should've taken ten minutes. Instead: six files, forty lines, just to say "when this changes, re-fetch that." So I built something where that's four lines: <div state="{ query: '' }" get="/api/search?q={{ query }}" as="results"> <input model="query" /> <li each="r in results" bind="r.name"></li> </div> No imports, no hooks, no build step. ~11 KB gzipped, zero dependencies. It won't replace React. But for landing pages, dashboards, prototypes, it works. Open source (MIT): https://lnkd.in/dkwsYMKj #opensource #webdev #html #frontend #javascript #js

  • graphical user interface, text, application

Interesting, but why not using Htmx directly?

But what you do when you need some more difficult logic? CSS? If there is no separation it will just end up as a hot mess where it's even hard to tell which part is the logic.

Like
Reply

every single effort to avoid javascript is valid ahaha

George Dragnea

Senior Full Stack Developer | Tech Co-Founder @ Boost Eat!, RezoSoft and 321Start.run | Freelancer | Contractor | Consultant

2mo

Congrats! I’ve been building web apps since 2007, and over the years I’ve seen both the advantages and the downsides of very large frameworks. They can be powerful — but they can also add a lot of unnecessary complexity. I’m a big believer in keeping things as simple as possible. That’s one of the reasons I appreciate what David Heinemeier Hansson (DHH) promotes about building software. Even though I’m a PHP backend developer, I really enjoyed his keynote at a Ruby on Rails event — it’s definitely worth searching for on YouTube. Simplicity scales better than complexity

How does this implementation handle debounce?

Like
Reply

I am sure some junior is going to pitch their boss saying that NoJS uses no JavaScript, until they realize, that in fact this library uses JavaScript. 😂

Like
Reply

So you created a custom DSL simply to avoid JavaScript?

Like
Reply

Good job. Next step would be introducing a good intellisense feature or extension.

Looks a lot like Alpine

Like
Reply
See more comments

To view or add a comment, sign in

Explore content categories