sanity-best-practices について
Sanity Best Practices は、Sanity が保守する開発スキルです。プロジェクト設定、連携、コンテンツ設計、運用を扱い、フレームワーク、GROQ、スキーマ、移行の資料を提供します。
主な機能
- 01フレームワーク連携ガイド
- 02GROQ クエリと性能の指針
- 03スキーマ設計と検証の実践
- 04Visual Editing とライブプレビューのガイド
- 05ローカライズと移行の資料
活用シーン
- 01Sanity プロジェクトのセットアップ
- 02フロントエンド連携の構築
- 03スキーマと GROQ クエリの設計
- 04コンテンツのローカライズや移行の計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sanity-io/ agent-toolkit --skill sanity-best-practicesインストール後、Claude Code で/sanity-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/angular.mdapp-sdk.mdastro.mdblueprints.mddashboard.mdfunctions.mdget-started.mdgroq.mdhydrogen.mdimage.mdlocalization.mdmigration-html-import.mdmigration.mdnextjs.mdnuxt.mdpage-builder.mdportable-text.mdproject-structure.mdremix.mdschema.mdseo.mdstudio-structure.mdsvelte.mdtypegen.mdvisual-editing.md詳細
Sanity のベストプラクティス
Sanity が管理する、Sanity 開発に関する包括的なベストプラクティスと統合ガイドです。以下のクイックリファレンスを使って、タスクに合ったトピックファイルを 1 つか 2 つだけ読み込んでください。
適用するタイミング
以下の場合に、これらのガイドラインを参照してください。
- 新しい Sanity プロジェクトをセットアップするとき、またはオンボーディングを行うとき
- Sanity をフロントエンドフレームワーク(Next.js、Nuxt、Astro、Remix、SvelteKit、Hydrogen)と統合するとき
- GROQ クエリを記述するとき、またはパフォーマンスを最適化するとき
- コンテンツスキーマを設計するとき
- ビジュアル編集とライブプレビューを実装するとき
- 画像、Portable Text、またはページビルダーを扱うとき
- Sanity Studio の構成を設定するとき
- 型安全性のために TypeGen をセットアップするとき
- ローカライズを実装するとき
- 他のシステムからコンテンツを移行するとき
- Sanity App SDK を使ってカスタムアプリを構築するとき
- Sanity Dashboard で Studio またはアプリを開発、デプロイするとき
- Blueprints でインフラストラクチャを管理するとき
- Sanity Functions または Webhook を使ってコンテンツのワークフローを自動化するとき
全般的なルール
- 通常のドキュメントでは Sanity に
_idの値を生成させてください。ドキュメントの作成時に、決定論的な UUID、スラッグから派生した ID、またはレガシーシステムの ID を作成しないでください。 referenceフィールドでリレーションシップをモデル化し、GROQ のルックアップ、ソースキーのフィールド、または作成したドキュメントから返された_idの値を使って関連ドキュメントを解決してください。- 明示的なドキュメント ID は、主に Studio Structure で管理されるシングルトンドキュメントに使用してください。
homePage-enのようなローカライズされたシングルトンも含まれます。
動画
- 本番環境での再生向けに、Sanity の
fileアセットに動画を保存したり、そこから配信したりしないでください。ファイルアセットはトランスコードやアダプティブストリーミングなしで生のダウンロードとして配信されるため、動画のトラフィックは非常に大きな帯域幅を消費し、予想外に高額な請求につながります。 - 動画アドオン付きの Enterprise プランでは、動画に Sanity Media Library を使用してください。アップロードされた動画はトランスコードされ、Mux 経由でアダプティブストリーミングされます。
sanity/media-libraryのdefineVideoField()で動画フィールドをモデル化し、アセットの再生 ID を使って@mux/mux-player-reactで再生してください。 - その他のプランでは、専用の動画サービスを使用してください。
sanity-plugin-mux-inputをインストールして Studio から Mux アカウント内の動画をアップロード、管理するか、YouTube や Vimeo などのプラットフォームで動画をホストし、埋め込み URL のみを Sanity に保存してください。 fileフィールドでは、小さなクリップや短いプレビューは問題ありませんが、多数のユーザー向け動画はすべて Media Library またはストリーミングサービス経由で配信する必要があります。
クイックリファレンス
統合ガイド
get-started- 新しい Sanity プロジェクト向けのインタラクティブなオンボーディングnextjs- Next.js App Router、Live Content API、スタンドアロン Studionuxt- @nuxtjs/sanity との Nuxt 統合angular- @sanity/client、シグナル、リソース API との Angular 統合astro- @sanity/astro との Astro 統合remix- React Router / Remix の統合svelte- @sanity/svelte-loader との SvelteKit 統合hydrogen- Sanity を使った Shopify Hydrogenproject-structure- スタンドアロン Studio とモノレポのパターンapp-sdk- Sanity App SDK を使ったカスタムアプリdashboard- Sanity Dashboard の Studio とアプリ:defineApplication、ローカル開発、デプロイ、Dashboard フックblueprints- Infrastructure as Code:ブループリントファイル、スタック、計画/デプロイのワークフロー、エラー復旧、CI デプロイfunctions- Sanity Functions と Webhook を使ったコンテンツのワークフローの自動化
トピックガイド
groq- GROQ クエリパターン、型安全性、パフォーマンスの最適化schema- スキーマ設計、フィールド定義、バリデーション、非推奨化のパターンvisual-editing- プレゼンテーションツール、Stega、オーバーレイ、ライブプレビューpage-builder- Page Builder の配列、ブロックコンポーネント、ライブ編集portable-text- リッチテキストのレンダリングとカスタムコンポーネントimage- 画像スキーマ、URL ビルダー、ホットスポット、LQIP、Next.js Imagestudio-structure- デスク構造、シングルトン、ナビゲーションtypegen- TypeGen の設定、ワークフロー、型ユーティリティseo- メタデータ、サイトマップ、Open Graph、JSON-LDlocalization- i18n パターン、ドキュメント単位とフィールド単位、ロケール管理migration- コンテンツインポートの概要(migration-html-importも参照)migration-html-import- @portabletext/block-tools を使った HTML から Portable Text への変換
使い方
まず、依頼に最も合った単一のフレームワークガイドまたはトピックガイドを確認し、タスクが複数の領域にまたがる場合にのみ追加のリファレンスを読みます。詳細な説明とコード例については、以下のリファレンスファイルを使用してください。
references/groq.md
references/schema.md
references/nextjs.md
各リファレンスファイルには、以下が含まれています。
- トピックまたは統合に関する包括的な情報
- 誤ったコード例と正しいコード例
- 判断マトリックスとワークフローのガイダンス
- 該当する場合は、フレームワーク固有のパターン
コメント
Markdown 対応