ChatGPT+Cursorで作るWEBアプリ入門(Firebase × Tailwind編)第1回
はじめに
この記事では、ChatGPTでコードを設計・生成し、Cursorで編集&プレビューしながら、最小構成のWebアプリを作る方法を紹介します。
データ保存には Firebase(Firestore)、デザインには Tailwind CSS を使用。サーバー構築やnpm設定なしで、HTML1枚から始められます。

同じ要領でLP作成もできますよ!
全体像(3ステップ)
- UI雛形を作る:ChatGPTに「HTML+Tailwind」で初稿を生成し、Cursorでプレビュー
- ローカルで動かす:フォーム入力・一覧表示・保存をlocalStorageで実装
- クラウド同期:Firebase(匿名認証+Firestore)でどの端末からもアクセス可能に
ChatGPTとCursorの役割分担
ChatGPT(設計と初稿生成)
ChatGPTは構成設計とHTMLコード生成を担当します。要件を伝えるだけで、フォーム・一覧・モーダル構造を自動生成可能。
プロンプト例:
Tailwind CSSで、タイトル・メモ・評価(1〜5)の入力フォームと一覧を持つWebアプリをHTML1ファイルで作成してください。
dialogモーダルで新規追加/編集、検索・並び替え機能も実装。データはlocalStorageに保存。
このプロンプトを工夫するだけでLPやWEBアプリのたたき台は完成!すごい時代です!
Cursor(実装とプレビュー)
- ライブプレビューで即表示確認
Cmd/Ctrl + KでAI修正指示(例:「この部分の背景をグラデーションに」)
Firebase × Tailwind を選ぶ理由
Firebaseとは?
FirebaseはGoogle提供のサーバーレス型バックエンド。認証・DB・ストレージ・ホスティングを数行のコードで扱えます。今回使うのは以下の2つ:
- Authentication(匿名認証):ログイン不要でユーザー識別(UID発行)
- Firestore:NoSQLのクラウドデータベース
メリット:サーバー構築不要/リアルタイム更新(onSnapshot)/無料枠で学習に十分
注意点:セキュリティルール必須(UIDでアクセス制限)/serverTimestamp() は確定まで未定義になりうる
Tailwind CSSとは?
TailwindはユーティリティファーストCSS。px-4 や rounded-lg などのクラスをHTMLに並べるだけで素早く整ったUIが作れます。
- CSSファイル不要、HTML内で完結
sm:md:lg:でレスポンシブ調整が簡単theme.extend.colorsでブランドカラーを定義可能

この辺はやりながら覚えていくしかないです。焦らず進みましょう。
実装手順
ステップ1:雛形を作る(HTML1枚)
- Cursorで新規フォルダ作成 →
index.htmlを追加 - ChatGPTで生成したHTMLを貼り付け
- Tailwind CDNを読み込む:
<script src="https://cdn.tailwindcss.com"></script>構成例:ヘッダー(タイトル+追加ボタン)/検索フォーム/一覧(カード)/<dialog> モーダル(新規・編集)/JSで追加・編集・削除・検索・並び替え。
まずは localStorage で保存して「画面が動く」を体験。
ステップ2:Firebaseの準備
1. プロジェクト作成
- Firebase Console で「プロジェクトを作成」
- Analyticsは不要でもOK
2. 匿名認証を有効化
- 左メニュー Build → Authentication を開く
- 上部タブ Sign-in method → Anonymous を有効化
3. Firestoreを作成
- 左メニュー Firestore Database → 「データベースを作成」
- エディション:Standard、リージョン:asia-northeast1(東京) 推奨、モード:本番
4. Firestoreルール設定
Firestoreの「ルール」タブに以下を貼り付けて公開:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/data/{docId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}5. Firebase設定をコピー
- プロジェクト設定 → 「マイアプリ」 → 「</> Webアプリを追加」
- 表示された
const firebaseConfig = {...}をコピーし、index.htmlの初期化部分に貼り付け
ステップ3:クラウド同期を実装
匿名ログインとデータ構造
signInAnonymously(auth);
// Firestore ドキュメント構造(例)
// users/{UID}/data/{docId}Firestoreの基本操作
- 追加:
addDoc() - 更新:
updateDoc() - 削除:
deleteDoc() - リアルタイム更新:
onSnapshot()
並び順の安定化(createdAt)
const toMs = (ts) => ts?.toMillis ? ts.toMillis() : (ts?.seconds ? ts.seconds*1000 : 0);
arr.sort((a,b) => toMs(b.createdAt) - toMs(a.createdAt));UID未取得時の安全処理
if (!uid) {
alert("初期化中です。数秒後にお試しください。");
return;
}モーダル操作(閉じる)
dlgCloseX.onclick = () => dlg.close();
dlgCancel.onclick = () => dlg.close();よくあるエラーと対処法
| 状況 | 原因・対処 |
|---|---|
| 画面が真っ白 | firebaseConfig 未貼り付け、コンマ抜け。ブラウザ開発者ツールのコンソールを確認。 |
| Permissionエラー | 匿名認証が無効、またはルール未設定。設定を再確認。 |
| 並び順が崩れる | serverTimestamp() 未確定状態(正常)。確定後に安定。 |
Firebase × Tailwind の発展応用
Firebaseでできる拡張
- Storage:画像アップロード
- Hosting:WebアプリをURLで公開
- Google認証など他方式への拡張
Tailwindでできる拡張
- カスタムテーマ:ブランドカラーを統一
- 共通UI部品:カード/バッジ/ボタンを再利用
- リスポンシブ:
sm:md:lg:で最適化
まとめ
- ChatGPTで設計と初稿を生成、Cursorで即実装
- Tailwind CSSでデザイン、Firebaseでデータをクラウド化
- HTML1枚で完結しつつ、サーバー不要の実用アプリを構築
最初の一歩は「UIを作って動かす」。次の一歩は「localStorage → Firestore」へ切り替える。これで立派なWebアプリ開発者です。

今回はここまで!次回はもう少し進みます。復習して大まかに理解しておきましょう!
チェックリスト
- [ ] ChatGPTでUIコード生成
- [ ] CursorでHTML貼り付け・動作確認
- [ ] localStorageでデータ保持
- [ ] Firebase匿名認証を有効化
- [ ] Firestore作成&ルール設定
- [ ]
firebaseConfigを貼り付けて同期確認
