Mastro.{js,ts}
mastrojs.bsky.social
Mastro.{js,ts}
@mastrojs.bsky.social
The simplest web framework and site generator.
Runs on Deno, Node.js, Bun and in your browser as a VSCode extension.

https://mastrojs.github.io 🧑‍🍳

#noBuild #noBloat #noMagic
Pinned
Besides running on Deno, Node.js, and inside a web browser as a VSCode extension, Mastro now also runs on Bun! 🥳

mastrojs.github.io
Mastro: the simplest web framework and site generator
No bloat, no magic, no config. Mastro gets out of the way, so that you can focus on building awesome websites.
mastrojs.github.io
When you start arguing for HTML/CSS, but end up in a buzzword bingo contest instead. Oh well, at least I “won” 🙈
I think it’s more like: 50% of all programs run on the C ABI, the other 50% on JavaScript :P
November 9, 2025 at 12:00 PM
Reposted by Mastro.{js,ts}
websites in 2025
November 8, 2025 at 10:05 PM
New blog post on how to incrementally migrate from Express.js to the standards-based Request/Response-API

mastrojs.github.io/blog/2025-11...
Migrating from Express to the standards-based Request/Response-API | Mastro undefined
mastrojs.github.io
November 6, 2025 at 4:20 PM
Reposted by Mastro.{js,ts}
✨ One line of CSS. Smooth page transitions. No JavaScript.

```
@view-transition {
navigation: auto;
}
```

The 🆕 CSS View Transitions bring native animations to multi-page apps, no SPA setup needed!

Explore now 👇
developer.mozilla.org/en-US/blog/...
A beginner-friendly guide to view transitions in CSS | MDN Blog
Learn how to bring smooth, animated navigation to multi-page apps with view transitions. With just one line of CSS, you can enable seamless transitions between pages.
developer.mozilla.org
November 4, 2025 at 9:00 PM
Reposted by Mastro.{js,ts}
We Completely Missed width/height: stretch: "stretch does the same thing as declaring 100%, but ignores padding. In short, if you’ve ever wanted 100% to actually mean 100% (when using padding), stretch is what you’re looking for." #CSS css-tricks.com/we-completel...
We Completely Missed width/height: stretch | CSS-Tricks
The TL;DR is that stretch does the same thing as declaring 100%, but ignores padding when looking at the available space.
css-tricks.com
November 4, 2025 at 8:02 PM
I wrote down what I struggled with when porting Mastro to Bun: mastrojs.github.io/blog/2025-10...

I’m sure the #Bun folks will tell me I’m doing it all wrong. Suggestions welcome!
What I struggled with when porting Mastro to Bun | Mastro undefined
mastrojs.github.io
November 4, 2025 at 5:26 PM
Besides running on Deno, Node.js, and inside a web browser as a VSCode extension, Mastro now also runs on Bun! 🥳

mastrojs.github.io
Mastro: the simplest web framework and site generator
No bloat, no magic, no config. Mastro gets out of the way, so that you can focus on building awesome websites.
mastrojs.github.io
October 30, 2025 at 1:18 PM
Reposted by Mastro.{js,ts}
In case you missed it, I wrote about the basics CSS Anchor Positioning.

🔗 ishadeed.com/article/anch...
August 29, 2025 at 1:48 PM
I wrote down "what I learned porting Mastro from Deno to Node.js" Hope my learnings help somebody on their next server-side JS/TS project!

mastrojs.github.io/blog/2025-10...
What I learned porting Mastro from Deno to Node.js | Mastro
mastrojs.github.io
October 27, 2025 at 1:33 PM
One month ago I submitted this to Interop. Unfortunately was not selected for this year. But probably also due to the noise that made, at least web devs are now being made aware of this huge Safari bug: top-level await is no longer considered 'baseline' caniuse.com/mdn-javascri...
October 27, 2025 at 7:03 AM
Mastro now runs on Node.js 🎉🍾

Deno makes your life still a bit easier, but I can appreciate that people like Node’s commitment to stability. And it’s catching up: can run TypeScript natively now, has a builtin --watch flag and test runner, etc.

Share if you care! mastrojs.github.io
Mastro: the simplest web framework and site generator
No bloat, no magic, no config. Mastro gets out of the way, so that you can focus on building awesome websites.
mastrojs.github.io
October 23, 2025 at 6:45 PM
Reposted by Mastro.{js,ts}
Thanks @una.im for showing us the future of HTML and CSS in "Back to the future: of web development". We've never been more excited about... not using JavaScript 😅❤️

www.youtube.com/watch?v=BEXe...
October 16, 2025 at 8:10 AM
Mastro (currently Deno and browser only web framework) is coming to Node.js!
Just not sure whether via JSR (and they recommend pnpm), or via old NPM. Thoughts?
October 16, 2025 at 4:44 AM
With all the excitement of view transitions coming to Firefox (which is great!), just be aware that cross-document view transitions for MPAs are “level 2” and thus only in Chrome and Safari so far. But I’m sure it won’t be long, and it’s just a progressive enhancement. No reason to not add it now!
October 15, 2025 at 7:17 PM
Reposted by Mastro.{js,ts}
Journal: Simplify

Reminding myself just how much you can do with CSS these days.

🔗https://adactio.com/journal/22178
October 9, 2025 at 10:21 AM
“They called me just after midnight. Said they’d found another one. A website that used to be fast, lean, full of life, now lying cold on the server room floor.”
I’ve been investigating dead websites for years.

Same symptoms every time - bloated code, missing structure, too many dependencies and not enough care.

It’s not murder. It’s neglect.

And it’s everywhere.

www.jonoalderson.com/misc/the-dea...
The death of a website
The call came in after midnight. Another site down. Same pattern. Same rot. Somebody’s killing the web, and nobody’s talking.
www.jonoalderson.com
October 9, 2025 at 6:39 AM
Reposted by Mastro.{js,ts}
SVGOMG has been updated to use SVGO 4! (thanks Adrien Crivelli!)

This is the URL for SVGOMG. Unfortunately someone maintains a fork with ads, so, err, don't use that 😀

jakearchibald.github.io/svgomg/
SVGOMG - SVGO's Missing GUI for minifying SVGs
Easy & visual compression of SVG images.
jakearchibald.github.io
September 29, 2025 at 8:37 AM
I made a submission to #Interop 2026 – the WebKit bug that results in a race condition with multiple top-level awaits in different modules: github.com/web-platform...

We’ve talked about this one on here @rich-harris.dev and @jensimmons.bsky.social
Let me know if I should add anything else?
ESM Module Loading: Cyclic Module Records / multiple top-level awaits in different modules · Issue #1105 · web-platform-tests/interop
Description While officially supporting ESM modules, even with top-level await, WebKit doesn't actually implement the module loader spec. This leads to a race condition, where one or more modules f...
github.com
September 20, 2025 at 8:16 AM
New chapter is up, showing how you can precompute assets and HTML pages in a unified way. (spoiler: it’s just like static site generation, but for only a subset of routes) #WebDev

mastrojs.github.io/guide/bundli...
Bundling, pregenerating assets and caching | Mastro
mastrojs.github.io
September 17, 2025 at 6:26 PM
Reposted by Mastro.{js,ts}
Why are you shipping 3MB of JavaScript to animate a link?

Modern CSS now handles seamless page transitions - natively.

No routing hacks. No hydration tax. No excuse.
It's time for modern CSS to kill the SPA
Native CSS transitions have quietly killed the strongest argument for client-side routing. Yet people keep building terrible apps instead of performant websites.
www.jonoalderson.com
July 24, 2025 at 9:23 PM
Reposted by Mastro.{js,ts}
Forget SPAs, choose MPAs. We interview @mb21.bsky.social, the creator of @mastrojs.bsky.social, a modern JavaScript meta-framework designed to build multipage apps (MPAs).

By @lorainelawson.bsky.social
Minimalist Mastro Framework Offers Modern Take on MPAs
Forget SPAs, choose MPAs. We interview the creator of Mastro, a modern JavaScript meta-framework designed to build multipage apps (MPAs).
bit.ly
August 24, 2025 at 6:00 PM
Reposted by Mastro.{js,ts}
The Astro-based Starlight framework was already very good. But by moving the docs to Mastro itself, I could declutter things even further.
July 24, 2025 at 7:13 PM
New website up!

mastrojs.github.io
Guide and toolkit to craft websites with care
Build and publish websites right from your browser.
mastrojs.github.io
July 12, 2025 at 1:25 PM