HN user

mb2100

114 karma

http://github.com/mb21

hacking on https://mastrojs.github.io

Posts12
Comments89
View on HN
98% isn't much 15 days ago

This. Cannot believe it too so long for somebody to finally mention progressive enhancement.

Deno Desktop 1 month ago

Backend and UI communication goes through in-process channels, not socket-based IPC

Are they running the frontend and backend in the same process? Sounds a bit dangerous security-wise?

[dead] 2 months ago

What AI is doing to the jobs of programmers feels very familiar to a lot of us frontend developers – because it has happened to us before.

Yeah, while you certainly can write semantic HTML with Tailwind, it absolutely doesn't encourage it. It's funny how Tailwind is conceptually going back to inline styles.

But sure, if you have <Title>, <Header> and <Button> components etc. instead of using HTML elements <h1>, <header>, <button> etc. directly, then why not stuff the CSS into the components as well? It all depends on whether you prefer to use components, HTML elements or a combination as your favourite abstraction.[0]

[0] https://mastrojs.github.io/blog/2025-11-27-why-not-just-use-...

That's because Apache is basically what today's JS crowd would call a "file-based router", and then the app implements the actual routing in that index.php file. Just like early SPA stored the route in a hash. It's funny how history repeats itself.

I've gone back and forth on file-based vs programmatic routing. But each has pros and cons, so in the end I implemented both in Mastro: https://mastrojs.github.io/docs/routing/

A simple web we own 5 months ago

Yeah, for that a git-based CMS like Sveltia is really nice.

And for people that actually want to learn a bit of HTML, CSS and JavaScript, Mastro JS is as simple a static site generator as I could make it.

[dead] 6 months ago

In Unix, everything is a file. In Mastro, everything is an HTTP route. You use the standards-based Request/Response-API not only for writing your server, but also for static site and asset generation. And it's beautiful.

As company size grows, managers want to settle on a "standardized" tech stack that doesn't get in the way when they want to hire and fire people at will.

Nobody was ever fired for choosing React (or IBM). But everyone can get fired when they're working on a React app.

Congrats to Fred and team! Developing and maintaining a complex framework takes lots of funding, and I’m glad Astro found a new home that provides that.

With [Mastro], we have a different approach. The name originally stood for "minimal Astro", and we’re staying true to that. At just ~700 lines of TypeScript, Mastro will always be easily maintainable – even if by just a single person. And it's amazing how much you can do if you're very deliberate in your API's design.

[Mastro]: https://mastrojs.github.io/

I totally agree that the goal should be teaching. But I do wonder which code someone is more likely to actually read and understand: the LLM-generated one in their own codebase, or the one hidden in some npm package they installed to just ship things. I honestly don’t know. Careless devs probably won’t read either as long as it seems to work

I’ve been trying to encourage forking my libraries, or have people just copy them into their codebase and adapt them, e.g. https://github.com/mastrojs/mastro/ (especially the “extension” libs.) But it’s an uphill battle against the culture of convenience over understanding.