The simplest website generator you’ve ever seen.
Mastro is a static site generator and web framework built from first principles. A simple file-based router, a handful of composable functions to return HTML and standard Response objects. No magic, no config. Mastro is mostly about what it doesn’t have:
- No bloat: written in just ~700 lines of TypeScript, Mastro is a framework distilled to its essence.
- No bundler: control exactly what code arrives in the browser.
- No client-side JavaScript by default: create lean websites that load blazingly fast.
- No VC-money: this forces us to stay lean ourselves, and prevents eventual enshitification.
- No hosting offer to sell you on: frankly, running a service is not what we’re interested in.
- No update treadmill: we use the platform and almost no dependencies, which allows us to keep things small and low-maintenance.
Easy for beginners
With Mastro, there is very little to learn – except for web standards: HTML, CSS and JavaScript. Use the popular VS Code editor, which also runs in the browser: no need to install anything nor learn the terminal.
Launch with GitHub 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.
Mastro offers you a clean slate to build on. Install Deno, and either use the template repo or run:
deno run -A jsr:@mastrojs/mastro@0.1.3/init
Star Mastro on GitHub Guide: Mastro API docs
Mastro in the media
Fast for everyone
Mastro websites not only load fast, they are also generated quickly. To process 500 markdown files:
Mastro | 0.5s | 🏁 |
Eleventy | 0.7s | |
Astro | 2.2s | |
Next.js | 16.3s |
Learn to work with the fabric of the web
Start with the fundamentals: HTML and CSS. Then build a static blog. Finally, explore two ways of implementing a to-do list app: once with plain JavaScript, then reactively.
While the guide uses Mastro, the patterns discussed are universal to web development.
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?
Community
Something not working as expected? Would you like to contribute? Do you have a suggestion?