TanStack Start 1.0 رسماً پایدار شد
خلاصهٔ کاملتر
TanStack Start 1.0 بالاخره پایدار شد و تیم رسماً میگه برای production آمادهست. نویسنده (سازندهٔ TanStack) میگه خیلی از شرکتها، حتی تیمهای Fortune 500، از دورهٔ بتا اون رو تو production استفاده میکردن. این نسخه در اصل یه تعهد رسمیه به APIها، یعنی میتونی Start رو یاد بگیری و باهاش بسازی بدون نگرانی از اینکه کل ساختار اپت عوض بشه.
به گفتهٔ نویسنده، Start از یه router شروع شد. اون میخواست TanStack Router کاملاً type-safe باشه: یعنی routeها بدونن چه pathهایی هست، چه پارامترها و search paramهایی لازمه، loader چی برمیگردونه و چه context ای در دسترسه. اون موقع خیلیها فکر میکردن این سطح از type safety شدنی نیست. حدود دسامبر ۲۰۲۳ اولین ابزارهای سمت سرور تو ریپو اومدن و می ۲۰۲۴ پکیج react-router-server به start تغییر اسم داد.
نویسنده میگه وقتی Next.js کاملاً روی React Server Components (یعنی کامپوننتهایی که فقط روی سرور اجرا میشن) و مدل سرورمحور شرط بست، اون یه گزینهٔ دیگه میخواست. Start مدل آشنای SPA رو نگه میداره، یعنی state management، ناوبری سمت کلاینت و کش داده، ولی SSR، streaming و server function هم بهش اضافه میکنه. هر route میتونه روی سرور رندر بشه، فقط دادهش رو اونجا بگیره، یا کلاً سمت کلاینت رندر بشه. middleware هم میتونه بین کلاینت و سرور جابهجا بشه و typeها context رو همراهش میبرن.
یه نمونه از APIهای صریحش createIsomorphicFn هست که بهت اجازه میده برای یه تابع، دو پیادهسازی جدا برای سرور و کلاینت کنار هم بنویسی:
import { createIsomorphicFn } from '@tanstack/react-start'
import { getRequest } from '@tanstack/react-start/server'
const getOrigin = createIsomorphicFn()
.server(() => new URL(getRequest().url).origin)
.client(() => window.location.origin)صدا زدنش همهجا یکیه، ولی Start پیادهسازی محیط دیگه رو از bundle حذف میکنه و صدا زدنش تو مرورگر هیچ درخواستی به سرور نمیفرسته. اگه واقعاً تماس با سرور بخوای، createServerFn هست. در مورد RSC، نویسنده میگه تیم کلی وقت گذاشت تا پشتیبانیش رو بدون وابسته کردن هستهٔ Start به React اضافه کنه، ولی بعد خودشون استفاده از RSC رو تو tanstack.com کنار گذاشتن، چون فهمیدن چی کجا فرستاده میشه خیلی سخت شده بود.
نویسنده معتقده type safety حالا برای ایجنتهای هوش مصنوعی هم به درد میخوره: وقتی ایجنت یه پارامتر route یا ورودی یه server function رو عوض میکنه، typeها نشونش میدن کجاها دیگه با این تغییر جور نیستن. تیم با TanStack Intent هم راهنما رو به شکل skill مستقیم تو پکیجهای npm گذاشته. از طرف دیگه، بهبودهای SSR که Manuel و Flo انجام دادن تو بنچمارکشون حدود ۵.۵ برابر throughput بیشتر داده. برای دیپلوی هم بهجای نگهداری adapterهای جدا سراغ Vite و Nitro رفتن و Rsbuild هم پشتیبانی میشه.
نکات کلیدی:
- TanStack Start 1.0 پایدار شده و تیم رسماً به APIهاش متعهده.
- هر route میتونه سمت سرور رندر بشه، فقط داده رو روی سرور بگیره، یا سمت کلاینت رندر بشه.
- createIsomorphicFn برای کد وابسته به محیط و createServerFn برای تماس واقعی با سرور.
- بهبود SSR تو بنچمارک تیم حدود ۵.۵ برابر throughput بیشتر داده.
- پشتیبانی از RSC اضافه شده، ولی خود tanstack.com استفاده ازش رو کنار گذاشته.
- Netlify اون رو فریمورک پیشفرض AI app builder خودش کرده و Lovable اپهای جدیدش رو با Start میسازه.




