Puzzle پلتفرم multi-app برای ساخت محصولات سازمانی است. شما TypeScript، React و منطق business مینویسید؛ Puzzle convention، wiring و build را روی cloud انجام میدهد. Puzzle جایگزین React یا Node نیست.
Puzzle چیست
هر محصول از یک یا چند App مستقل تشکیل میشود. هر App repo خودش، slug خودش، و معمولاً دو component دارد: api (backend) و panel (frontend). Console workspace را مدیریت میکند؛ CLI puzzle روی لپتاپ sync و dev را اجرا میکند.
مسئلهای که حل میکند
تیمها اغلب ماژولها را جدا توسعه میدهند (IAM، فروش، گزارش). ادغام نهایی یا monorepo غولپیکر میشود یا microservice با HTTP بین سرویسها. Puzzle مسیر سوم میدهد: appهای جدا در توسعه، یکپارچه در runtime workspace.
اجزای اصلی
- Console — ساخت workspace و app، dependency، deploy؛ UUID app از اینجا
- CLI (puzzle) — login، init، pull، dev؛ فایل sync، build روی cloud
- App — platform.json + api/src + panel/src؛ generated/ خودکار، commit نشود
generated/
route table، hookهای API، typeها و DI wiring در generated/ ساخته میشوند. فقط api/src، panel/src و platform.json را commit کنید.
اصطلاحات
- Workspace — فضای کاری یک مشتری/سازمان
- App — محصول با id، name، slug (مثلاً shop)
- Component — api یا panel
- Slug — در prefix API: /shop/orders
- platform.json — id، slug، components؛ بدون فیلد dependency
مرز appها
هنگام نوشتن کد، app را مستقل فرض کنید. نیاز به app دیگر → import از قرارداد عمومی: @app/iam (backend)، @workspace/iam (panel). import از سورس داخلی app دیگر ممنوع است.
در runtime، appهای یک workspace weave شده و تماس cross-app معمولاً in-process است. contract public surface باید پایدار بماند.