EP 127

Ngobrolin TanStack - Ngobrolin WEB

Bagikan:

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Ringkasan Episode

Bantu Koreksi

Episode Ngobrolin WEB membahas TanStack, kumpulan library front-end yang dibuat oleh Tanner Linsley. Awalnya dikenal dengan React Table dan React Query, TanStack kini telah berevolusi menjadi ekosistem yang framework-agnostik, mendukung React, Solid, Vue, Svelte, dan Angular. Diskusi mencakup sejarah evolusi dari library React-centric menjadi framework-agnostik, filosofi desain modular yang memungkinkan penggunaan library secara terpisah (ketengan) sesuai kebutuhan, serta pendekatan unik Tanner dalam membangun bisnis open source yang independen tanpa venture capital atau akuisisi. Episode juga menyinggung tentang sustainability model bisnis open source dan perbandingan dengan ekosistem lain seperti Vue (Anthony Fu/Evan You) dan React (Next.js/Remix).

Poin-poin Utama

  • TanStack adalah ekosistem library front-end yang awalnya React-centric (React Table, React Query) namun kini telah menjadi framework-agnostik, mendukung React, Solid, Vue, Svelte, dan Angular
  • Tanner Linsley, pencipta TanStack, sebelumnya dikenal dengan React Static (SSG framework) dan library React seperti React Table dan React Query yang menjadi standar industri
  • TanStack Query (sebelumnya React Query) muncul sebagai alternatif yang lebih sederhana daripada Redux + Apollo untuk manajemen state server, dengan API yang lebih straightforward dan caching yang cerdas
  • TanStack Router menawarkan pendekatan file-based routing mirip Next.js dengan fitur lengkap termasuk DevTools, type-safety, dan berbagai template untuk memulai project
  • Filosofi desain TanStack adalah modular - library dapat digunakan secara terpisah (ketengan) sesuai kebutuhan, berbeda dengan pendekatan 'batteries-included' seperti framework lain
  • TanStack dijalankan sebagai perusahaan swasta independen tanpa venture capital, akuisisi, atau investor luar, dengan model bisnis melalui sponsorship, merchandise, dan kursus
  • Diskusi tentang sustainability open source mencakup pentingnya entitas legal untuk menerima donasi/sponsorship dari perusahaan besar, dengan referensi ke Perkodi sebagai contoh yayasan open source di Indonesia
Transkrip Bantu Koreksi

0:00[Musik]

0:03[Music]

0:07Eh, udah live ya?

0:09Hello, apa kabar?

0:14Apa kabar semuanya?

0:17Selamat malam.

0:19Keberbaik-keberbaik, selamat malam.

0:21Biasanya kalau sedang harga naik, selasa waktunya?

0:25Selasa malam waktunya, om perluling web.

0:31Ya, selamat malam buat teman-teman di YouTube.

0:34Dan kita malam hari ini coba live juga di LinkedIn.

0:38Ada LinkedIn yang nonton.

0:40LinkedIn ada live-nya.

0:41LinkedIn malam-malam, kalau ada yang nonton hebat ya.

0:44Ada yang buka LinkedIn gitu ya.

0:45Ada lah, ada-ada lah.

0:47Masa? Gua kok belum liat sih?

0:49Coba liat dulu lah, liat dulu lah.

0:52Kita bisa multi-stream setara.

0:54Ada sih, ada. Cuma maksudnya baru tau LinkedIn ada live-nya.

0:56Ada.

0:58LinkedIn itu akhir-akhir ini lagi fokus ke video dia.

1:02Banyak promosiin video, banyak encourage, influencer untuk posting atau live juga di platformnya dia.

1:10Kita bisa connect ke TikTok juga nggak sih?

1:15Kayak motivasi gitu.

1:16Nah, ke TikTok.

1:18Ke TikTok kayaknya agak susah ya.

1:22Karena kan vertikal.

1:24Portrait ya, portrait.

1:26Susah kalau begini.

Lihat transkrip lengkap

1:28Udah dua aja, LinkedIn atau Youtube aja.

1:31Coba teman-teman nge-message, coba di-posting nonton dari mana.

1:35Twitter, Twitter.

1:37Kalau Twitter harus itu, harus premium.

1:41Twitter-nya.

1:42Twitter-nya harus premium ya?

1:44Iya.

1:46Nanti kita naikin aja Twitter Mas Riza ke premium.

1:50Oh boleh.

1:52Asyik.

1:54Asyik, oh iya.

1:56Gainnya banyak.

2:00Oh iya, keren.

2:02Logonya keren tuh.

2:04Logonya.

2:06Siapa dulu dong yang desain? Bukan gue.

2:08Ya, kamu engineer doang.

2:12Desainnya pakai prompting.

2:14Itu namanya LM Generated.

2:20Tapi sekarang kayaknya kalau Go Generated bisa lebih baik ya.

2:25Lebih bagus lagi ya.

2:27Kalau dulu Generated ini kan tahun lalu, satu setengah tahun lalu.

2:31Generated ini.

2:33Pas awal-awal baru bisa generasi pakai apa ya?

2:36Kok lupa ya, pakai apa ya?

2:38Masih pakai Bing.

2:41Bing kan paling awal tuh yang bisa bikin image generation yang gratis.

2:48Sedangkan kalau pakai Discord gue lupa, Mid Journey.

2:56Mid Journey kelamakan.

2:58Lama banget bikinnya jadi gini ya.

3:00Dan hasilnya juga bagus.

3:02Tetap lebih bagus.

3:04Zaman itu lebih bagus Bing.

3:06Satu setengah tahun yang lalu.

3:08Oke.

3:10Ya, jadi.

3:12Kalian bikin komunitas di Twitter.

3:14Banyak ya yang main Twitter ya?

3:16Bisa ya.

3:18Baru tahu Twitter komunitasnya.

3:20Karena udah nggak Twitteran, nggak tahu.

3:24Keren.

3:26Itu keren lagi tuh Eka.

3:28Lumayan menarik.

3:30Kalau memang ramai di Twitter, bisa kita nanti bikin Twitter community ya.

3:36Boleh, boleh.

3:38Boleh dicoba Mas Fidi.

3:40Terima kasih.

3:42Jadi malam hari ini kita akan bahas, kita akan bedah.

3:45Sebenernya.

3:47Kalau bilang bedah framework, agak ini ya.

3:49Agak misleading ya.

3:51Agak kurang tepat karena.

3:53Ini agak meluas.

3:55Jadi supersetnya ya.

3:57Supersetnya.

3:59Jadi kalau di dunia front-end itu.

4:01Ada universe-universe nya ternyata ya.

4:05Kayak Marvel ya.

4:07Iya.

4:09Kayak Marvel kan bisa ada dunia sendiri.

4:11Iya.

4:13Awalnya kan, awalnya itu universe nya si apa?

4:17Yvan Yu. Yvan Yu itu ada universe gak sih?

4:19Ada kan. Sekarang jadi void zero itu kan ya.

4:21Iya.

4:23Ecosistem.

4:25Akhir-akhir ini dia bikin.

4:27Akhir-akhir ini ya.

4:29Sebelumnya kan dia berkutat di Vue.

4:31Masih-masih hilang.

4:33Hilang?

4:35Nggak. Masih di sini.

4:37Berkutat di Vue.

4:39Terus abis itu dia bikin VT kan.

4:41Dan VTES.

4:43Eh VTES sih bukan dia yang bikin ya.

4:45Pokoknya ekosistemnya lah ya.

4:47Nggak. Komunitas.

4:49Terus kalau yang terkenal banget kan.

4:51Kalau di Ecosystem Vue ada mas Antoni Fu.

4:55Jadi ya ini universe-universe.

4:57Istilah pecandaan kita aja.

4:59Karena saking banyaknya.

5:01Kayaknya bolak-balik kita mau dia lagi.

5:03Di berbagai library pendukung.

5:05Universe.

5:07Universe.

5:09Kita coba aja sih kalau si Mas Anfu ini.

5:11Banyak.

5:15Karena gue nggak pake Vue.

5:17Ya nggak terlalu banyak yang dipake.

5:19Yang gue pake slide dev.

5:21Terus yang buat icon.

5:23Oh VTES dia yang bikin.

5:25Icones.

5:27Itu yang buat kayak icon browser.

5:29Icon.

5:31Icones lah. Icones. Nggak tahu gimana bacanya.

5:33Coba kita lihat ya.

5:37Website pribadinya.

5:39Oh kecil banget.

5:41Creator of VTES ternyata dia creator of VTES.

5:43Kita baru tahu dia.

5:45Kirain si Evan Yu yang bikin.

5:47Tapi kita bukan.

5:49Uno itu punya dia yang bikin.

5:51Uno CSS juga dia yang bikin.

5:53Tuh kan dia tuh kayak punya.

5:55Dia kayak punya alam semesta sendiri gitu kan.

5:57Jadinya.

5:59Terus juga.

6:01Yang terkait sama Ecosystemnya Vue.

6:03Core teamnya.

6:05CSS ini yang apa namanya.

6:07Meta frameworknya Vue ya.

6:11Meta frameworknya Vue juga.

6:13Dia ikut kontribusi.

6:15Terus ada Siki.

6:17Siki ini.

6:19Keren juga nih. Saya pake ini.

6:21Markdown highlighter.

6:23Gue juga pake.

6:25Untuk di kayak.

6:27Untuk di block.

6:29Block.

6:31Block engine gitu.

6:33Atau dimanapun sebenernya.

6:35Iya.

6:37Untuk dimanapun.

6:39Banyak ini. Lengkap.

6:41Bahasanya lengkap.

6:43Jadi menarik.

6:49Bahasa yang disupport.

6:51Terus ada lagi.

6:53Yang baru-baru.

6:55Yang ini kan. Un.js.

6:57Ada yang itu nggak un.js.

7:01Yang ini juga kan.

7:03Pernah ya.

7:05Kita nggak bahas.

7:07Nggak. Maksudnya episode ini kita nggak bahas.

7:09Mereka ini cuma intro aja.

7:11Intro.

7:13Ini kan banyak ya.

7:15Un.js.

7:17Nanti.

7:19Ada 60 giga loh.

7:21Banyak sekali.

7:25Dan universe yang mau kita bahas adalah.

7:27Ini.

7:29Malam hari ini.

7:31Itu memang sengaja ya logonya.

7:33Untuk.

7:35Untuk tanning gitu ya.

7:37Iya ya.

7:39Ini AI Generated deh.

7:41Kan tanning.

7:43Tanning buat ini hitam itu.

7:45Berjemur di pantai.

7:47Berjemur ya.

7:49Nah ternyata.

7:51Si 10 stack ini.

7:53Ini ekuivalennya kalau tadi.

7:55Punyanya Anhu kan di view.

7:57Nah.

7:59Terus 10 stack kan.

8:01Emang gambarnya.

8:03Kirain buat tanning.

8:05Ya mungkin apa.

8:07Multi interpretasi.

8:09Karena yang bikin namanya Tanner.

8:11Oh namanya Tanner.

8:13Sama kayak Anfu ya.

8:15Tapi Anfu.

8:17Nggak begitu.

8:19Apa namanya nggak begitu.

8:21Dia kan menyingkat namanya juga kan.

8:23Anthony.

8:25Apa namanya Anthony Fu.

8:27Oh iya.

8:29Ini yang kayaknya stacknya.

8:31Stacknya Tanner.

8:33Ini ya. Tanner Lindsey.

8:35Tanner Lindsey.

8:37Yang bikin.

8:39Tapi nggak dia sendiri kan.

8:41Maksudnya dia yang inisiat ya.

8:43Nggak dia.

8:45Dia yang inisiat.

8:47Dan fun factnya ini.

8:49Gue tahu nama ini.

8:51Udah saya dari dulu banget.

8:53Saya bekerja di web dev yang proper.

8:55Yang.

8:57Ya yang pakai JS Framework.

8:59Itu dulu pakai.

9:01Framework SSG React.

9:03Bikinannya dia.

9:05Namanya React Static.

9:07Sekitar tahun 2017 tuh.

9:09Dulu tuh kayak head to headnya sama Gatsby.

9:11Dulu kan kalau SSR kayak.

9:13Oh iya iya iya.

9:15Nah cuma kalau Gatsby itu kan.

9:17Dulu mainly SSG.

9:19Tapi ribet banget kan.

9:21Terus kayak apa sih.

9:23Conventionnya ribet.

9:25Nah kalau React Static.

9:27Bikinannya si Tanner dulu itu.

9:29Kayak ya simple banget straight forward.

9:31Ambil data dari ya source apapun.

9:33Ya udah langsung di render.

9:35Jadi maksudnya sejarahnya.

9:37Jadi dulu dia kerja normal gitu.

9:39Maksudnya dulu dia developer.

9:41Kerja di entah apalah.

9:43Ya stanger lah.

9:45Kayak creator apa.

9:47Kayak toko open source lainnya.

9:49Cuman kayaknya ya eventually setelah.

9:51Makin banyak bikinannya dia.

9:53Library nya dia yang dirilis.

9:55Akhirnya itu dia kayak.

9:57Bikin company sendiri.

9:5910 stack itu.

10:01Ya mungkin kalau sekarang sih.

10:03Punya tim ya.

10:05Cuma dulu awalnya.

10:07Ya dia kayak developer individu.

10:09Bikin macem-macem apa.

10:11Bikin SSG framework.

10:13Bikin library yang kayak React Table.

10:15Dulu tuh namanya React Table.

10:17Itu itu salah satu yang terkenal banget juga.

10:19Maksudnya kalau.

10:21Kalau pernah bikin rich table.

10:23Yang pakai sort. Yang computer. Yang gitu gitu.

10:25Akhirnya jadi ini ya.

10:27Pasti pernah pakai punya dia.

10:29Nah terus.

10:31Makin lama makin berkembang.

10:33Dia quit his job.

10:35Dia berhenti kerja jadi developer.

10:37Dia seriusin full time ini.

10:39Terus kayak jadi yang tadinya semua react centric.

10:41Sekarang mulai bergeser.

10:43Ke framework agnostik.

10:45Jadi kayak ada integrasi nya ya.

10:47Macem-macem sih ada yang.

10:49Masih fokus ke React.

10:51Ada yang lebih agnostik.

10:53Tergantung library nya kan.

10:55Nggak semua langsung bisa dibikin.

10:57Full framework agnostik.

10:59Oke.

11:03Banyak banget itu di kiri kan.

11:05Iya.

11:07Jadi ini awalnya dari React Table.

11:09Terus 10 stack query juga.

11:11Awalnya dari React query kan ya.

11:13Iya banyak-banyak itu kayak

11:15unrelated gitu.

11:17Dulu dia React.

11:19Dulu sih React query kayaknya sampai agak-agak

11:21ini juga masih center ya.

11:23Masih ada kan React query?

11:25Nggak ya?

11:27Ganti nama.

11:29Tapi ini ya library nya

11:31masih ada nggak?

11:33Masih-masih.

11:35Oh ya?

11:37Masih.

11:39Masih ada.

11:4110 stack query.

11:43Masih.

11:45Oh ya masih ada.

11:47Cuma.

11:49Ini nih.

11:53Kalau sampai versi yang 3.

11:55Dia masih support sampai versi yang 3.

11:57React query.

11:59Tetapi untuk versi yang 4.

12:01Nanti sudah berubah jadi.

12:0310 stack query.

12:0510 stack React query.

12:07Jadi dia roba ini nya.

12:09Nama library nya.

12:11Organisasi nya.

12:13Oh cuma?

12:15Iya organisasi nya baru.

12:17Dia satuin semua ke

12:1910 stack.

12:21Iya.

12:23React query ini kan juga

12:25salah satu yang oke ya.

12:27Iya.

12:29Masih pakai sampai sekarang.

12:31Tapi gue nggak tahu kalau itu

12:33ini.

12:35Dari 10 stack.

12:37Iya.

12:39Ya karena dia belum branding.

12:41Tidak.

12:43Belum branding.

12:45Namanya straightforward banget ya.

12:47React static.

12:49Jadi kalau bikin static stack generator ya React static.

12:51Bikin library buatan ya

12:53React table.

12:55Buat query, React query.

12:57Trus sekarang dia udah

12:59printing.

13:01Kayaknya nggak boleh pake kata react gitu lagi kali.

13:03Mungkin dia kena copyright.

13:05Nggak lah.

13:07Dia mau jadiin satu semuanya.

13:09Mau jadiin satu.

13:11Biar jadiin satu.

13:13Biar jadiin satu.

13:15Biar jadiin satu.

13:17Biar jadiin satu.

13:19Atau dia lebih utama

13:21karena pengen fremo agnostik.

13:23Kalau dia pake kata react query.

13:25Jadi nggak bisa.

13:27Jadi nggak bisa yang lain.

13:29Nah itu kan dari tagline nya

13:31juga udah kelihatan kan.

13:33Prioritas itu scroll ke atas deh.

13:35Nah for TSJS,

13:39React, Solid, View, Swelt, Angular.

13:41Jadi kayak dibela-belain.

13:43Semuanya dimasukin ke caption.

13:45Jadi kayaknya rebranding aja.

13:47Nggak cuma

13:49React doang.

13:51Nah ini, React query ini

13:53salah satu yang

13:55generasi setelah

13:57Redux ya.

13:59Redux kan sempet

14:01populer banget gitu.

14:03Jadi kayak de facto kan.

14:05Tapi setelah itu kan mulai Google.

14:07Karena setelah itu harus dipake ke pisah.

14:09Pisah-pisah itunya kan.

14:11Kayak reducernya itu.

14:13Mau fetching aja susah banget.

14:15Nah si React query ini kayaknya lebih

14:17maksudnya keuntungan-keuntungannya kayak caching.

14:19Kayak yang compare sama request sebelumnya

14:21tetap ada.

14:23Tapi kayak API nya, syntax nya.

14:25Lebih straight forward kan.

14:27Karena waktu

14:29Redux itu diciptakan,

14:31React nya

14:33masih versi-versi

14:35belum sedinam

14:37saat React query

14:39diciptakan.

14:41Bukan juga secara

14:43architecture lah ya.

14:45Jadi waktu React query

14:47sudah muncul,

14:49secara keilmuan lah.

14:51Secara kematangan frame

14:53atau library-nya si React itu

14:55sudah lebih maju. Sehingga dia

14:57bisa lebih mudah implementasinya.

14:59Lebih simpel.

15:01Lebih simpel. Saat jamannya Redux.

15:03Redux mau berubah

15:05atau mau rewrite semua

15:07juga nggak bisa. Karena sudah terlampau banyak

15:09yang gunakan.

15:11Kalau berubah caranya sudah susah.

15:13Makanya...

15:15Nanti banyak yang ngamuk.

15:17Semua library atau punya

15:19popular yang udah dipake banyak orang,

15:21itu kayaknya backwards compatibility-nya

15:23itu harus...

15:25ada satu dilema.

15:27Kalau dibangun sama jamannya

15:29React 3,

15:314, itu kan ya sudah

15:33nggak bisa diapapain lagi.

15:35Memang begitulah architecture-nya.

15:37Sama ini kan

15:41waktu itu, seingat saya itu

15:43abis Redux,

15:45terus muncul kan GraphQL

15:47bersama Apollo

15:49yang buat

15:51patching data sama state

15:53management. Terus abis itu

15:55tiba-tiba muncul

15:57React Query yang katanya lebih simpel.

15:59Jadi nggak perlu ada Redux,

16:01nggak perlu ada Apollo.

16:03Bisa jadi satu aja.

16:05Terus buat

16:07patching dan lain-lain.

16:09Moving semua ya dari situ.

16:11Redux pindah semua ke Redux Query.

16:13Menarik, menarik, menarik.

16:17Terus abis itu

16:19mungkin dia mulai dari dua itu

16:21Table, ini kayak

16:23standar lah ya.

16:25React Table,

16:27Query, terus abis itu lebih

16:29spesifik kan ke Router.

16:31Kalau mau bikin yang tadinya ClientShot

16:33rendering, mau ada

16:35routing-nya, pilihannya

16:37kalau dulu kan de facto-nya kan

16:39React Router ya. Yang kemudian

16:41jadi Remix, abis itu balik

16:43lagi jadi React Router lagi kan.

16:45Ternyata dia juga bikin ya.

16:49Iya.

16:51Itu udah lama, cuma

16:53kayak rebranding-nya

16:55baru sekarang.

16:57Kenapa, Ivan?

16:59Caranya gimana sih

17:01React Router? Keren.

17:03Bisa digituin.

17:05Ada DevTools-nya ya.

17:07Ini niat banget ya bikin

17:09library langsung dibikin supaya

17:11useful DevX-nya bagus.

17:13Itu niat loh.

17:15Desainnya juga udah biasa ya.

17:17Itu dari dulu banget

17:19jadi kayak apa, selalu

17:21diiterate-iterate kayaknya dipercaya

17:23lagi.

17:25Cara apa, gimana tadi

17:29pertanyaannya? Router, cara pake Router-nya.

17:31Iya, cara pake gimana nih?

17:33Ini fitur-fiturnya ya.

17:35Sama, mirip lah.

17:37Pilihin Router.

17:39File-based ya, file-based

17:41route generation.

17:43Kayak Next.js.

17:45Next.js jaman pages.

17:47Iya, sebelum

17:49sampai sekarang

17:51juga selalu masih file-based ya.

17:53Oh, jadi kalau misalkan kita mau mulai

18:01pake, kita

18:03pake React seperti biasa dulu

18:05pake fit atau pake apa,

18:07habis itu kita install kayak gini aja ya, langsung ya.

18:09Iya, ini kan soalnya terpusak.

18:13Apa ketengan, Router-nya doang.

18:15Ya, ketengan-ketengan.

18:17Wah, menarik nih yang ketengan-ketengan gini

18:21jadi gak berat ya.

18:23Kayaknya lebih bagus ketengan gini daripada

18:25jamanya meteor gitu, kayak semuanya

18:27everything sudah ada.

18:29Iya.

18:31Tergantung butuh apa.

18:33Tergantung orangnya juga.

18:35Kalau orangnya overthinking ya, mungkin

18:37yang ketengan gini bingung ya, oh,

18:39pilih yang mana nih ya, React Router apa?

18:41Iya.

18:43Atau ngak bisa compact gitu, misalnya

18:45empat orang, semua punya cara mikir

18:47sendiri-sendiri, mau pake

18:49state management, berumpak ribut

18:51dulu, seharian.

18:53Alhasil,

18:55udah pake Apollo Client,

18:57udah pake Apollo state-nya,

18:59terus ditambahin Redux, tuh.

19:01Iya.

19:03Sering ditambahin apa?

19:05Jadi, nge-fetch-nya

19:07dari GraphQL,

19:09pake Apollo Client,

19:11disimpan...

19:13Ya, abis itu

19:15disimpan di Redux.

19:17Semua-semua disimpan di Redux ya.

19:23Saya bikin begitu.

19:25Oh, tapi bisa

19:29tidak file-based juga berarti ini?

19:31Ini ada kayak

19:33fiturnya, kayak

19:35flagging-nya kayaknya.

19:37Ya, itu template

19:39starter-nya aja.

19:41Kan, itu tuh

19:43penyatang itu create TS

19:45router. Bisa

19:47pake template custom.

19:49Oh,

19:51oke. Template-nya adalah file

19:53router ya. Berarti ada template-template lainnya

19:55berarti ya.

19:57Kalau kita

19:59nggak mau kakai

20:01create TS router, kita harus

20:03jalanin ini ya, harus install ini ya.

20:05Kalau manual,

20:07ya itu.

20:09Terus konfigurasi

20:11pt-nya.

20:13Oke, terus baru

20:15kita bikin ini ya,

20:17folder routes, terus ada root

20:19SS. Ini

20:21link. Oh, dia pake link ini

20:23juga ya.

20:25Link yang dibungkus.

20:27Tapi, link-nya dia punya.

20:29Iya, dibungkus.

20:31Iya, dia punya bumpunan link.

20:33Iya, sama aja kayak

20:35NSCS, coba kan.

20:37NSCS.

20:39Create

20:41TS, apakah

20:43masih digunakan?

20:45Masih di-maintain kan ya.

20:47C-R-A.

20:49Coba lihat ya. Udah, cuma udah.

20:51Aku nggak bisa pake versi React yang baru.

20:53Oh, ya.

20:55Sudah tidak direkomendasikan

20:57di dokumentasi React-nya.

20:59Iya, nggak didokumentasiin.

21:01Lama nggak bisa pake versi React yang

21:03paling baru.

21:05Oh, udah berhenti berarti?

21:07Sudah berhenti beroperasi.

21:09Ya, di-maintain juga versi.

21:11Nggak, nggak berhenti. Cuma ya, apa?

21:13Dikunci di versi React-nya.

21:15Apa ya?

21:17Yang terakhir lah.

21:19Sudah. Deprecated.

21:21Oh, iya.

21:23Sebaiknya jangan digunakan lagi.

21:25Sebaiknya jangan digunakan lagi.

21:27Maksudnya, if you are following a tutorial.

21:31Paragraph kedua.

21:33Misalnya ngikutin tutorial.

21:35Ya udah, ngikutin aja dulu.

21:37Maksudnya nggak bahaya, nggak gimana.

21:39Cuma kalau misalnya

21:41mau bikin baru, nggak perlu.

21:43Udah nggak relevan lagi.

21:45Kalau mau bikin

21:47yang client-side only,

21:49yang hanya client-side rendering,

21:51bisa pake VT. VT Starter.

21:53Ya.

21:55Jadi gantinya itu.

21:57Kalau mau yang full stack ya,

21:59pake antara Next.js,

22:01atau Remix, atau 10 stack tadi ya.

22:03Salah satunya. 10 stack Starter.

22:05Nah, yang baru itu

22:07ada itu tuh

22:09Create TS Router App lagi ngetrend.

22:11Yang ini ya?

22:13Create TS Router App.

22:15Punyanya 10 stack tadi.

22:17Oh, punya dia juga?

22:19Oh.

22:21Ini adalah?

22:25Equivalent to

22:27Create Rec App.

22:29Jadi ini penggantinya ya?

22:31Gak harus buat 10 stack router ya.

22:33Bentar, di private chat.

22:35Ini nih.

22:37Coba buka di private chat.

22:39Ini beda.

22:43Oh, DCLI-nya.

22:45Eh, mana kali?

22:47Ini ya.

22:49Salah satunya.

22:51Nah.

22:53Oh.

22:55Bisa

22:57buat

22:59app macam-macam.

23:01Oh, jadi dia bikin

23:03kayak Create Rec App, tapi

23:05dari 10 stack. Cuman

23:07udah termasuk fitur

23:09router-nya ya.

23:11Ya, kalau mau

23:13pakai,

23:15kalau mau bikin single page app.

23:17Cara pakenya gimana?

23:21Oh, yang tadi ya?

23:23Yang tadi, NPX

23:27label-label.

23:29Nah, itu tolong.

23:31Coba aja, Mas.

23:33Pake itu, apa?

23:35Tools yang itu, bisa kan?

23:37Pake tools, apa namanya?

23:39Yang buat LiveJS

23:41itu loh.

23:43Langsung aja.

23:45Eh, namanya My App.

23:47Ya, udahlah. Yes.

23:49Oh, RUNJS.

23:51RUNJS.

23:53Gimana caranya?

23:55RUNJS.

23:57Pernah kita bahas sekali ya?

23:59RUNJS.

24:01R-U-N-J-S.

24:03Kayak JavaScript Playground gitu.

24:05Emang bisa NPM?

24:07Bisa?

24:09Bukan JavaScript doang.

24:11JavaScript Client.

24:13Coba scroll, kalau nggak salah sih bisa.

24:15Kalau nggak salah ya.

24:17Apa?

24:19Salah kali.

24:21Itu install NPM package tuh.

24:23Itu tunjuk lah seterus-terusannya.

24:25Iya, tapi installnya ini nggak

24:27NPM install blablabla.

24:29Pake itu, apa namanya?

24:31Pake tools-nya. Oh iya, bisa ya?

24:33Tapi bisa jadi server.

24:37Ini Lodas loh, dicontohinnya.

24:39Nggak tahu juga sih.

24:41Belum pernah coba sedalam itu.

24:43Ntar gue coba.

24:45Ada AI-nya juga.

24:47Oh.

24:51Nggak sebentar ya.

24:53Seperti biasa.

24:55Ini apa aja ya?

24:57Nah sambil install, lihat ini deh.

24:59Menarik sih, balik ke home-nya.

25:01Coba.

25:03Balik ke home, scroll ke bawah.

25:07Bawah lagi.

25:11Seriusan ya.

25:13Banyak. Bawah lagi.

25:15Bawah lagi.

25:17Bawah lagi.

25:21Terus.

25:23Terus.

25:25Nah, nah.

25:27Terus.

25:29Sponsor paling besar salah satunya, Boon.

25:31Lucu.

25:33Oh iya.

25:35Boon, sanity.

25:39Nah, bawah lagi.

25:43Oh.

25:45Oh, Boon punya duit sekarang ya.

25:51Nah, bawah lagi.

25:53Iya ya, dari mana ya?

25:55Tapi ini Sponsor Project.

25:57Mungkin ada Sponsor Project.

25:59Ini juga Sponsor Project.

26:01Nah, kebawah lagi yang tadi.

26:03Masih kebawah lagi, Mas.

26:09Kebawah lagi.

26:11Bawah lagi.

26:13Mas bisa, scroll, delay ya.

26:17Kebawah lagi.

26:19Terus.

26:21Nah, bawah lagi.

26:23Bawah lagi.

26:25Bawahnya button yang hijau itu.

26:27Bawahnya lagi, itu lucu deh.

26:29And add on, ya.

26:31Baca itu.

26:33And add on an open source project.

26:35Kayak dia nyengir gitu.

26:37Apa sih nih? Kayak tahun 99 aja.

26:39Terus.

26:41Dia nggak mau ada iklan gitu ya.

26:43Dia kayak.

26:45Dia di Intense Tech tuh kayak misi

26:47mulianya beneran sesuai idealismunya

26:49dia gitu lah. 100%

26:51privately owned, tanpa paid

26:53product, tanpa venture capital,

26:55tanpa

26:57akwisisi, ya, liatnya.

26:59Nggak tahu terkabul atau nggak. Terus.

27:01Blablabla. Terus click itu, check out

27:03our ethos.

27:05How we plan, gimana dia

27:07mencanain biar bisa sustainable.

27:09Nah, ini jadi kayak

27:11dia punya misi mulia untuk

27:13open web, open standard.

27:15Makanya dia juga pindah keser dari

27:17React ke, apa,

27:19framework atau library

27:21agnostik.

27:23Agnostik, ya.

27:25Core values-nya tuh yang di, apa,

27:27independently owned, blablabla.

27:29Tanpa investor luar, blablabla.

27:31Open web, open standard.

27:33And freedom to compose and

27:35deploy anything you want, anywhere

27:37you please.

27:39Ya, ini mulia banget sih. Cuma nggak

27:41tahu. Maksudnya di depannya ya, semoga bisa

27:43aware.

27:45Mari kita lihat. Apakah

27:47dia akan menjual cloud hosting?

27:49Tapi dia jual

27:51merch, tuh. Merch.

27:53Dia jual merch, dia jual course,

27:55maksudnya kursus, ya. Maksudnya, apa,

27:57sponsorship. Dia jual course, ya.

27:59But they take free sponsor. Cuma

28:01maksudnya nggak

28:03kayak yang Next.js dibawah

28:05Carcel, gitu. Kalau itu kan emang disetir.

28:07Apa, kalau ini.

28:09Keren juga, nih.

28:11Kualan tetap, terima sponsor tetap, tapi

28:13kayak dia

28:15fokus idealismunya dia.

28:17Keren juga, nih.

28:19T-shirt-nya.

28:21Nah, ini menarik.

28:25Ya, ada 10 stack-nya sih.

28:27Tapi nggak kelihatan apa ya.

28:29Ya, art aja udah.

28:31Tapi kan branding-nya dia.

28:33Cuma lucu aja desainnya menarik.

28:35Iya, desainnya menarik.

28:37Nah, itu no pressure,

28:39bla-bla-bla, no corporate influence.

28:41Oh, berarti

28:43ini agak sedikit bertolak-belakang

28:45dengan Void Zero, ya.

28:47Void Zero itu

28:49memang cepat. Void Zero kan

28:51difunding.

28:53Ya, tapi maksudnya kenapa bertolak-

28:55belakang, ya. Bisa kan

28:57kalau soal funding dan non-funding, oke

28:59lah. Tetapi secara visi,

29:01apakah Void Zero

29:03benar-benar disetir?

29:05Oh, nggak tahu. Kalau disetirnya nggak tahu. Yang jelas kan

29:07visi funded kan. Maksud

29:09yang saya sebutkan itu ya,

29:11perbedaannya bertolak-belakang ya, dia nggak mau

29:13atau belum mau.

29:15Mungkin belum ada tawaran yang gede aja

29:17kalau ada tawaran yang gede.

29:19Pasti ada sih. Sebenernya pasti ada kalau udah

29:21seukuran ini. Cuma ya dia,

29:23idealismunya dia. Itu kan sebegini,

29:25dia bikin, itu bikin

29:27perusahaan

29:29swasta kan tadi bilang private,

29:31dia bikin kan untuk nyalurin cara

29:33mikirnya dia. Nah, kalau udah gitu kan nggak ada

29:35benar-benar salah.

29:37By the way, kalau misalnya

29:39teman-teman kayak kita

29:41atau teman-teman yang penonton di sini

29:43mau kayak bikin

29:45seperti ini juga,

29:47maksudnya bikin

29:49open source project yang bisa

29:51sustainable.

29:53Terus kemudian, apakah

29:55kalau secara hukum

29:57kita perlu set up ini nggak sih?

29:59Set up non-profit organization,

30:01yayasan gitu nggak sih?

30:03Karena terima

30:05donasi kan?

30:07Nah, kan

30:09donasi juga kayak

30:11apa itu yang dipakai astral, dipakai banyak

30:13kan ada

30:15tergantung-tergantung

30:17kalau misalnya GitHub sponsor gitu kan.

30:19Kan ada TNC-nya sendiri,

30:21itu individu nggak apa-apa.

30:23Tapi kalau yang aduh lupa namanya

30:25open-open apa itu yang dipakai astro

30:27yang dulu kita pernah bahas, terus dipakai

30:29macem-macem library lain, yang kayak

30:31ada poolingnya, orang bisa donasi,

30:33terus kayak dipakai

30:35buat maintain

30:37open collective.

30:39Nah, itu

30:41atas nama individu

30:43bisa atau nggak kan, pasti dia punya

30:45legalitas sendiri.

30:47Iya, maksudnya kan kalau secara di Indonesia nih

30:49anggap aja boom

30:51dari luar negeri atau

30:53anggap aja

30:55angular deh, angular

30:57atau Google gitu mau

30:59ngesponsorin

31:01proyek karyana bangsa

31:03kita gitu. Tetapi kan

31:05pasti butuh entitas kan?

31:07Karena dalam dari company besar yang

31:09ngasih sumbangan itu kan

31:11butuh entitas dan

31:13terpajakan segala macem.

31:15Kita perlu undang lawyer kali ya

31:17satu saat di obrolan web ini ya.

31:19Sepatutnya.

31:21Cuma kalau yang

31:23on-the-surface-nya ini begon-begonnya

31:25dia ngasih

31:27donannya, perusahaan besar kan

31:29nggak mungkin tiba-tiba cuma transfer

31:31minta rekening BCA

31:33atau mandiri atau BNI, nggak mungkin gitu kan

31:35pasti dia ada caranya

31:37misalnya pakai perjanjian, kontrak.

31:39Nah, itu kan kontraknya berarti

31:41kontrak kan bisa macem-macem juga, kontrak

31:43kan bisa sama individu, bisa sama

31:45organisasi atau

31:47perusahaan, apa, badan hukum.

31:49Nah, kan itu tergantung banget

31:51si apa? Si yang mau

31:53ngasih duit itu, terms-nya kayak gimana?

31:55Kerajanya di NGO nih.

31:57Kalau di NGO-nya kan berarti ada entitas.

31:59Entitasnya yang terima bisa

32:01menampung

32:03donation atau

32:05government project yang

32:07untuk non-profit kan

32:09sebenarnya kan?

32:11Iya, bisa. Nah, kalau kan

32:13non-profit kayak ada TNC-nya sendiri

32:15misalnya harus

32:17bisa di-audit secara public

32:19jadi kayak harus laporan keuangannya

32:21itu harus tersedia untuk

32:23di-audit, kayak itu masing-masing negara

32:25juga kan ada TNC-nya sendiri.

32:27Terus kayak misalnya

32:29kalau di ranak non-profit sih

32:31lebih ke misalnya apply funding

32:33itu kan emang ada yang cuma

32:35terbuka untuk jenis

32:37non-profit, blablabla. Jadi

32:39kalau balik ke topik ini, kita pengen bikin

32:41library open source, kalau levelnya

32:43masih di GitHub Sponsors

32:45itu mah individu juga

32:47masih nggak apa-apa kan. Itu individua

32:49nggak terlupusin dengan

32:51entitas ya.

32:53Ya, misalnya

32:55teknikali sih, kalau mau nyumbang

32:57misalnya atau meta atau apa

32:59kalau lewat platform GitHub

33:01Sponsors, ya sah-sah aja.

33:03Tapi kalau perusahaan besar, biasanya mau

33:05lontorin dana besar, pasti kan

33:07punya, ya itu tadi program sendiri

33:09jenis kontraknya kayak gimana.

33:11Kita pengen ya lucu deh coba di show.

33:13Kenapa?

33:15Eh, bisa lah siung.

33:17Bisa, bisa sih.

33:19Sudah jadi admin.

33:21Nggak,

33:23kalau ini mungkin

33:25sama atau beda nggak tahu ya

33:27minta pendapatnya juga.

33:29Kalau di komunitas

33:31waktu kita mau bikin conference

33:33itu kan kalau mau terima sponsor

33:35nggak bisa tuh pakai

33:37pribadi. Makanya

33:39waktu awal dulu

33:41Ruby conference sama

33:43Python conference mau bikin

33:45itu teman-teman dari komunitas bikin

33:47namanya Perkodi.

33:49Jadi kalau teman-teman mau bikin perusahaan

33:51apa, perusahaan

33:53open source yang menerima donasi

33:55bisa ikutan sini aja

33:57daripada bikin sendiri.

33:59Jadi daripada punya

34:01apa namanya, bukakan nih

34:03harus ada, ya

34:05harus yayasan, harus ini, harus ngurus

34:07kemana-mana, ikutan ini aja.

34:09Tujuannya ya sebenarnya

34:13cuman punya

34:15rekening bersama sebenarnya.

34:17Regber.

34:19Regber, tapi versi ini ya.

34:21Regber.

34:23Yang 2017.

34:25Kenal siapa ini ya?

34:29Gio.

34:31Gio.

34:33Yang Gio sama Mas

34:35Didik.

34:37Didi Ucasono.

34:39Didi ini kan yang Ruby kan?

34:41Ruby-Ruby ya.

34:43Jadi mereka kayak bikin yayasan untuk

34:47supaya nggak perlu ngurus-ngurus lagi

34:51kalau mau bikin conference atau ya tadi

34:53kalau mau bikin entitas itu ikutan

34:55sini aja.

34:57Cookpad.

35:01Cookpad.

35:03Ada yang mau lihat-lihat, silahkan.

35:05Oke.

35:07Kita kembali ke topik ya.

35:09Teknologi agnostik by default.

35:13Saya cuman mendoakan supaya ada

35:15karya anak bangsa sekelas ini nantinya

35:17gitu, siapa tahu.

35:19Terbuka.

35:21Jadi temen-temen nggak usah

35:23khawatir mikirin yang tadi ya.

35:25Nggak perlu mikirin, wah gimana nih harus bikin

35:29perusahaan blablabla. Udah.

35:31Mulai aja dulu.

35:33Wah, ini ada dari LinkedIn.

35:37Ada nonton dari LinkedIn.

35:39Kita baru pertama kali multistream

35:47ke LinkedIn sama ke YouTube.

35:49Jadi selamat datang.

35:51Setahu saya kalau dapet grant atau kerja

35:53sama dengan perusahaan, biasanya perhamputan.

35:55Nah itu grant tadi kan.

35:57Grant funding.

35:59Itu harus ada badan hubungan.

36:01Iya, kalau mau sponsor pun kadang-kadang

36:05kalau perusahaan besar, pasti dia

36:07mintanya entitas. Nggak mau dia

36:09kayak...

36:11Nggak usah harus perusahaan

36:13besar, mas. Perusahaan yang

36:15terdaftar.

36:17Kalau atas nama perusahaan, harus ke

36:19yang ada entitas yang nggak bisa ke pribadi.

36:21Oke.

36:25Nah, lagi-lagi tergantung platform

36:27perjanjiannya kayak gimana kalau

36:29dianggap sebagai apalah

36:31ya nggak tahu ya, dianggap sebagai

36:33pilihannya

36:35antara kalau misalnya pribadi ke pribadi

36:37berarti si pemilih perusahaan, ya udah

36:39kalau gue nggak bisa pakai perusahaan, pakai

36:41pakai nama gue pribadi ke orang

36:43pribadi, itu bisa.

36:45Kalau memang mau support doang.

36:47Iya, mau support doang.

36:49Kalau saya konsultasi

36:51atau semacamnya, itu bisa

36:53NPWP pribadi.

36:55Oke.

36:57Nah, tapi kan lagi-lagi

36:59ini kan abstrak ya,

37:01programnya kayak gimana, ini kan cuma

37:03berandain-andain aja. Kalau misalnya kita

37:05pengen bikin project open source

37:07terus ada perusahaan besar yang

37:09support. Nah, support itu kan

37:11sebetulnya kalau yang di

37:13ranah legal, supportnya itu apakah

37:15sebagai grant, funding, apa

37:17dianggap sebagai project CSR-nya

37:19mereka, itu kan ada

37:21kategorinya sendiri.

37:23Pakai Saweria,

37:25mana mau perusahaan-perusahaan besar

37:27donasi lewat Saweria.

37:29Ya, sih perusahaan besarnya nggak mau.

37:31Nggak mau.

37:33Ya, kalau yang donasi

37:35sesama, apa, individu

37:37ya aman. Tapi

37:39kalau, apa,

37:41kalau perusahaan besar mah nggak mau.

37:43Kalau tiba-tiba yang donasinya

37:45gede, nah, itu harus dicurikai.

37:47Jangan-jangan.

37:49Oke, back to topic.

37:51Oke, kembali ke topic ya.

37:53Jadi

37:55menambah ide-ide aneh.

37:57Udah mikirin duit aja, jadi bikin projectnya

37:59aja boleh. Nah, akhirnya

38:01selesai.

38:03Akhirnya selesai.

38:05NPM start.

38:07Oh, tiga-tiga. Wih, langsung pakai VT.

38:09By default. Iya.

38:11By default. Keren.

38:13Iya, emang VT kan berimigrasi dia semua.

38:15Jadi CRA?

38:17Itunya dia.

38:19Oh, berarti dia

38:21nyambungnya ke

38:23VT ya, dia pakai

38:25VT ya dari awal ya.

38:27Jadi pakai 10-stack

38:29start ya?

38:31Enggak, ini belum start. Ini 10-stack aja.

38:33Ini pakai router.

38:35Enggak, nggak ada 10-stack

38:37aja. 10-stack router.

38:39Jadi kayak 10-stack itu kayak

38:41umbrella term-nya. Cuma dia punya

38:43macem-macem opsi yang tadi di halaman

38:45awal itu yang kita lewatin, kita

38:47control. Dia load

38:49widget-nya loh tadi tuh.

38:51Widget-nya dia bisa di-routing.

38:53Routingnya jadi kayak...

38:55Ada dev-nya, dev tools-nya.

38:57Iya, dev tools-nya.

38:59Ini nih dev tools-nya, jadi mana dia?

39:01Router, eh bukan.

39:03Ih, ada report

39:05buat vitals loh. Langsung...

39:07Iya, jadi kayak udah semua.

39:09Jadi, kan tadi pertanyaannya buat

39:11semacam...

39:13Semacam nggak gantiin.

39:15Orang-orang yang sekarang

39:17udah kan itu tadi

39:19Create React App udah

39:21depiketit. Nah, terus kalau mau bikin

39:23baru SBA, gimana kan?

39:25Selama ini kita ngasih saran, ya udah pakai

39:27VIT aja. Cuma kalau mentahan kayak cuma

39:29VIT sama React, kan

39:31belum banyak, belum ada fasilitas-fasilitas

39:33builds and whistles kayak yang

39:35dikasih sama Create React App kan.

39:37Nah, ini kayak drop-in

39:39replacement-nya adalah si Create

39:4110-stack router app ini.

39:43Tapi Create React App nggak ada

39:45router juga, dia lebih

39:47nambahin satu berarti.

39:49Iya, satu fitur.

39:51Cuma maksudnya buat apa? Yang kayak kita

39:53bikin sesuatu yang agak mateng

39:55lah. Kalau cuma VIT sama React luar, kan

39:57cuma satu counter.

39:59Singletis app doang, bener.

40:01Testing library itu punya CanSeedle kan?

40:03Ya, betul.

40:05Testing library itu.

40:07Testing library,

40:09VITES,

40:11WebFighter.

40:13Standard lah ya. WebFighter.

40:15Kalau WebFighter ini, DCRA juga

40:17udah ada. Nggak usah kaget.

40:19Coba gimana hasilnya kalau di dari ininya?

40:21Buka console log-nya

40:23tadi?

40:25Ini?

40:27Inspek elemen? Apa yang ini?

40:29Kayaknya ini buat router doang.

40:33Oh iya. Inspek elemen.

40:35Iya, di console.

40:37Console, console, console, console.

40:39Console.

40:41Iya.

40:43Lo ngapain? Kalo di

40:45reload?

40:47Reload?

40:49Ya reload.

40:51Lo, kalo udah keluar.

40:53Kalo udah keluar itu

40:55hasil

40:57WebFighter.

40:59Di-enable nggak?

41:01Nggak, mungkin belum nyalain.

41:03Ini udah.

41:09Ya itu console.log.

41:11Dalemnya kasih

41:13callback function

41:15to.log.

41:17Ya.

41:19Oke, ya.

41:21Block?

41:29Block by client, karena localhost.

41:31Bukan.

41:33Oh gitu?

41:35Gak tau.

41:37Oke.

41:39Nah itu submit

41:47bug ke

41:49kan ini open source semua.

41:51Kita mau liat. Nah ini DevTools-nya

41:53ada di sini.

41:55Jadi kalo kita harus pake.

41:57Yang dikiri tadi, kiri-bawah.

41:59Nah, hilangkan kiri-bawah.

42:01Kalo mau pake

42:03DevTools, nah ini.

42:05Komponen.

42:07Komponen base dia.

42:09Ini

42:11routes-nya, terus ada index.

42:13Kalo kita mau bikin

42:15routes baru.

42:17Oke, patch.

42:19Ini ya di routes-nya.

42:21Coba

42:23.tsx

42:25Udah dibikinin.

42:27Kok bisa?

42:29Kok bisa?

42:33Coba ini deh.

42:35Enggak.

42:37Oke, ulang ya.

42:39Ini .tsx, kita hapus.

42:41Oke.

42:43Bikinnya pake ini.

42:45src

42:49routes

42:51.jsx

42:53Yes.

42:55.sx

42:57Oke.

42:59Oke.

43:01Wow.

43:03Dia gak detek

43:05perubahan file.

43:07Dia langsung inject.

43:09Inject ya.

43:11Nice.

43:13Coba buka route-nya.

43:15Coba.

43:17Coba buka ya.

43:19Eh, harus pake link ya?

43:21Coba pake A aja ya.

43:23Itu pake A kok itu?

43:25Enggak.

43:27Kan ada yang pake link.

43:29Kalau

43:31di dalam itu nanti SPA-nya gak jalan.

43:33Ini?

43:35Iya sih.

43:37Ini gak pake SPA ya?

43:39Coba aja.

43:41Coba, coba.

43:43Iya.

43:45Tapi

43:47internet-nya gak ya?

43:49Cuman, gak SPA ya?

43:51Tapi hapusnya kelihatan bukan itu.

43:53Link.

43:55Link ya?

43:57Link.

43:59Gak tahu bentar.

44:01Eh, salah.

44:03Link.

44:05Link-nya sama ref.

44:07Pake ref. Error.

44:09Gimana kalau dicari

44:11di Docs?

44:13Bocan Docs.

44:15Kebiasaan ya nyari-nyari sendiri.

44:17Eh, mana dia? Ini.

44:19Router.

44:21Nah, search.

44:23Control.K.

44:25Link.

44:27Control sama K.

44:29Manual.

44:31Gimana kalau search?

44:33Control K.

44:35Comment.

44:37Nah, link.

44:39Link.

44:41Mana?

44:45Itu link option.

44:47Yang nomor 2.

44:49Link option. Coba.

44:51Oh gitu.

44:53Link 2.

44:55Ya, link itu.

44:572.

44:59Mana 2?

45:01Oh iya.

45:03Tidak terbaca.

45:05Tuh.

45:07Ternyata di comment juga udah ada.

45:09Disini juga ada kan?

45:11Harusnya ya.

45:13Property 2 is missing.

45:15Kenapa kita gak baca disini ya?

45:17Oke.

45:19Karena tadi belum tau pake

45:21turning link.

45:23Baik.

45:25Nah, coba tadi back.

45:27Oke.

45:29Ya, jadi SPA.

45:31Berarti ini SPA ya?

45:33Tep.

45:35Oke.

45:37Kok gak ini ya?

45:39Masih keblok ya.

45:41Oh, Webvital ini kali.

45:43Lu pake ini kali ya? Apa namanya?

45:45Mas Liza pake...

45:47VPN?

45:49Bukan.

45:51Pake ad blocker gitu?

45:53Enggak.

45:55Nah, itu mungkin.

45:57Itu gak ad blocker?

45:59Itu content blocking.

46:01Atas, atas, atas.

46:03Block third party aja.

46:07Block third party aja. Nah, dah.

46:09Coba.

46:11Nah.

46:13Tadah.

46:17Ya, wamsudah.

46:19Keren.

46:21Ya, wamsudah kelihatan FCP-nya apa.

46:23Ya, gak ada apa-apa.

46:25Ya, gak ada isinya, bang.

46:27Pasti bagus.

46:29Tapi kan

46:31kalau sudah terintegrasi sama Webvital

46:33wikini kan.

46:35Ya, enak. Masaya tinggal

46:37di depan mata.

46:39Orang yang pake ini juga kan isinya bakal

46:41diganti isinya dia sendiri kan.

46:43Tapi kebantu banget.

46:45Di depan mata.

46:47Ini react router

46:51tapi type safe. Ada

46:53generate type. Ya.

46:55Eh, emang react router gak ada ya?

46:57Baru tahu sih.

46:59React router

47:01kayaknya lebih simple deh.

47:03Kayak cuma bikin routing aja.

47:05Karena dulu juga mereka mulainya

47:07dari JavaScript sebelum

47:09ada TypeScript ya.

47:11Sebelum TypeScript seperti sekarang.

47:13Pakai 2, pakai 2.

47:15Ya, ya. Maaf ya.

47:17Kita belum pernah

47:19pakai. Ketanya LLM.

47:21Oh, ada ya LLM

47:23sd.txt. Ya, sayangnya belum ada.

47:25Belum ada. Oh, belum ada.

47:27Oh, belum ada.

47:29Gue lagi menyoba kemarin. Karena

47:31kemarin nih minggu lalu, kita kan nyoba LLM

47:33sd.txt. Ya.

47:35Sd.txt belum bikin.

47:37Oke, menarik-menarik.

47:41Dan, dan

47:43tidak sulit ya. Karena udah

47:45kayaknya udah umum ya.

47:47Sudah terbiasa. Ya, kayak itu common

47:49use case. Dan apa ya?

47:51Sebenernya dia punya

47:53keunggulan dari karena dia sama

47:55mereka lama bikin di Ecosystem

47:57React. Terus kayak orang

47:59user developer tuh kayak

48:01udah ketanam best practice-nya.

48:03Nah, sekarang walaupun udah

48:05framework agnostik. Maksudnya bisa

48:07dipakai di macem-macem. Ya, kayak

48:09sekarang udah familiar aja jadi.

48:11Hmm.

48:15Oh, sekarang React Router malah udah

48:17kayak meta framework ya sekarang ya.

48:19Malah ganti ya. Bukan.

48:21Jadi sebenarnya agak ya

48:23rancu sih. Jadi kalau 10-stacks

48:25intinya mah 10-stacks start itu

48:27yang

48:29yang lebih SSR

48:31friendly. Nah, cuma

48:33kalau cuma pengen apa, ada routing-nya

48:35aja. Jadi itu 10-stacks router

48:37ini. Mereka sampai

48:39nulis blog post. Buka deh

48:41di private chat.

48:43Jadi itu dia kayak

48:47kata pengantarnya di dokumentasinya

48:4910-stacks start.

48:51Tuh kan, 10-stacks

48:55start overview.

48:5710-stacks start adalah bla-bla-bla

48:59powered by React 10-stacks router.

49:01Jadi emang ya kayak remix.

49:03Kayak remix kan

49:05powered by React router ya.

49:07Nah, ini 10-stacks start

49:13powered by 10-stacks router.

49:15Jadi 10-stacks start

49:19kayak

49:21lebih dilengkapin aja.

49:23Apa aja, oke.

49:25Ada nested routing, ada

49:27routing. Pokoknya semua routing lah ya.

49:29Kemudian ada filebase

49:31routing juga.

49:33Kalau dynamic routing

49:35nggak ada ya? Dynamic routing

49:37kayak setelah

49:39blog.

49:41Harusnya ada lah ya. Masa nggak ada sih.

49:43Iya.

49:45Nah, itu.

49:47Terus ke bawah. Itu kan tadi

49:49yang ternyata 10-stacks router.

49:51Nah, 10-stacks start itu

49:53kayak lebih

49:55lengkap aja based on

49:57semua yang di 10-stacks router itu

49:59plus to full SSR

50:01streaming

50:03for function.

50:05Bisa SSR juga.

50:07Bisa SSR, bisa

50:09CSR.

50:11Kalau kita perlu SSR,

50:13kita mau pakai 10-stacks start, tapi kalau cuma

50:15pure CSR

50:17kayak single-touch cat gitu.

50:19Itu tadi 10-stacks router udah cukup.

50:21Iya, iya, iya.

50:23Build from scratch.

50:31Dia ngasih tahu

50:33kalau mau

50:35bikin, iya,

50:37kalau mau set up project kosong

50:39atau project yang sudah jalan mau

50:41dirubah, ini ada caranya.

50:43Daripada kalau yang...

50:45Karena kalau pakai NPX

50:47start gitu kan, kalau kayak...

50:49Iya, itu harus dari awal, dari kosongan

50:51pakai starter template.

50:53Iya. Dan banyak konfigurasinya

50:55sudah dihidang didalam

50:57library-library itu.

51:01Oh, dia

51:03merekomendasikan Netlify.

51:05Karena dia partnership

51:07sudah, dia partnership.

51:09Official

51:11deployment partner.

51:13Netlify kan sudah bisa server

51:17back-end. Ya nggak sih?

51:19Iya, bisa.

51:21Function bukan?

51:23Node ya? Node.js ya?

51:25Kayaknya sudah node deh.

51:29Karena sebenarnya dia cuma raper dari

51:31AWS.

51:33AWS.

51:35AUS.

51:37Mereka semua itu rapernya

51:39AWS.

51:41Iya.

51:43Cuma

51:45JavaScript developer friendly.

51:47Kita nggak usah lihat

51:49panel AWS yang bikin busnya.

51:51Clerk.

51:53Clerk.

51:55Database.

51:57Kayak Sentry pernah denger deh.

51:59Sentry itu apa?

52:01Sentry itu analytics.

52:03Error analytics.

52:05Oh iya, iya, iya.

52:07Kayak New Relic gitu ya?

52:09Kayak apa?

52:11Kayak New Relic.

52:13New Relic ya?

52:15APM kan?

52:17Ada browser,

52:19browser-nya juga ada browser

52:21site-nya.

52:23Browser monitoring bahasanya.

52:27Database-nya apa aja boleh

52:29tapi

52:31oh dia

52:33kerjasamanya sama ini ya?

52:35Satu-satu ya? Postgre.

52:37Kalau untuk authentication, untuk deployment,

52:39untuk database,

52:41konvex ini apa ya?

52:43Kayaknya database

52:45as a service kali ya?

52:47Back-end as a service ya?

52:49Ya.

52:51Apa sih maksudnya serverless

52:53Postgre, serverless database

52:55itu maksudnya gimana sih

52:57serverless gitu.

52:59Serverless itu pada dasarnya adalah

53:01as a service pasti sebetulnya.

53:03As a service.

53:05Gampang ya kan?

53:07Kalau serverless

53:09function, gue ngerti nih

53:11ceritanya. Karena sekali

53:13misalnya kita info function,

53:15jalanin, dia

53:17selesai. Kita cuma bayar

53:19per micro time yang

53:21terpakai. Tapi kalau serverless

53:23database itu

53:25pasti

53:27menangkep sih.

53:29Itu gimik sih. Sebenarnya kalau dilihat

53:31sekilas dari

53:33deskripsinya sama

53:35kemarin juga gue udah buka website-nya

53:37satu-satu. Lihat depannya doang.

53:39Hosted database as a

53:41service.

53:43Tapi bayarnya tetap

53:45per storage atau

53:47per month?

53:49Harus kita cari

53:51narasumber yang bisa kita

53:53ajak ngobrol.

53:55Serverless database.

53:57Kayak hosted

53:59database as a service.

54:01Kalau serverless function

54:03kita udah paham.

54:05There is no such thing serverless.

54:07Iya pasti.

54:09Wireless earphone

54:11juga dalamnya ada kabelnya pasti.

54:13Cuma kita nggak lihat kabelnya aja.

54:15Jangan salah. Serverless itu

54:17bukan new server.

54:19Tapi servernya sedikit.

54:21Atau server yang kita maintain itu sedikit.

54:23Sama bukan kita yang maintain

54:25servernya.

54:27Bukan kita yang ngobrol servernya. Kita bayar

54:29untuk service-nya. Kita bayar untuk service

54:31database-nya.

54:33Orang banyak salah sangka, wah

54:35ini serverless tapi kok masih ada server?

54:37Ya namanya serverless, bukan no server kan.

54:39Ya nggak bisa.

54:41Ada yang free neon.

54:43Ada yang free neon.

54:45Ya neon ada freemiumnya ya. Benar-benar.

54:47Kontongannya mungkin autoscaling

54:49betul. Tapi RDS juga udah

54:51autoscaling kan. Eh nggak ya.

54:53RDS auto back up.

54:55Tapi tidak autoscaling kan.

54:57Bukan. RDS itu bisa

54:59autoscale. Kan ada scaling

55:01apa? Vertical atau horizontal.

55:03Kalau RDS

55:05itu bisa scaling

55:07horizontal.

55:09Kalau scaling verticalnya hanya

55:11bisa one time.

55:13Artinya kalau sudah naik nggak bisa turun.

55:15Oh iya iya iya.

55:17Anjay bahaya banget.

55:19Ya iyalah.

55:21Kalau storage-nya sudah dinaikin, nggak bisa

55:23diturunkan lagi. Bisa data lost.

55:25Data-nya abis, hilang loh.

55:27Oh storage-nya ya?

55:29Bukan

55:31dekat machine run.

55:33Semua-semuanya kan

55:35kalau sekali naik kan memory naik,

55:37CPU naik, data

55:39storage-nya juga naik.

55:41Storage-nya ikut di itu kan.

55:43Bertambah.

55:45Ada segudang

55:47kompleksiti.

55:49Mengkonfigur itu semua.

55:51Pakainya serverless. Ya someone else yang

55:53mengkonfigur itu semua.

55:55Kan udah dikasih konfigurasinya kan.

55:57Iya.

55:59Termasuk juga

56:01termasuk juga kartu credit kita.

56:03Seperti diserahkan kepada orang lain.

56:05Iya itu

56:07mengerikan. Eh ada static

56:09pre-renderingnya.

56:11Nitoro.

56:13Nitoro itu apa lagi?

56:15Nanti kita mau bahas

56:17ini.

56:19Ini menarik

56:21static pre-rendering

56:23dulu. Ini isinya fit

56:25dan nitro sama

56:27ini menurutku

56:29fenomena yang menarik sih.

56:31Nitoro itu adalah

56:33nitro itu

56:35pokoknya

56:37buat ngahendernya

56:39target deployment.

56:41Oh.

56:43Ada blog post-nya dari

56:45Tenstake, bentar. Si Tenor.

56:47Ketauan robot nih.

56:51Ketauan AI.

56:53Mas Riza AI nih.

56:55Kayak kita semua AI.

56:59Saya

57:01create web server.

57:03Next Generation Server

57:05Toolkit. Ini kayak Express bukan sih?

57:07Pendatungnya Express bukan sih?

57:09Noh ini belum ada sebelumnya.

57:11Kayak menarik sih.

57:13Deploy them wherever you prefer.

57:15Posisinya dimana?

57:17Jadi bikin server

57:21memungkinkan suatu

57:23library atau punya software JS

57:25JavaScript based untuk

57:27di deploy di macem-macem target.

57:29Kayak misalnya aku lah di

57:31Cloudware

57:33Workers atau

57:35di mana? Cloudware Pages tadi.

57:37Cloudware Pages.

57:39Di deploy nih.

57:41Bisa dimana aja?

57:43Framework untuk meng-handle

57:45macem-macem target deployment.

57:47Nah, yang udah

57:49disediakan sama mereka adalah

57:51zero-config provider.

57:53Tapi kayak yang namanya framework.

57:55Jadi kayak bisa di-customize. Jadi misalnya suatu hari

57:57bakal ada provider jenis

57:59lain yang

58:01berbeda lagi.

58:03Bakal bisa ada lagi.

58:05GCP misalnya. Tadi nggak ada yang sebut GCP.

58:07Nggak ada GCP.

58:13Tak ada.

58:15Tadi kita ngomongin AUS doang.

58:19AUS sama AUS.

58:21Azure Cloudware

58:23Pages.

58:25AUS.

58:29AUS.

58:31AUS.

58:33Itu firebase app hosting kan udah keintegrate sama

58:35Cloud.

58:37Sekarang.

58:39Itu udah zero-config.

58:41Itu ada dua.

58:43Ada HIO.

58:45Firebase

58:47app hosting.

58:49Firebase.

58:51Firebase ya.

58:53Ini kayak

58:55kalau di

58:57Go itu ada namanya apa ya?

58:59Numpah is namanya. Ada kayak Tulkit-tulkit juga

59:01namanya.

59:03Namanya tagline-nya juga mirip.

59:05Coba ya.

59:09Menarik sih dia

59:11apa?

59:13Gorilla sama nggak?

59:15Gorilla.

59:17Soalnya ini sama-sama Tulkit.

59:19Nggak tahu nih sama apa nggak.

59:21Soalnya dia ada

59:23library-library yang lain juga.

59:25Jadi ketengan juga.

59:27Oh kalau Nitro.

59:29Oh ini head-to-headnya Tenstake.

59:31Kayaknya temen-temen yang pakai Go

59:33yang lebih mengerti daripada kita

59:35tolong dicerahkan.

59:37Kalau Tenstake

59:39kan front-end.

59:41Kalau Nitro ini.

59:43Sama Nitro.

59:45Kayaknya beda deh.

59:47Ini cuma buat

59:49target deployment

59:51untuk web server.

59:55Server-nya juga ada.

59:57Ini udah nggak apa-apa.

59:59Ada QVStory.

1:00:01Maksudnya semua yang

1:00:03enforce dengan menjalankan photo server.

1:00:05Mari kita simpan untuk

1:00:13episode-episode berikutnya ya.

1:00:15Ini enak nih dibahas Nitro.

1:00:17Jadi intinya

1:00:19adalah

1:00:21kalau kita yang bikin

1:00:23web-app itu kita kemungkinan

1:00:25nggak langsung pakai Nitro-nya.

1:00:27Nitro itu memfasilitasi pembuat

1:00:29meta framework kayak Tenstake Star.

1:00:31Terus kayak tadi yang dikomen

1:00:33Nux.

1:00:35Sebentar dulu juga Express

1:00:39itu kan

1:00:41SpellKit terus Nex

1:00:43terus hampir semua meta framework

1:00:45pakainya Express backend-nya kan.

1:00:47Dulu ya nggak tahu sekarang.

1:00:49Dulu ada pilihan tuh SpellKit.

1:00:51Mau pakai Polka

1:00:53atau pakai Express.

1:00:55Apakah positioningnya

1:00:57si Nitro itu seperti itu?

1:00:59Ya nggak kayaknya deh.

1:01:05Kalau dulu kan

1:01:07semua by default semua

1:01:09Node.js ya. Kita misalnya nggak punya

1:01:11runtime lain mau pakai Express

1:01:13mau pakai Polka. Perbedaannya

1:01:15tipis karena semua

1:01:17masih di bawah Node.js.

1:01:19Nah sekarang kayak lebih macem-macem lagi

1:01:21mungkin, dan sejujurnya

1:01:23gue nggak terlalu ngerti intinya

1:01:25perbedaan masing-masing runtime. Tapi maksudnya dengan

1:01:27sekarang runtime-nya namun

1:01:29macem-macem kan mungkin ada yang perlu

1:01:31di adjust juga.

1:01:33Mungkin dia jadi rapper atau jadi

1:01:35itu ya. Jadi apa?

1:01:37Jadi kayak polyfill

1:01:39untuk berbagai

1:01:41runtime kali ya.

1:01:43Jadi kalau disini nggak ada, oh dia pakai

1:01:45callback-nya kemana gitu ya.

1:01:47Dia jadi middleware.

1:01:49Yang

1:01:51yang bikin Nux nggak usah

1:01:53mikir beneran implementasi

1:01:55detail-nya gimana buat ngejalanin

1:01:57di

1:01:59Deno, atau Node, atau

1:02:01apapun, 10 stack start juga

1:02:03kayak gitu. Jadi kayak

1:02:05memfasilitasi macem-macem

1:02:07meta framework.

1:02:09Dan

1:02:11Deno is block tuh, menarik tuh

1:02:13si tanner-nya. Tadinya dia mau

1:02:15pakai adapter. Maksudnya buat 10 stack start

1:02:17dia yang manuali bikin adapter-nya

1:02:19untuk Netlify, bikin

1:02:21adapter buat Vercel,

1:02:23dan lain-lain. Setiap kali Vercel

1:02:25ada update

1:02:27ya dia kayak harusnya soain.

1:02:29Terus dia mikir, "Anjir, abis itu

1:02:31gue nulis adapter, ya kalau cuma dua."

1:02:33Terus dia liat,

1:02:35dia ngebandingin remix. Jadi kayak

1:02:37adapter-adapternya tuh kayak tipe-tipe gue udah 10

1:02:39aja. Kayak makin lama makin banyak.

1:02:41Dan itu kan dia harus memaintain

1:02:43terus kan. Jadi kan nanti

1:02:45pusing. Terus

1:02:47dia nyari apa, pendekatan

1:02:49lainnya.

1:02:51Akhirnya malah pakai itu

1:02:5310 stack start sama dengan

1:02:55nitro, tambah fit, tambah

1:02:57plus 10 stack roaster.

1:02:59Iya, sama

1:03:01berarti kayak express jaman dulu.

1:03:03Kurang lebih ya.

1:03:05Java Stack tool can to build

1:03:07comfort state framework with your own opinion.

1:03:13Oh, ada preset-presetnya.

1:03:15Oke, oke.

1:03:17Nah, presetnya yang tadi kita lihat itu, yang ada

1:03:19Azure, AWS, firebase, uphosting,

1:03:21dan lain-lain.

1:03:23Berarti sudah kayak opinion

1:03:25itu cara

1:03:27nge-build aplikasi

1:03:29back-end sama front-end

1:03:31sekaligus ya 10 stack start itu ya?

1:03:33Ya, 10 stack start ya.

1:03:35Jadi dia

1:03:37udah gabungin beberapa. Pertama

1:03:39yang ini kan, router. Query masuk gak?

1:03:41Enggak ya? Belum.

1:03:43Maksudnya query ketengan kalau mau

1:03:45pakai. Iya, kan dia hanya

1:03:47untuk back-end-nya saja, membangun

1:03:49back-end-nya. Terus front-end-nya

1:03:51ya terserah lu sebenarnya mau

1:03:53pakai query, 10 stack query

1:03:55gue boleh aja gitu.

1:03:57Tapi minimumnya

1:03:59minimumnya 10 stack router.

1:04:01Iya.

1:04:03Untuk

1:04:05transpiler-nya, bundler-nya

1:04:07vt, nitro-nya back-end.

1:04:09Kurang lebih gitu ya.

1:04:11Dan sudah opinionated ya.

1:04:13Sudah ada config-confignya dari dia.

1:04:15Iya, sudah disiapkan.

1:04:17Itu meta framework. Jadi yang meta

1:04:19framework-nya adalah 10 stack start.

1:04:21Framework di atas framework.

1:04:23Framework di atas framework. Oke.

1:04:27Saya harus

1:04:29ini dulu.

1:04:31Ternyata ada GDI web

1:04:33perf meetup.

1:04:35Sudah mulai.

1:04:37Sudah mulai.

1:04:39Boleh, boleh, ntar gue kasihin.

1:04:41Oh iya, pernah ya.

1:04:43Nah, malam ini

1:04:45ya cuman silahkan coba satu-persatu

1:04:4710 stack library

1:04:49universe.

1:04:51Mungkin besok-besok kalau ada

1:04:53yang punya saran, pengen nyobain

1:04:5510 stack start atau apalah yang

1:04:57spesifik, ya kita bisa balik ke

1:04:59product 10 stack

1:05:01lagi. Kita langsung berdiskusi

1:05:03di github discussion. Teman-teman

1:05:05kita langsung kesana.

1:05:07Nanti kita lanjut

1:05:09lagi ngomongin

1:05:1110 stack start kita bisa bahas

1:05:13kemudian nitro juga kita bisa bahas.

1:05:15Kita bahas 10 stack start

1:05:17plus nitro aja sekali

1:05:19biar nyambung.

1:05:21Oke, boleh.

1:05:23Boleh, siap.

1:05:25Kita next-nya bahas bedah framework

1:05:27itu ya.

1:05:29Oke, untuk malam ini sekian dulu. Terima kasih banyak

1:05:31semuanya yang sudah hadir.

1:05:33Terima kasih juga buat yang

1:05:35sudah hadir di link-in

1:05:37malam hari ini. Nanti kemarin

1:05:39kita akan coba juga

1:05:41boleh kita banding-bandingin

1:05:43aja yang mana yang lebih bagus.

1:05:45Ini komennya.

1:05:47Produk kecel, iya

1:05:51produk kecel lagi mau di-boycott kan.

1:05:53Ya, bagus-bagus.

1:05:55Nanti bisa kita undang jeselin aja yuk.

1:05:57Mumpung dia sudah.

1:05:59Ya udah jadinya lagi kan berarti?

1:06:01Belum, tapi kan dia tetap

1:06:03ngerti anggular.

1:06:05Ya, kali kalau udah

1:06:07bukan gugular, jadinya lagi.

1:06:09Anggular tuh, ada

1:06:11yang minta anggular ya.

1:06:13Jarang nih kayaknya

1:06:17ngelihat lifetime pak.

1:06:19Padahal bagus lah sekarang.

1:06:21Bagus.

1:06:25Oke, cukup ya.

1:06:27Selamat malam.

1:06:29Sampai jumpa. Bye bye.

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Desain Aplikasi CLI - Ngobrolin WEB
EP 147

13 Okt 2025

Desain Aplikasi CLI - Ngobrolin WEB

🗣️🕸️ Selasa malam waktunya #ngobrolinWEB! Topiknya agak beda nih, kita akan diskusi tentang mendesain dan mengembangka...

Ngobrolin Astro - Ngobrolin WEB
EP 131

4 Jun 2025

Ngobrolin Astro - Ngobrolin WEB

🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita kembali akan membahas Astro, fokusnya di sisi server. Masih b...

Ngobrolin Kata Sandi - Ngobrolin WEB
EP 121

18 Mar 2025

Ngobrolin Kata Sandi - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Komentar