Slide 1

Slide 1 text

実践 TanStack Start 新規プロダクトを開発して確⽴した サーバーとクライアント 境界の設計パターン TSKaigi 2026

Slide 2

Slide 2 text

名前: Shimmy(Twitter: @naoya7076) 所属: 株式会社カミナシ ○ 新規プロダクトを開発中(B to B SaaS) ○ プロトタイプでの検証時にTanStack Startを利⽤ ○ 過去にもTanStack関連で登壇 ⾃⼰紹介

Slide 3

Slide 3 text

TanStack Start のスタンス Next.js は "Convention"(規約) TanStack Start は "Explicit"(明⽰) ● "no framework magic layer between you and React" ● loader / Server Functions の責務もフレームワークが決め ない ● → ⾃分たちで境界を考える必要がある

Slide 4

Slide 4 text

結論: 境界は薄く、ロジックは外へ loader: クライアントがサーバーから データを受け取る 境界 Server Function: クライアントがサーバーに 処理を頼む 境界

Slide 5

Slide 5 text

loader

Slide 6

Slide 6 text

loader とは何か ルートを描画する「前」に⾛る処理を書く場所

Slide 7

Slide 7 text

アンチパターン 全データを詰める

Slide 8

Slide 8 text

どうすると良いか loader は薄く。データ取得はコンポーネントで

Slide 9

Slide 9 text

Server Function

Slide 10

Slide 10 text

Server Function とは何か クライアントから型安全に呼べる、サーバーで 実⾏される関数(RPC)

Slide 11

Slide 11 text

アンチパターン 何でも詰める

Slide 12

Slide 12 text

Middleware に横断関⼼事を逃がす 横断関⼼事を handler から消す

Slide 13

Slide 13 text

委譲するだけ 直接ロジックや I/O の詳細を書かない

Slide 14

Slide 14 text

まとめ

Slide 15

Slide 15 text

境界は薄く、ロジックは外へ ● loader / Server Functions = 境界 ● ロジックは外側の箱へ

Slide 16

Slide 16 text

株式会社カミナシ https://kaminashi.jp