Mastro 👨‍🍳 Docs

Search results

Blog Community GitHub   Stoat Chat   Discord   Bluesky

Why Mastro?

Most JavaScript frameworks were designed to solve problems that no longer exist.

Instead of starting with a client-side framework like React, and being forced to add more complex tooling with every release, Mastro was designed from the ground up server-first. Its core design principle is that everything is a route.

Mastro is for people who…

care about their users

…and value accessible websites that load fast – even on low-end phones and slow networks.

care about the web

…and understand it as its own medium.

care about simple and pragmatic technology
care about their dependencies

Why Mastro instead of…

Next.js

Next.js creates bloated SPAs: every feature you add increases the amount of JS your users have to download. Running your code on the server, then running it again on the client, also adds a lot of complexity.

Astro

Astro was a big inspiration for Mastro (the name originated from “minimal Astro”). But Astro currently has 246 dependencies weighing 87 MB. Astro is also heavily coupled to its bundler, which makes some simple things surprisingly complex.

11ty

Eleventy has a lot of options around static site generation, but it doesn’t run as a server. It is not TypeScript-first, and currently still has 116 dependencies weighing 14 MB.

Hono

Hono is almost as minimal as Mastro. But it is more backend focused (e.g. it doesn’t come with a file-based router).