Episode ini menelusuri asal-usul TanStack dari React Query di 2019 sampai menjadi keluarga library headless. Kalian juga akan memahami filosofi headless, performance, dan framework-agnostic yang menyatukan Query, Table, Router, Virtual, dan Charts.

Sebelum menulis kode, penting memahami dari mana TanStack berasal dan masalah apa yang coba diselesaikannya. Episode 1 membuka cerita: dari kelahiran React Query sebagai library kecil, sampai menjadi keluarga library bernama TanStack yang mencakup Query, Table, Router, Virtual, dan Charts.
TanStack lahir dari frustrasi nyata. Membangun aplikasi data-driven selalu berulang menulis kode yang sama: fetching dengan state loading dan error, caching, tabel kompleks, routing dengan loading state, serta render item dalam jumlah besar. Kelima library itu menjadi satu keluarga karena berbagi filosofi yang sama.
Episode ini akan mengajak kalian memahami evolusi, filosofi, dan masalah yang diselesaikan TanStack, sehingga keputusan memakai TanStack di project kalian menjadi keputusan yang sadar.
Struktur episodenya sederhana: sejarah dan perluasan keluarga library, tiga filosofi utama, lalu pemetaan setiap masalah ke library yang menyelesaikannya. Dengan pola pikir ini, materi teknis di episode 2 sampai 23 akan lebih mudah dicerna karena kalian tahu alasan di balik setiap desain.
TanStack berawal dari React Query, dirilis oleh Tanner Linsley sekitar tahun 2019. Saat itu, data fetching di React masih dilakukan manual: useEffect plus fetch, dengan state loading, error, dan data ditulis sendiri untuk setiap request. React Query merangkum semua itu ke satu hook dengan caching dan deduplication otomatis.
Pada 2021, seiring perluasan ke framework lain, React Query berganti nama menjadi TanStack Query dengan package @tanstack/react-query. Sekaligus nama TanStack resmi dipakai sebagai brand keluarga library.
npm i @tanstack/react-queryPerintah npm i @tanstack/react-query adalah cara menginstall TanStack Query versi sekarang — bukan react-query. Perubahan nama ini menandai komitmen TanStack terhadap sifat framework-agnostic.
Satu per satu library lain bergabung ke keluarga TanStack:
react-table, pustaka pembuat tabel headless dengan API kolom yang fleksibel.Perluasan ini menunjukkan satu pola: setiap library lahir untuk menyelesaikan masalah UI data-driven yang spesifik, lalu disatukan dalam brand TanStack. Keluarga yang terbentuk tetap saling independen, tetapi bekerja mulus saat dipakai bersama.
Tiga nilai menyatukan seluruh keluarga TanStack:
const [data, setData] = useState(null)
const [loading, setLoading] = useState(true)
useEffect(() => {
fetch("/api/todos")
.then((res) => res.json())
.then((json) => {
setData(json)
setLoading(false)
})
}, [])Kode di atas adalah pola useEffect plus fetch yang selama bertahun-tahun diulang di setiap komponen. TanStack Query menggantinya dengan satu hook useQuery yang menangani loading, error, caching, dan refetching sekaligus.
TanStack Query menghilangkan boilerplate fetching dan caching. Query yang sama otomatis di-deduplicate saat dipakai beberapa komponen, di-cache dengan staleTime dan gcTime, serta disinkronkan ulang saat window fokus kembali. Ini langsung menggantikan seluruh kode useEffect manual.
Membangun tabel dengan sorting, filter, dan pagination biasanya berarti bergantung pada library tabel yang membatasi desain. TanStack Table memberi kontrol penuh: kolom didefinisikan sebagai data, dan kalian yang merender tiap sel. Desain apa pun bisa dibangun.
Inilah arti headless dalam praktiknya: library menyediakan state, logika sorting, dan pagination, sementara kalian menentukan markup, warna, dan tata letak. Tidak ada gaya bawaan yang harus dipertarungkan.
TanStack Router menjadikan URL sebagai sumber state yang terstruktur. Routes bisa di-nest, di-load datanya dengan loader, dan seluruh tree route bersifat type-safe. URL yang salah terdeteksi saat build, bukan saat runtime.
TanStack Charts menawarkan chart fleksibel untuk dashboard, sedangkan TanStack Virtual memungkinkan list jutaan baris tetap lancar karena hanya elemen terlihat yang di-render.
Jika data harus divisualisasikan, Charts memberikan chart yang bisa dikustomisasi tanpa harus menulis D3 dari nol. Jika data yang ditampilkan sangat banyak, Virtual memastikan browser tidak kewalahan.
Saat ini TanStack menjadi standar de facto untuk kebutuhan data di banyak aplikasi React. TanStack Query dipakai di hampir semua aplikasi yang memerlukan server state, TanStack Table untuk datagrid enterprise, dan TanStack Router semakin populer sebagai router type-safe.
Posisi TanStack unik karena tidak menjadi monolith. Kalian bisa memakai Query tanpa Table, atau Router tanpa Query. Semua library saling bekerja sama tapi tetap independen — kombinasi inilah yang akan kita bangun dari episode 3 sampai 23.
Tip
Filosofi headless berarti kalian memegang kendali penuh atas tampilan. Jangan bingung kalau di episode 6 tabel kalian terlihat polos tanpa gaya — justru di situ letak kekuatannya.
Episode 1 menutup cerita latar TanStack: dari React Query yang lahir di 2019, perluasan menjadi keluarga library yang mencakup Query, Table, Router, Virtual, dan Charts, hingga filosofi headless, performance, dan framework-agnostic yang menyatukan semuanya.
Inti yang harus dibawa pulang:
@tanstack/*.Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur utama — bagaimana QueryClient dan cache bekerja di TanStack Query, sistem plugin dan kolom di TanStack Table, state management dan loader di TanStack Router, serta cara Virtualizer mengukur viewport dan merender item. Pastikan pemahaman filosofi kalian sudah kuat, karena detail teknis dimulai sekarang!