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, Bun, and inside a web browser as a VSCode extension, Mastro now also runs on Cloudflare Workers! 🥳

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
What's your favourite headless CMS to back a static site?

After creating a Mastro template for Sveltia (a git-based CMS), I want to create one for an open source database-backed CMS that's easy to get started with.
February 6, 2026 at 12:23 PM
Had a blast on @typescript.fm

We talked about why I started Mastro, the design decisions behind it, and why modern #webdev feels harder than it should.

Thanks a lot for having me, Kamran and Erik!
TypeScript.fm - The Friendly Show for TypeScript Developers | Mastro.js, the Simplest Web Framework and Site Generator | Mauro Bieg | Ep 54B
Mauro Bieg joins the two fools to talk about Mastro, a simple and minimal web framework and site generator. If 11ty and Astro had a baby, it might look like Mastro! With support for routing, HTML t...
typescript.fm
February 5, 2026 at 4:26 PM
Finally added a README to our example of an interactive to-do list with SSR and REST API.

It even avoids the "double data problem" (Or what do people outside the #solidjs community call sending the same data once as HTML and once as JSON?)
mastro/examples/todo-list-server at main · mastrojs/mastro
The simplest web framework and site generator yet – no bloat, no bundler, no client-side JS by default. - mastrojs/mastro
github.com
February 4, 2026 at 9:18 AM
Reposted by Mastro.{js,ts}
Been saying this for a while but the really exciting stuff on the web right now is all about how things we used to need JS for can now be done with pure CSS.

There are a lot of opportunities to cut out client side bloat.
February 4, 2026 at 4:32 AM
How can a complete web framework be ~700 lines of TypeScript? For one, everything is a route in Mastro.
Everything is a route – one interface for servers, static sites, and assets | Mastro Blog
Use the standards-based Request/Response-API not only for writing your server, but also for static site and asset generation.
mastrojs.github.io
January 29, 2026 at 7:46 PM
Why TypeScript succeeded. And why a new web framework like Mastro has a very steep uphill-battle 😅

"progress often comes from making the systems you already depend on more capable instead of trying to start over. [...] Behavioral compatibility often matters more than architectural purity"
January 28, 2026 at 9:46 AM
I’m terrible at coming up with blog post titles. What would you rather read?

- “Inverting the build pipeline: how the Request/­Response-API can do it all”
- “The Request/Response­-API is also great for static site and asset generation”

Other suggestions? Post will go on mastrojs.github.io/blog/
Blog | Mastro
mastrojs.github.io
January 26, 2026 at 1:29 PM
Some website nowadays return markdown if the user agent asks for it? I’ve implemented this as a CF Worker for an otherwise static site, see quoted post.

But now I just had an even better idea: a browser extension that asks for markdown and previews it nicely? No ads, no popups, no client-side JS! 🤩
I doubt there will be a standard solution across CDNs if that's what you mean. They haven't even standardized a redirects file AFAIK.
But you nerd-sniped me into implementing the CF Worker approach 😅 github.com/mastrojs/mas...
What do you think?
mastro/examples/cloudflare-worker-content-negotiation at main · mastrojs/mastro
The simplest web framework and site generator yet – no bloat, no bundler, no client-side JS by default. - mastrojs/mastro
github.com
January 25, 2026 at 3:51 PM
I keep tweaking our landing page. This time I adjusted the "above-the-fold" text. Does it capture what Mastro is and why you would use it? Feedback welcome!

mastrojs.github.io
Mastro: the simplest web framework and site generator
A minimal tool to build content-driven websites. Use web standards and plain JavaScript – work directly with the high-performance engine that is a modern browser.
mastrojs.github.io
January 22, 2026 at 9:54 AM
Besides running on Deno, Node.js, Bun, and inside a web browser as a VSCode extension, Mastro now also runs on Cloudflare Workers! 🥳

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
January 17, 2026 at 7:27 PM
Congrats! Developing and maintaining a complex framework takes lots of funding, and I’m glad Astro found a new home.

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, Mastro will always be easily maintainable.
January 16, 2026 at 6:15 PM
Where did all the web designers go?
January 14, 2026 at 6:04 PM
Everything old is new again: what is HTTP streaming and how to do it with Mastro!
Improve TTFB and UX with HTTP streaming | Mastro Blog
mastrojs.github.io
January 13, 2026 at 7:45 PM
Reposted by Mastro.{js,ts}
A few image format discoveries:

AVIF is Baseline Newly Available as of 2024 (so I use that for icon tiles, which are much smaller than what they were in PNG and even smaller than webp).

And, social sharing services now also support webp for Open Graph images: darekkay.com/blog/open-gr...
Open Graph images: Format compatibility across platforms
A comparison of image format support for Open Graph preview cards across different social media and messaging platforms.
darekkay.com
December 31, 2025 at 10:48 PM
Reposted by Mastro.{js,ts}
Our Web Performance Journey guide is live on PerfPlanet Calendar!
Web Performance Calendar day 30 with @sergeyche.dev, Eric Goldstein and Alex Chernyshev on mastering perf: get business to care, link UX speed to outcomes, set thresholds, understand real users with percentiles, trends, distributions, tie to business metrics
calendar.perfplanet.com/2025/7-steps...
7 Steps of a Web Performance Journey
This year, Sergey Chernyshev, Eric Goldstein, and Alex Chernyshev - members of the NY Web Performance meetup - decided to collaborate on the future of the UX Speed Calculator tool Sergey created a few...
calendar.perfplanet.com
December 30, 2025 at 4:41 PM
Reposted by Mastro.{js,ts}
My article for Performance Calendar is live, looking at tips to help focus when doing performance traces.
December 28, 2025 at 5:18 PM
Is “web components” finally no longer considered a dirty word by anyone outside the React-die-hard circle?

thenewstack.io/web-componen...
Web Components Are the Comeback Nobody Saw Coming
Web components enable UI interoperability, allowing you to build reusable components that work across any framework — or to avoid frameworks altogether.
thenewstack.io
December 27, 2025 at 8:11 AM
Reposted by Mastro.{js,ts}
CSS @​scope has landed in Firefox 146, making it a new baseline feature. Here's how it works:
December 9, 2025 at 3:55 PM
What are you all using for CI/CD these days?
December 8, 2025 at 6:57 PM
Reposted by Mastro.{js,ts}
Web Performance Calendar day 6 with Aaron T. Grogg (@aarontgrogg.com). What if I told you that you need low-to-no JavaScript for interactive UI elements such as accordions, auto-expanding or auto-suggestion inputs, modals, hamburger menus and even more...

calendar.perfplanet.com/2025/nolojs-...
NoLoJS: Reducing the JS Workload with HTML and CSS
With web performance, less is typically more: When possible, send less data, make the browser do less. Here are several examples where you can replace common JS patterns with HTML and CSS.
calendar.perfplanet.com
December 6, 2025 at 3:14 PM
Oh wow, we just passed 100 stars on GitHub 🤩
Thanks everyone, it means a lot! Here's to the next 100 stars!
GitHub - mastrojs/mastro: The simplest web framework and site generator yet – no bloat, no bundler, no client-side JS by default.
The simplest web framework and site generator yet – no bloat, no bundler, no client-side JS by default. - mastrojs/mastro
github.com
December 5, 2025 at 11:16 AM
Very interesting conversation.

For me, the main take-away was really that different people mean very different things when they say "encapsulation".

(1/n)
🎙️ New Episode of Igalia Chats - Web Backstories: Shadow DOM

@meyerweb.com and @bkardell.com chat with @jayhoffmann.bsky.social and @adactio.com about Shadow DOM's backstory and long origins

www.igalia.com/chats/shadow...
December 3, 2025 at 9:00 AM
@guypo.com I just discovered your awesome post on mobile browser cache sizes from 2012. Do you know of any more up-to-date sources or do you think it's still the same? www.guypo.com/mobile-brows...
Mobile Browser Cache Sizes - Round 2
Thoughts and research on Web Performance & Security
www.guypo.com
December 2, 2025 at 12:49 PM