Slide 1

Slide 1 text

SvelteKitでマルチテナントブロ グサイト作ってみた
 西村 和海

Slide 2

Slide 2 text

西村和海 株式会社Liquitousのエンジニア Twitter: @Kazuumi_N GitHub: @KazuumiN 業務ではVue2、サイドプロジェクトではNext.js 動画制作やライブ配信とかもしてます。 はじめに〜自己紹介

Slide 3

Slide 3 text

作っているプロダクト「Liqlid」はVue2 + Firebase ● Vue2のサポート終了 ● SSR対応 ● Firebaseからの移行 ↓ Svelte / SvelteKit + RDBへの移行 はじめに〜Vue2からの移行先としてのSvelte/SvelteKit 市民参加型合意形成プラットフォーム「 Liqlid」

Slide 4

Slide 4 text

目次 ● 作ったもの 〜mypost.studio〜 ● ライブラリ紹介 ○ Svelte / SvelteKit ○ Kysely ○ Prisma ○ Lucia ○ Superforms ○ Tiptap ○ Melt UI

Slide 5

Slide 5 text

作ったもの github.com/KazuumiN/sveltekit-simple-multitenant-blog

Slide 6

Slide 6 text

洗練されたウェブアプリケーション開発フレームワーク ● 分かりやすいファイルベースのルーティング ● サーバー側からフロントに渡す値にデフォルトで型が付く ● HTML / CSS / JavaScript を活かして書けるコンポーネント 日本語ドキュメントがしっかり整備されている他、『 実践Svelte⼊⾨』という本もおすすめです Svelte/SvelteKit

Slide 7

Slide 7 text

Kysely SQLのクエリビルダー データベースと同期させた型定義ファイルを持っておくことで、型に守ってもらいながらコード補完の恩恵も受け られます。

Slide 8

Slide 8 text

Prisma, prisma-kysely Prismaは、とても使いやすいORMです。 1. データベースのスキーマ定義 2. マイグレーションの実行 3. SQLを覆ってストレスフリーなクエリ を行うことができます。 今回は3にあたりクエリにはKyselyを使いたかった↓ prisma-kyselyによってPrismaによるマイグレーションと同時に Kyselyの型定義ファイルを生成する

Slide 9

Slide 9 text

シンプルで柔軟な認証ライブラリです。ユーザー・認証情報・セッション情報 - 最近のウェブフレームワークに広く対応( Next.js, Nuxt, SvelteKit, Remix, Qwik, Astro) - データベースのアダプターが十分にある(組み合わせも可能) - OAuthに対応するライブラリや、メール認証のチュートリアルなどが別途整備されている Lucia

Slide 10

Slide 10 text

Superforms Superformsは、バリデーションを始め、 SvelteKitでのフォームの実装に便利な機能が多く含まれています。 そもそもSvelteKitオフィシャルに用意されているクライアント →サーバーのデータ送信はFormを拡張した形であ り、Superformsではその開発がより便利になります。

Slide 11

Slide 11 text

Tiptap / Melt UI Tiptap:ヘッドレスなリッチテキストエディタ MeltUI:ヘッドレスなUIコンポーネントビルダー いずれも機能のみを提供していて、スタイルは完全にカスタマイズが可能