SCP Foundation の記事をあなたの好みに合わせて推薦する Web アプリケーションです。 ハイブリッド推薦エンジン(ベクトル検索 + タグマッチング)により、読みたい SCP にいつでも出会えます。
- 無限スクロール形式の記事推薦(80% 好み / 20% セレンディピティ)
- SCP Wiki 原作テーマを再現した記事表示
- オンボーディングによる初期プロファイル構築
- お気に入り管理・閲覧履歴
- PWA 対応(ホーム画面に追加可能)
| レイヤー | 技術 |
|---|---|
| フロントエンド | Next.js 16 (App Router) |
| バックエンド | Hono (Vercel Functions) |
| DB | Supabase (PostgreSQL + pgvector) |
| キャッシュ | Upstash Redis |
| LLM | OpenAI (Embedding + タグ抽出) |
| モノレポ | Turborepo + pnpm |
| テスト | Vitest + Playwright |
| CI/CD | GitHub Actions + Vercel |
apps/
web/ # Next.js フロントエンド
api-server/ # Hono API サーバー
packages/
shared/ # 共通基盤(型定義・Embedding・検索)
pipeline/ # データパイプライン(クローラー・バッチ処理)
api-types/ # API 型定義(共有)
poc/ # PoC 検証スクリプト
supabase/
migrations/ # DB マイグレーション
- Node.js 20+
- pnpm 10+
- Supabase プロジェクト(ローカル or クラウド)
- OpenAI API キー
# 1. リポジトリをクローン
git clone https://github.com/Sn005/recommend-scp.git
cd recommend-scp
# 2. 依存関係をインストール
pnpm install
# 3. 環境変数を設定
cp .env.example .env
# .env を編集して実際の値を設定
# 4. 開発サーバーを起動
pnpm dev| コマンド | 説明 |
|---|---|
pnpm dev |
全アプリの開発サーバー |
pnpm build |
全アプリのビルド |
pnpm test |
全パッケージのテスト |
pnpm test:coverage |
カバレッジ付きテスト |
pnpm lint |
ESLint 実行 |
pnpm format |
Prettier フォーマット |
pnpm format:check |
フォーマットチェック |
pnpm type-check |
TypeScript 型チェック |
詳細なドキュメントは docs/README.md を参照してください。
SCP Foundation のコンテンツは CC BY-SA 3.0 ライセンスに基づきます。