No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
上司に言いにくい報告・相談を、相手のタイプとこれまでの実績に合わせた言い方に翻訳する、会社員向けの Web アプリです。 プロトタイプ(docs/honne-translation-app.prototype.jsx)をベースに、Supabase の認証・データ保存と Claude API の呼び出しを組み込み、Vercel で公開できる形にしています。 パソコンは不要です。 スマホのブラウザだけで、Supabase・Vercel・Anthropic の3つの管理画面を触れば公開まで到達できます。以下の手順もその前提で書いています。Read the full README ↗
上司に言いにくい報告・相談を、相手のタイプとこれまでの実績に合わせた言い方に翻訳する、会社員向けの Web アプリです。
プロトタイプ(docs/honne-translation-app.prototype.jsx)をベースに、Supabase の認証・データ保存と Claude API の呼び出しを組み込み、Vercel で公開できる形にしています。
パソコンは不要です。 スマホのブラウザだけで、Supabase・Vercel・Anthropic の3つの管理画面を触れば公開まで到達できます。以下の手順もその前提で書いています。
順番が大事です。Supabase → Vercel → Supabase に戻る の流れで進めます。Vercel の URL が決まらないと Supabase の設定が完了しないためです。
Northeast Asia (Tokyo)supabase/schema.sql の中身を全部貼り付けて Runboss_profiles と outcome_records が並び、どちらにも緑の RLS enabled バッジが付いていることを確認Settings → API Keys と Settings → Data API から2つ取得します。
| 必要なもの | 場所 | 正しい形 |
|---|---|---|
| Project URL | Settings → Data API | https://xxxxx.supabase.co |
| 公開キー | Settings → API Keys → Publishable and secret | sb_publishable_... |
⚠️ Project URL に
/rest/v1/を含めないこと。 Data API の画面には REST エンドポイント(https://xxxxx.supabase.co/rest/v1/)も並んで表示されていますが、それは別物です。付けたまま登録すると、ログイン時にInvalid path specified in request URLで失敗します。.coで終わらせてください。
⚠️
sb_secret_.../service_roleキーは絶対に使わないこと。 RLS をすべて無視できる管理者キーです。
Project URL が見つからないときは、ダッシュボードのアドレス https://supabase.com/dashboard/project/<ここがプロジェクトID>/... から https://<プロジェクトID>.supabase.co を組み立てても構いません。
sk-ant-... をコピーして控えるAPI の利用料は Claude の有料プランとは別会計です。 残高がゼロだと候補生成だけが失敗するので、Console の課金画面でクレジットを購入するか支払い方法を登録してください。
| Key | Value | Type |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://xxxxx.supabase.co | Config |
NEXT_PUBLIC_SUPABASE_ANON_KEY | sb_publishable_... | Config |
ANTHROPIC_API_KEY | sk-ant-... | Secret |
⚠️
NEXT_PUBLIC_で始まる変数は Type をConfigにすること。 これらはブラウザに埋め込まれる公開値なので、SecretにするとEnvironment variables with a public framework prefix cannot use visibility: secretと表示されて保存できません。しかも保存済みの Secret を後から Config に変更することはできないため、その場合は一度削除して作り直す必要があります。逆にANTHROPIC_API_KEYは本物の秘密なので Secret のままにします。
Ready になったら Domains に出ている https://xxxxx.vercel.app を控えるAuthentication → URL Configuration に、5 で得た URL を設定します。
| 項目 | 値 |
|---|---|
| Site URL | https://honne.misop-craft.com |
| Redirect URLs | https://honne.misop-craft.com/** |
独自ドメインを使わない場合は、Vercel が割り当てた
https://xxxxx.vercel.appを入れてください。
さらに Authentication → Sign In / Providers → Email の Confirm email をオフにしておくと、登録がその場で完了して確認が楽になります(本番運用時は戻してください)。
パスワード再設定のリンクもこの Redirect URLs を通ります。末尾を
/**にしておけば/auth/callbackも含まれるので、追加の設定は要りません。
Supabase が送るメールは初期状態だと英語で、どのアプリからのメールか分かりません。日本語の文面を docs/email-templates.md に用意してあります。ただし無料プランで標準のメール送信を使っているあいだは編集できないので、先に外部 SMTP の登録が必要です。詳しくは同ファイルを参照してください。
Vercel の URL を開いて、上から順に確認します。
Chrome の「︙」→「ホーム画面に追加」でアプリのように起動できます。
No Output Directory named "public" found after the Build completed.
Vercel がこのプロジェクトを Next.js だと認識していません。リポジトリに vercel.json({"framework": "nextjs"})を置いてあるので通常は起きませんが、もし出た場合は Vercel の Settings → Build and Deployment → Framework Preset が Next.js になっているか確認してください。
Vercel の設定画面がスマホで見つからないときは、プロジェクトの URL の末尾に
/settingsや/settings/environment-variablesを足して直接開くのが早いです。
| 表示されるもの | 原因 |
|---|---|
Invalid path specified in request URL / 接続先の設定が正しくないようです | NEXT_PUBLIC_SUPABASE_URL に /rest/v1/ などの余計なパスが付いている |
Invalid API key | NEXT_PUBLIC_SUPABASE_ANON_KEY が違う値(Project URL と取り違えているなど) |
| ログイン後すぐログイン画面に戻る | 手順6の URL Configuration が未設定 |
| メールが届かない | 迷惑メールを確認。無料プランは送信数に制限があるため、Confirm email をオフにするのが早い |
| 再設定リンクを開くと「リンクの有効期限が切れています」 | リンクの期限切れか、メールを開いたブラウザが送信時と違う。スマホでは、メールアプリが自分の内蔵ブラウザで開いてしまうことがあるので、リンクを長押しして Chrome で開く |
環境変数を直したら、必ず再デプロイしてください。 値はビルド時にアプリへ埋め込まれるため、保存しただけでは反映されません(Deployments → 最新の「…」→ Redeploy)。
Claude API 側の問題です。Anthropic Console の残高と、ANTHROPIC_API_KEY の有効期限を確認してください。キーの期限が切れている場合は、新しく作り直して Vercel の環境変数を更新 → 再デプロイします。
無料プランは一定期間アクセスがないとプロジェクトが一時停止します。ダッシュボードの Restore から復帰できます。
パソコンがなくても、次の流れで開発を続けられます。
main に push されるこのリポジトリには、このアプリ以外のものも入っています。
| フォルダ | 中身 | 公開先 |
|---|---|---|
ルート(app/ components/ など) | このアプリ | Vercel |
caramel-just-meet/ | カラメル乗せゲーム | Cloudflare Pages |
misop-craft-site/ | misop-craft.com のトップページ | GitHub Pages |
他のフォルダだけを変更した push では、Vercel はビルドしません。vercel.json の ignoreCommand で判定しています。
このとき Vercel の画面には「Skipped」と出ますが、**失敗ではありません。**このアプリに関係のない変更だったという意味です。
判定しているのは、直前のコミットと比べて、
caramel-just-meetmisop-craft-site.github以外に変更があったかどうかです。両方に変更がある場合はビルドされます。
This is the beginning of the README. Read the rest at the original. Read the full README ↗