このプロジェクトについて
WebSightは、オープンソースでプライバシーを最優先したWeb解析プロジェクトです。その目的は、訪問者を「商品」に変えることなく、サイトオーナーに必要な数値を提供することにあります。クッキーを使用せず、サイトをまたいだトラッキングを行わず、個人データも収集しません。ホスト型アプリとして、または完全に独自のインフラストラクチャ上で動作させるソフトウェアとして提供されています。
トラッキングとセットアップ
トラッカーは軽量に設計されており、コアスクリプトは1KB未満で、非同期(async)かつ遅延(deferred)読み込みされます。統合方法は2通りあります。最も簡単な方法は、ホストされたトラッカーを指す単一のdeferredスクリプトタグを配置し、data-site属性でターゲットサイトを指定する方法です。その他のdata-*属性はパッケージオプションと1対1で対応しており、永続化モード、Core Web Vitalsのサンプリング、管理画面やヘルスチェックルートのパス除外などを設定できます。あるいは、websightというnpmパッケージをビルドに組み込むことで、型定義されたinitコールに加え、カスタムイベント用のtrackおよびidentify関数を利用できます。trackとidentifyはinitの前に呼び出すことができ、トラッカーが起動するまでキューに保存されます。また、ルートレイアウトにマウントすることを想定したAnalyticsコンポーネントによるReact統合も提供されています。
解析機能
READMEには、イベントの到着に合わせて遅延なく更新されるリアルタイムダッシュボードと、現在の読者の所在地をハイライトする回転式の3Dグローブが記載されています。セッションリプレイはrrwebによって提供され、プライバシー保護(マスク処理)が施されており、ダッシュボードからサイトごとに有効化できます。行動分析については、カスタムイベント、コンバージョンファネル、ゴール、リテンションコホートに加え、ソース、国、デバイス、キャンペーンで切り分け可能なフィルタとセグメントをカバーしています。Core Web VitalsとJavaScriptエラーキャプチャも利用可能で、オンデマンドで読み込まれます。
プライバシーへの姿勢
クッキーレスでステートレスなトラッキングがデフォルトとして掲げられています。READMEでは、このアプローチがGDPR、CCPA、PECRに準拠しており、訪問者が同意する必要はないと主張しています。任意のサイトに対して公開共有リンクを生成でき、オプションでパスワード保護も可能です。プロジェクトはMITライセンスで、完全にセルフホスト可能です。
アーキテクチャとセルフホスティング
WebSightは、Supabase Postgresデータベースをバックエンドに持つ単一のNext.jsアプリケーションです。トラッカーはアプリのpublicディレクトリに配置されるため、別途サービスを運用する必要はなく、1つのNext.jsアプリを1つのSupabaseプロジェクトに向けるだけで動作します。READMEに記載されたセルフホスティングの手順は、リポジトリのクローン、環境変数例ファイルのコピーとSupabaseキーおよびアプリURLの記入、依存関係のインストール、ビルド、そして起動です。supabase/migrations配下のマイグレーションはSupabase CLIで適用し、その後、Vercelやその他のNodeホストにデプロイできます。READMEには、環境変数とgeo/CDNに関する注意点を含む詳細なウォークスルーがオンラインのセルフホスティングガイドにあることが記されています。
READMEに記載されている技術スタックには、Next.js 16、React 19、TypeScript、Tailwind CSS v4、Postgres用のSupabase、Recharts、3Dグローブ用のthree-globe、セッションリプレイ用のrrwebが含まれています。トラッカー自体は依存関係ゼロで、tsupを用いて構築されています。
コミュニティとライセンス
Issueやプルリクエストが歓迎されており、ドキュメントはプロジェクト独自のドキュメントサイトでホストされています。プロジェクトはMITライセンスであり、利用およびセルフホストは無料であると説明されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.