1つのサイトを育てながら、フロント・バック・DBを見る
コードは1行も書きません。見るのは「ファイルがどこにあるか」だけです
2.1.261 / Next.js(create-next-app) / Rails 8.1.3.1
Claude Code に一言頼んで作らせた、この2ファイルが出発点です。
$ claude -p "コーヒー屋さんの簡単な紹介サイトを1ページ作って"
$ ls
index.html style.css
店名も、文章も、配色も、こちらでは1文字も指定していません
index.html を渡すこの「ファイルを渡してくれるパソコン」が、サーバーです。
特別な機械ではありません。
$ claude -p "このフォルダのHTMLを返すサーバーを立てて。ポートは8000で。"
サーバー立てた。http://localhost:8000 でアクセスできる。
localhost は「自分自身」という意味の住所。
いま、このパソコンがサーバーです。
localhost は自分にしか通じないだから24時間ついているパソコンを借りて、そこに置く。
レンタルサーバーも Vercel も、呼び方が違うだけです。
$ claude -p "いいねボタンを足して"
$ ls
app.js index.html style.css
押すと 1、2、3 と増える。でも開き直すと 0 に戻る。
数えているのはブラウザ。ブラウザは開き直したら忘れます
$ ls -R
.:
backend frontend
./backend: likes.json server.js
./frontend: app.js index.html style.css
frontend = 見せるほう(フロントエンド)
backend = 数えて覚えるほう(バックエンド)
起きたことは「フォルダが2つになった」、それだけです
localhost:3000 → コーヒー屋のページlocalhost:3000/api/likes → {"likes":3}見た目も飾りもなくて、数字だけ。
これがプログラム向けの入口=API です。
$ cat backend/likes.json
{"likes":3}
数を1つ覚えるならこれで十分。
でも会員1万人の名前と注文と在庫は、1枚のメモでは探せません。
だから専用の帳簿に替える = データベース。「テーブルを作ります」= その欄決め
$ ls -R app
app: api globals.css layout.tsx page.tsx
app/api/likes: route.ts
page(見せるほう)と api(受けるほう)が、同じ家の中に並んでいる。
これがフレームワークです。
Claude が「Next.js で作りますね」と言うのは、③を選んだということ。
$ ls app # Ruby on Rails
assets controllers helpers jobs mailers models views
views が見せる、controllers が受ける、models が帳簿とやり取りする。
誰が作っても同じ間取りになります。
AI に書いてもらうときは、決まっているほうが話が早い
この全部を借りたパソコンの上に載せる。それが「公開する」ということ。
「動きません」より「開き直すと消えます」のほうが、一発で直ります。
コーヒー屋はファイル2個から始まって、最後は家ごと引っ越しました。
でも、住んでいる係は3つのままでした。
「テーブルを足しますね」「フロント側を直しますね」と言われたときに、
ああ、あそこの話だなと分かる。それだけで十分です。
Keyaki Labs / 記事全文は note・keyaki-labs.com で公開しています