画面を共有した瞬間、ハッチが黙った。
5秒くらい沈黙があって、それからこう言った。
ハッチの疑いは、もっともだった。
No-codeツールやLovableで作ったものは、見た目はきれいでも「モックアップ」の域を出ないことが多い。デモ用。スクリーンショット映え。でもログインの裏側にデータベースはなく、リロードしたらデータが消える。
僕が最初にLovableで作ったkicka.proもそうだった。見た目は完璧。でもそれは張りぼてだった。
kicka.pro — Lovable → Claude Code migration
- Authentication: Supabase Auth (email + Google OAuth)
- Database: PostgreSQL (Supabase)
- Hosting: Vercel (SSR)
- Status: Production deployed, real users can sign up
転機は、Claude Codeに移行したときだった。
Lovableが生成したコードをそのまま引き取り、Claude Codeで本物のバックエンドをつないだ。認証。データベース。API。デプロイ。1つずつ、「モック」を「プロダクト」に変換していった。
「本物」とは何か。僕なりの定義はこうだ。
URLを誰かに送れる。その人がアカウントを作れる。データを入力できる。ブラウザを閉じても、翌日開いたらデータが残っている。そしてそれが、僕のMacBookが閉じていても動き続けている。
ハッチが本気で驚いているのがわかった。画面越しでも。
彼はプロのエンジニアだ。10年のキャリアがある。データベースの設計も、認証の実装も、デプロイのパイプラインも、すべて自分の手で何百回とやってきた人間だ。
その人間が、2ヶ月前まで素人だった僕のプロダクトを見て「モックでしょ?」と聞いた。つまり、見た目のクオリティが「プロが作ったもの」と区別がつかなかったということだ。
そして中身を見せたら、さらに驚いた。モックじゃないと知って。
Production deployment successful URL: https://kicka.pro Build time: 42s Bundle size: 287KB (gzipped) Lighthouse score: Performance 94 / Accessibility 98 / Best Practices 100 / SEO 100
Lighthouseスコア。Performance 94。Accessibility 98。Best Practices 100。SEO 100。
この数字の意味を僕はまだ完全には理解していない。でもハッチが「これマジか」と呟いたから、いい数字なんだろう。
ハッチのその一言が、僕の中で何かを定義した。
僕はエンジニアになろうとしているんじゃない。プロダクトを作る人間になろうとしているんだ。そのために必要なのは、コードを書く能力ではなく、コードで何ができるかを理解し、それを組み合わせてプロダクトにする能力だ。
モックアップじゃない。これは本物だ。
そしてそれを作ったのは、コードを1行も手で書けない元人事だ。