もう、公開したい。 URLにして、友達や同僚に使ってもらいたい。
前回で、出していいものと出してはいけないものの線が引けました。 公開の手前の関所は、もう通れます。
そうなると、自然に湧いてくるはずです。 自分のPCの中だけじゃなく、ホームページとして開ける形にしたい。 LINEで送って、別の人のスマホで実際に触ってもらいたい。
この欲求が、今日の主役です。 このレッスンが終わると、あなたの物は「自分のPCの中でだけ動く試作」から「公開URLができて、別の人がそのURLから実際に使える道具」に変わります。
ただし今日は、手順を全部は出しません。 最後の卒業回です。 条件リストだけを見て、自分で公開までやり切ってもらいます。
前回までに、どこまで育ったか
まず、ここまでに何が育ったかを思い出します。
前回、点数の記録がデータベースに残るようになりました。 閉じても消えない。
その前に、公開前のチェックも覚えました。 鍵が表に出ていないか、見せてはいけない情報が混ざっていないか。 それを自分で見る癖です。
弱点ドリルを育てている人なら、こうです。 解いた点数がSupabaseというDBに残るようになり、公開前に鍵や患者情報の混入を自分で見る目を持った。
別の物を育てている人も同じです。 記録も残るし、公開前チェックの目も持っている。 でも、まだ一つだけ、決定的にできないことが残っています。
自分のPCの中でしか、動いていない
その「できないこと」は、これです。
ここまでの物は、よくできています。 動く。 記録も残る。 でも、ぜんぶ「自分のPCの中」でしか動いていません。
友達に「これ使ってみて」と言っても、渡せない。 相手を自分のPCの前に呼んでくるしかない。 LINEで送れるものが、何もないんです。
弱点ドリルなら、こうです。 同期の研修医に「これ解いてみて」と言いたいのに、渡す手段がない。 自分の机の上だけで動く試作品の状態です。
動くことは確認できた。 でも、外の人が使える窓口が、まだ開いていません。
窓口を開く作業を、横文字で「デプロイ」、日本語で「公開」と言います。 今日やるのは、これです。 あなたが育てた物を、今日、URLにして外に出す。 それが終わって、初めて人に渡せます。
今日のゴールと、任せ方
今日身につける普遍スキルは、3つです。
- 自分の物を公開URLにする。
- ローカルでは動いたのに公開先では止まる段差を、自分で越える。
- 別の端末と別の人の手で、実際に動くところまで確認する。
弱点ドリルを育てている人なら、具体例はこうです。 Vercelで公開して、URLを作る。 そのURLをスマホで開く。 同期や友達に1問だけ解いてもらい、記録まで通るかを見る。
別の物を育てている人も、形は同じです。 ゲームなら、スマホで遊べるか。 自分用の小さなアプリなら、別の端末で同じように使えるか。 題材は変わっても、公開して人に渡す動作は変わりません。
今日の任せ方の目盛りは、真ん中より少し右です。
Vercelへの接続、公開の準備、エラーの読み解きは、AIにかなり任せていい。 でも、鍵をどこに入れるか。 出していい情報か。 本当に人に渡していい状態か。 そこは人間が握ります。
作った物を公開URLにして人に渡せるようにするデプロイ先。無料枠あり。

ステップ1。公開前チェックを、もう一度通す
まず、前回の関所をもう一度通します。
ここを飛ばして公開しません。 公開できることと、出していいことは別です。
確認するのは、前回と同じ3つです。
- 鍵やパスワードが、公開コードに直書きされていない。
- PHIや院内情報が、保存にも表示にも混ざっていない。
- 公開後に、他人が勝手に記録を書き換えられない。
弱点ドリルなら、問題文も履歴もダミーにします。 氏名、ID、具体的な受診情報は入れません。 表示するのは、架空の問題、架空の日付、架空の点数だけです。
別の物なら、自分の題材に置き換えてください。 家計簿なら口座やカード情報を出さない。 ゲームならAPIキーや個人アカウントを出さない。 迷ったら出さない。
手を動かす
あなたが育てている物に、公開前チェックを1周だけ当ててください。
やることはひとつです。 鍵と見せてはいけない情報の混入がゼロか、自分で判定する。
ゼロだと自分で言えたら、次に進みます。 言えないなら、今日はまだ公開しません。 公開前に止まれたこと自体が、正しい判断です。
ステップ2。公開前に、UIとUXを最後に整える
次に、見た目を最後に整えます。
ここでやるのは、かっこよく飾ることではありません。 人に渡したときに、最初の10秒で迷わない状態にすることです。
弱点ドリルなら、最低限見るのは3つです。
- 何の画面か、最初に分かる。
- 次に押すボタンが、すぐ分かる。
- これは学習用のダミーで、PHIを含まないことが分かる。
別の物でも同じです。 公開前のUIとUXは、最後の身だしなみです。 本質は、相手に余計な迷いを渡さないことです。
Claude Codeには、こう頼めます(右上のボタンでコピーできます)。
公開前の最終確認として、初めて開いた人が迷わないようにUIを整えてください。
ただし機能は増やさず、タイトル、説明、最初に押すボタン、スマホでの見やすさだけを整えてください。
患者情報や鍵は表示しないでください。
ここでも、AIの出力をそのまま通しません。 ボタンが増えすぎていないか。 説明が長すぎないか。 スマホで押しにくくないか。 自分の目で見ます。
手を動かす
あなたが育てている物を、スマホ幅の画面で開いてください。
初めて見る人が、どこを押せばいいか分かるか。 1画面目に、見せてはいけない情報がないか。 まず、この2つだけ見ます。
足りなければ、AIに「機能は増やさず、初見で迷わないように整えて」と頼みます。 ここは小さく直します。 大改造はしません。
ステップ3。Vercelで公開URLを作る
ここから、いよいよ公開します。
Claude Codeに、こう頼みます(右上のボタンでコピーできます)。
この物をVercelで公開したいです。
いまのプロジェクトを確認して、公開URLを作るまでの手順を案内してください。
私が画面で操作する部分と、あなたがコマンドでできる部分を分けて教えてください。
ここで大事なのは、全部をAIに投げないことです。
AIは、コードや設定を読めます。 どのコマンドを打つかも提案できます。 でも、Vercelのアカウント画面で何を許可するか。 どのプロジェクトを公開するか。 どの鍵を登録するか。 そこはあなたの手で確認します。
Vercelで公開が進むと、公開URLができます。
たとえば、weakpoint-drill.vercel.app のようなURLです。
画面上では、まずVercelの New Project でGitHubリポジトリを探します。

候補が出たら、公開したいリポジトリの Import を押します。


公開URLが出たら、まずPCで開きます。 画面が出れば、第一段階は通過です。
でも、まだ合格ではありません。 ここからが、今日の段差です。
ステップ4。まず、段差をわざと踏む
ここで、私がわざと一回失敗してみせます。 今日いちばん大事な「段差」を、先に目で見てもらうためです。
Claude Codeに、こう頼みます(右上のボタンでコピーできます)。
この物をVercelで公開してください。
公開用のURLを作って、教えてください。
URLは出ました。 開いてみます。 画面は出る。 でも、記録が絡む動きをさせると、エラーになります。
弱点ドリルなら、問題を解いて点数を記録しようとした瞬間にエラーです。
ここが今日の山です。 なぜこうなるか。
ローカル、つまり自分のPCの中には、.env.local という鍵を書いた紙が置いてありました。
DBに繋ぐための鍵です。
ところがこの紙は、自分のPCの中だけのもので、公開先のVercelには引っ越していません。 だから公開URLは、鍵を持たないまま外に出てしまった。 画面は出るのに中身が動かない、という段差です。
これは、AIが勝手に解決できない部分です。 あなたの鍵を、あなたのVercelの設定画面に、あなたが登録する。 これが「AIが触れない2割」の正体です。
Karpathyさんが話している感覚にも近いです。 コードを書くのは一瞬でも、それを本当に世に出す最後の地味な接着作業に時間を取られる。 8割は速いのに、残り2割が本番だった、という話です。
視点
今日の核心:残り2割が本番
AIは、コードを書くのも公開の手順を出すのも速い。でも、鍵をどこに入れるか、出していい情報かを判断し、本当に人に渡していい状態かを確かめる最後の2割は、人間にしか握れません。この2割の接着作業を自分の手でやり切ることが、デモを「本当に使える物」に変えます。
手を動かす
あなたが育てている物を、いま私がやったのと同じように、一度わざとエラーにしてみてください。
Claude Codeに「Vercelで公開してURLを教えて」と頼みます。 公開URLを開きます。 記録が絡む動きのところで、一回エラーになるところまでやります。
やることは一つだけです。 公開して、URLを開いて、エラーを自分の目で見る。
直すのは、まだです。 直し方は、このあとで扱います。
できたらの目印は、エラーを自分の目で見たら。 その段差を踏めたら、次に進みます。
ステップ5。その段差を、自分で越える
段差は踏めましたか。 では越え方です。
Claude Codeに、こう頼みます(右上のボタンでコピーできます)。
ローカルの .env.local に書いてある鍵を、Vercel側にも登録したいです。
どの値を、Vercelのどこに入れればいいか、手順を教えてください。
鍵の中身はここには出さないでください。
AIが手順を出します。 ここで自分の目で検証します。 見るのは3つです。
一つ、作りとして正しいか。 ローカルにあった鍵と同じ名前、同じ値を、Vercel側に入れる案内になっているか。 名前が一文字でも違うと繋がりません。
二つ、使い方に合っているか。 登録したあと、もう一度公開し直す案内まで入っているか。 鍵を入れただけでは反映されません。
三つ、安全か。 ここが肝心です。 AIが「鍵の中身を画面に貼り付けて見せましょうか」と言ってきても、それはしない。 鍵は画面共有にも、チャットの履歴にも残さない。
AIは、これが公開していい情報か、隠すべき鍵かを、自分では判断できません。 そこを止めるのが、人間の仕事です。
登録して、公開し直します。 同じURLを開きます。 今度は、記録まで通りました。 段差を越えました。
ここまでで、わざと外した失敗を一回、自分の検証で見つけて直す、という流れを通りました。 AIが言ったから正しい、ではありません。 自分の目で見ます。
手を動かす
あなたの公開URLで、記録まで通るか確認してください。
ドリルなら、1問解いて、点数や履歴が残るかを見ます。 ゲームなら、スコアや状態が最後まで動くかを見ます。 別のアプリなら、そのアプリのいちばん大事な操作を1回通します。
エラーが出たら、エラー文をそのままAIに貼って聞きます(右上のボタンでコピーできます)。
この公開URLで、このエラーが出ました。
ローカルでは動いています。
Vercel側の環境変数や再デプロイの観点で、何を確認すべきか教えてください。
聞くときも、鍵の中身は貼りません。 エラー文と状況だけを渡します。
ステップ6。別端末で開き、人に使ってもらう
ここからが、今日のミニボスです。 手順は、もう出しません。 条件リストだけ見せます。
ここまで教えたスキルだけで、越えられます。 新しいことは要りません。
満たすべき条件は、これです。
- あなたの物が、公開URLで開ける。
- そのURLで、記録まで動く。
- 別の端末で、そのURLを開いて、実際に使える。
- 公開前チェックを通している。鍵が表に出ていない。見せてはいけない情報が混ざっていない。
まずは、自分のスマホで開いてください。 同じURLを入力するか、QRコードやメッセージで送って開きます。
次に、信頼できる友達や同僚に、短く渡します。
「これ、1問だけ解いてみて」
それで十分です。 長い説明はいりません。 相手が開いて、迷わず1問進められるか。 そこを見ます。


ドリルを育てている人なら、ここがいちばん嬉しい瞬間です。 同期の研修医にURLを渡して、自分のスマホで1問解いてもらう。 そこまで持っていきます。
自分が育ててきた物を、人が自分のスマホで触ってくれた。 この一瞬が、このコースの山場です。
できたらの目印は、別の端末で、そのURLから実際に使えたら。 ゲームを育てている人ならスマホでそのゲームが遊べたら。 自分のアプリなら別の端末でそれが動いたら。 合格です。
手を動かす
この4条件を、あなたが育てている物で満たしてください。
さっき私がやった流れを思い出しながら、Claude Codeに頼んで、自分で公開までやり切る。 詰まったら、エラーの文章をそのままAIに貼って「これはどういう意味か、何を直せばいいか」と聞けばいい。
ここで一度、自分の手で試してください。
開けましたか。 私のスマホでも、PCで作った物が、何もインストールせずに開いて、ちゃんと動いています。
これが「本当に動く」ということです。
ステップ7。works.all()まで見る
ここで、works.all() という言い方を覚えてください。
デモは一回動けばいい。 でもプロダクトは、別の端末でも、別の人の手でも、毎回動く。
一回どこかで動いた works.once() ではなく、いつ誰がやっても通る works.all() の状態です。
今日は、そこまで来ました。
ただし、works.all() は一度だけの確認ではありません。
公開したあとも、最低限は同じ流れをもう一度通します。
- PCで開く。
- スマホで開く。
- 1回操作する。
- 記録まで通る。
- 出してはいけない情報が見えていない。
この5つを、公開のたびに見ます。 面倒に見えますが、慣れると数分で終わります。
AIに「公開できました」と言われたところで終わらせない。
自分の手で works.all() を確認する。
これが今日の卒業条件です。
出していい状態か、もう一度疑う
ここで一度、頭を使ってもらいます。
いまあなたの公開URLは、本当に人に渡していい状態でしょうか。
確認すべきは2つです。
一つ、公開した画面のどこにも、鍵や接続情報が出ていないか。 二つ、中身が学習用や試作用のダミーだけで、見せてはいけない情報が一文字も入っていないか。
ここで一度疑ってください。 AIが公開できたと言ったから安全、ではありません。
公開できることと、出していいことは、別です。 動いた、と、出してよい、を分けて見る。
医療者なら、これは鑑別を一個で確定させない、あの慎重さと同じ動作です。
注意
ここだけは守る:公開していい物だけを公開する
公開していいのは、学習用や試作用の物だけです。患者情報はゼロ、鍵は表に出さない。これを自分で判定してから出します。URLを人に渡した瞬間、相手も巻き込みます。公開できたからといって、実際の院内業務にそのまま持ち込むのは別の話です。本番で施設の業務に使うなら、必ず施設のルールを確認してください。カルテには繋ぎません。
今日の成長差分
今日の成長差分です。
前回までは、あなたの物は自分のPCの中でしか動かなかった。 人に渡すには、その人を自分の机に呼ぶしかなかった。
今日は、公開URLができて、別の端末から、実際に使えた。 友達にLINEでURLを送れば、その人も自分のスマホで使える。
この差分に名前をつけます。 机の上の試作が、外に開いた窓口になった。 これが、今日登った景色です。
この感覚は、かなり強いです。 自分の中で動いていたものが、相手の手の中で動く。 そこで初めて、作ったものが自分の外に出ます。
補足
今日持って帰るもの
公開とは、机の上の試作を「外に開いた窓口」に変える作業です。最後の2割、つまり鍵の登録と「出していいか」の判定は、AIではなくあなたが握る。公開のたびに works.all() を自分の目で通すこと。これが、デモを人に渡せる道具に変える芯です。
卒業ゲート
ここは卒業ゲートです。 2つの条件を、自分で満たせたか確認してください。
一つ、公開前チェックを通して、鍵と見せてはいけない情報の混入がゼロだと自分で判定できた。
二つ、友達、あるいは別の端末が、その公開URLから実際に使えた。
ドリルを育てている人なら、こう読み替えます。 鍵と患者情報の混入がゼロだと自分で判定できた。 同期、あるいは別の端末が、そのURLから実際に1問解けた。
この2つにチェックが入って、卒業です。
手順をなぞって動かしたのではなく、条件だけ見て自分で越えた。 その2割の接着作業を、自分の手でやり切ったことが、今日いちばんの収穫です。
安全ライン
今日の安全ラインを、一点だけ。
公開していいのは、学習用や試作用の物だけです。 見せてはいけない情報はゼロ。 鍵は表に出ていない。 それを自分で判定してから出す。 これは一度きりの確認ではなく、公開のたびに通す関所です。
そして、ここからは「渡した相手を守る線」にもなります。 自分の試作なら自己責任で済みますが、URLを人に渡した瞬間、相手も巻き込みます。 だから出す前に、必ずチェックを通す。
医療者向けに一点だけ補足します。 公開できたからといって、これを実際の院内業務にそのまま持ち込むのは、また別の話です。 本番で施設の業務に使うなら、必ず施設のルールを確認してください。 今日作ったのは、あくまで自分の学習用ドリルです。 患者情報はゼロ。 カルテには繋がない。
問い
つまずいたら
このレッスンの作業で起きがちな詰まりと、その抜け方です。
- 公開URLは開けるのに記録の動きでエラー → ローカルの
.env.localの鍵がVercelに登録されているか、注文書(同じ名前・同じ値)と設定画面を見比べる。入れたあと再デプロイしたかも確認する。 - ローカルでは動くのに公開先だけ止まる → エラー文と「ローカルでは動く」という状況だけをそのままAIに貼り、環境変数と再デプロイの観点で何を見るか聞く。鍵の中身は貼らない。
- 別の端末でURLが開けない → URLを一文字ずつ見直すか、自分のスマホに送って開き直す。開けた端末と開けない端末の違いを書き出してAIに渡す。
理解度チェック
セルフチェック
1. 公開URLは開けたのに、記録が絡む動きでエラーになりました。原因として説明されたのは何ですか。
2. このレッスンで言う「AIが触れない2割」「残り2割が本番」とは、どういう意味ですか。
次回へ
今日できたこと。 育てた物を公開URLにして、人に使ってもらえるようにした。
これは、このコースの感情の山場でした。 自分の手で作った物を、別の誰かが、別の端末で、実際に使った。 その手応えを、今日たしかに掴んだはずです。
でも、ここまで来ると、また新しい欲が湧いてきます。 公開できて、人に使ってもらえた。 次は、もっと賢く動いてほしい。
弱点ドリルなら、こうです。 問題が出る順番は、いまも全部こちらが手で決めている。 昨日どこを間違えたか、ドリルは覚えていない。 毎回、次に何を出すか自分で考えるのが、だんだん面倒になってくる。
その「毎回手で考えるのが面倒」という気持ちが、次の入口です。 次回は、そこを解きます。