Minecraftスピードランナー向けのポートフォリオ/設定共有アプリです。
Minefolio は、Minecraft スピードランナーが自分のプロフィールやプレイ設定を整理し、他の走者と共有するためのサイトです。
「どんな環境で、どんなキー配置で、どんな操作をしているか」を見やすく可視化し、学習・比較・自己紹介に使えることを目的としています。
主な利用シーン:
- 自分のプロフィールページを公開して、SNS で共有する
- 他の走者のキー配置・デバイス情報を参考にする
- サーチクラフトやリマップ設定を記録し、再現しやすくする
- 設定をプリセット化して、用途ごとに切り替える
- 公開プロフィールページ(
/player/:slug)を作成できます - 表示項目の例:
- 表示名 / MCID / 代名詞
- ロール(例: 走者)
- 一言(short bio)や自己紹介
- エディション、入力方法、プラットフォームなどのバッジ
- 公開/非公開設定に応じて一覧ページでの露出を制御します
- キーごとの操作割り当てを編集できます
- キー編集モーダルで、操作割り当て・リマップ・カスタムアクションをまとめて編集できます
- モーダル内の編集は即時反映ではなく、
保存を押した時点で確定します - 一括保存(
save-all)で各設定をまとめて更新します
- 複数リマップを登録できます
- 変更元キーは修飾キー組み合わせ(Ctrl/Shift/Alt/Meta)に対応します
- 変更先は以下の3種で扱います:
- キー(Web
KeyboardEvent.code判定) - 文字
- 無効化
- キー(Web
- プレースホルダー文字列(
__character__など)は保存時に無効化されるよう保護しています
- 任意のアクション名・説明・カテゴリを持つアクションを作成できます
- トリガーは通常キー・修飾キー組み合わせに対応します
- 専用タブだけでなく、キー編集モーダルからも追加・編集できます
- 検索文字列と入力キーを対応づけて表示できます
- リマップを考慮した表示に対応しています
- 修飾キーはマーク表示(例:
◆⇧⌥◇)で視認性を高めています
browse:- 走者一覧、フィルタ、ソート、ページネーション
- 検索は検索ボタン押下時に実行
- ローディング表示は結果エリアのみ
keybindings:- 走者ごとのキー配置/マウス設定比較
- 検索は検索ボタン押下時に実行
- ローディング表示は結果テーブル領域のみ
- 現在設定をプリセットとして保存できます
- プリセットの複製・復元に対応しています
- 必要な設定単位(キー配置、リマップ等)でコピー可能です
/: ホーム(フィード)/browse: 走者一覧/keybindings: キー配置一覧/player/:slug: 公開プロフィール/me/*: 自分の設定管理(編集・キー配置・プリセット など)
- 認証ユーザーは自分の設定を編集可能
- 一覧系は公開プロフィールを対象に表示
- 非公開プロフィールは一覧検索に出ない想定です
- React 19 + React Router 7
- TypeScript
- Tailwind CSS 4
- Drizzle ORM
- better-auth
- libSQL(Turso)/
@libsql/client
pnpm install.env.example をコピーして .env を作成し、値を設定してください。
cp .env.example .env主な環境変数:
TURSO_DATABASE_URLTURSO_AUTH_TOKENDISCORD_CLIENT_IDDISCORD_CLIENT_SECRETBETTER_AUTH_SECRETAPP_URLTWITCH_CLIENT_IDTWITCH_CLIENT_SECRETYOUTUBE_API_KEYLEGACY_API_URL(任意)CRON_SECRET(必要な環境のみ)
TURSO_DATABASE_URL 未設定時は file:local.db が使われます。
pnpm devデフォルト: http://localhost:5173
# 開発
pnpm dev
# ビルド / 実行
pnpm build
pnpm start
# 型チェック / テスト
pnpm typecheck
pnpm test
pnpm test:ui
pnpm test:coverage
# DB(Drizzle)
pnpm db:generate
pnpm db:migrate
pnpm db:push
pnpm db:studio