The simplest web framework and site generator you've ever seen.
Static site generation and on-demand rendering of HTML or JSON – it all works exactly the same in Mastro: a file-based router, and a handful of composable functions to return standard Response objects. No magic, no config – just focus on building awesome websites.
- No bloat: written in just ~700 lines of TypeScript, Mastro is a framework distilled to its essence.
- No client-side JavaScript (until you add some): create MPA websites that load blazingly fast.
- No bundler (until you add one): your code arrives in the browser exactly how you wrote it.
- No magic: use normal
<img>
and<a>
tags referencing HTTP-first assets. - No VC-money: this forces us to stay lean and prevents eventual enshitification.
- No hosting offer: selling a service is not what we’re interested in.
- No update treadmill: we use web standards instead of relying on many dependencies.
deno run -A jsr:@mastrojs/mastro@0.3.2/init
Easy for beginners – no installation needed
With Mastro, there is very little to learn – except for the web standards HTML, CSS, and JavaScript. The popular VS Code editor also runs in the browser: put your first website live without installing anything on your computer.
Get started on GitHub.dev Guide: Setup
Powerful for experienced developers
I’ve seen things you people wouldn’t believe. Megabytes of JavaScript on fire in the browser. I watched towers of hard to debug abstractions collapse upon themselves. All those moments will be lost in time, like tears in rain. Time to let them die.
deno run -A jsr:@mastrojs/mastro@0.3.2/init
Start with the template repo, run the above in a terminal, or see installation instructions.
☆ Mastro on GitHub Guide: Mastro API docs
Fast for everyone
Websites built with Mastro load fast
Performance
Accessibility
SEO
and build fast. For 500 markdown files:
Mastro | 0.5s | 🏁 |
Eleventy | 0.7s | |
Astro | 2.2s | |
Next.js | 16.3s |
Learn web development – from fundamentals to advanced techniques
Work with the fabric of the web instead of fighting it. Start with the fundamentals: HTML and CSS. Then build a static blog, and implement a to-do list app: once with plain JavaScript, then reactively. Finally, run a server with a REST API, and learn about caching and different architectures.
Reactive Mastro – interactivity simplified
The final part of Mastro is a tiny (2.8k min.gz) client-side reactive GUI library for MPAs.
Build interactive user interfaces Why Reactive Mastro?
Join the community
It’s still early days. But we’re looking to build a community of all kinds of people passionate about crafting websites, that are helping each other to do so.
Something not working as expected or confusing? Would you like to contribute? Do you have a question?