Mastro: فریمورک وب بدون وابستگی و بدون build
خلاصهٔ کاملتر
Mastro یه فریمورک وب و static site generator (یعنی ابزاری که از قبل صفحههای HTML آماده رو میسازه) هست که سازندههاش میگن برای کسایی ساخته شده که به کاربر و استانداردهای وب اهمیت میدن. کل کدش حدود ۸۰۰ خط TypeScript ـه و هیچ dependency نداره. یعنی اگه یه روز نخواستینش، راحت میشه عوضش کرد یا fork کرد.
ایدهٔ اصلی اینه که به جای لایهلایه abstraction، مستقیم با مرورگر و runtimeهایی مثل Node.js، Deno، Bun یا Workers کار کنین. build step نداره (تا وقتی خودتون یکی اضافه کنین)، پس کدی که مینویسین دقیقاً همونیه که اجرا میشه. سایتها به شکل MPA ساخته میشن، یعنی هر صفحه یه HTML جدا از سرور، و تا خودتون نخواین JavaScript سمت کاربر نمیره.
Mastro هم SSG داره (ساخت صفحهها از قبل، مناسب وبلاگ و سایت تبلیغاتی) و هم SSR (ساخت صفحه موقع هر درخواست) که باهاش میشه یه اپ full-stack ساخت. شعارش اینه که «همهچیز یه route ـه»: HTML، REST API با JSON، فایل CSS و حتی عکسها همه با یه API یکسان سرو میشن. میشه هم کمکم واردش کرد، مثلاً فقط templateهاش رو تو پروژهٔ فعلی استفاده کرد یا یه اپ Express رو route به route منتقل کرد.
تو بنچمارکی که سایت آورده، ساختن ۵۰۰ فایل markdown با Mastro حدود ۰.۵ ثانیه طول میکشه، در حالی که 11ty حدود ۰.۷، Astro حدود ۲.۲ و Next.js حدود ۱۶.۳ ثانیه زمان میبرن. برای تعامل سمت کاربر هم میشه JavaScript خالی نوشت یا کتابخونههایی مثل HTMX، Alpine، Preact یا petite-vue رو بدون build اضافه کرد. برای کد مشترک بین سرور و کلاینت هم Reactive Mastro رو پیشنهاد میدن.
هستهٔ Mastro عمداً کوچیکه و «همهچیز دار» نیست، ولی پکیجهای کوچیکی تو namespace @mastrojs داره، مثل markdown، images برای تغییر اندازه و فشردهسازی عکس، og-image، feed برای RSS و api برای REST API تایپدار. پکیجهای بیرونی مثل Kysely هم بدون build نصب میشن. تیمش میگه پول سرمایهگذار (VC) نگرفته و قصد فروختن پروژه رو نداره.
نکات کلیدی:
- کل کد Mastro حدود ۸۰۰ خط TypeScript ـه و هیچ dependency نداره
- build step نداره و بهطور پیشفرض هیچ JavaScriptی به مرورگر نمیفرسته
- هم SSG داره هم SSR و روی Node.js، Deno، Bun و Workers اجرا میشه
- ساخت ۵۰۰ فایل markdown: Mastro حدود ۰.۵ ثانیه، Astro حدود ۲.۲ و Next.js حدود ۱۶.۳ ثانیه
- افزونههای رسمی مثل markdown، images، feed و api تو namespace @mastrojs منتشر شدن




