2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラミング初心者の私がGithub CopilotでWebサービス「Gimmy」を作ってみた

Last updated at Posted at 2025-11-14

はじめに:「プログラミングできないけど、作りたいものがある」

はじめまして。この記事を書いている時点での私のプログラミング経験は「CSSの微調整ができる程度」です。

2025年4月、ふと思ったんです。
「AI時代になって、タイムリーな情報か専門的な情報じゃないとブログ読まれなくない?」

そこから「じゃあ、AIに質問したやり取りを共有できるプラットフォームがあったら面白いのでは?」というアイデアが生まれました。その時のChatGPTとの会話です。

当時の私は授業でC言語やPythonを習いましたが、0からコードを書くことはできないレベル。でも、AIを使えば作れるかもと思いました。

作ったもの:Gimmy(ギミー)

スクリーンショット 2025-11-14 174701.png
スクリーンショット 2025-11-14 160340.png
スクリーンショット 2025-11-14 160407.png

Gimmy: https://www.gimmy.jp/

コンセプト

匿名でAIに質問し、その質問と回答を他のユーザーと共有できるWebアプリです。「AIとの会話をアーカイブとして残したい」「他の人がどんな質問をしているか見たい」というニーズに応えるサービスを目指しました。

匿名性を採用した理由

サービス設計において匿名性を重視したのは、以下のような利点があると考えたためです:

  • 心理的ハードルの低減: 実名やアカウント情報を登録する必要がないため、初歩的な質問や些細な疑問でも気軽に投稿できます。「こんなこと聞いて恥ずかしくないか」という懸念を持たずに利用できる環境を提供できます。
  • 投稿の多様性: ユーザー登録が不要なため、一見「くだらない」と思われる内容でも投稿しやすくなります。結果として、幅広いトピックの質問が集まり、サービス全体のコンテンツの多様性が向上します。
  • 開発・運用の簡便性: ユーザー認証システムや個人情報管理の仕組みが不要となり、開発者側のリスクとコストを削減できます。また、個人情報漏洩のリスクも回避できます。

一方で、匿名性には荒らしやスパム投稿のリスクもあるため、適切なモデレーション機能の実装を今後の課題としています。

主な機能

  • 匿名AI質問共有: ユーザー登録不要で気軽に投稿
  • アーカイブ機能: 過去の会話を検索、いいね、コメント
  • スコアシステム: 質問にスコアが付き、合計で特典解放(桜井政博さんのYoutubeチャンネル「桜井政博のゲーム作るには」からヒントを得ました)
  • プライベート/オープンモード: 自分だけか、みんなで共有するか選択可能
  • フラグ機能: 長い会話で特定の質問に素早く戻れる
  • コメント機能: AIを呼び出さずに会話に参加したいときのため
  • 多言語対応: 日本語/英語対応(i18n実装)

技術スタック

Frontend: HTML, CSS (一部TailwindCSS), JavaScript
Backend: Flask (Python)
Database: Supabase (PostgreSQL)
Container: Docker
AI: Gemini API, OpenAI API
Deploy: Render

すべてAIに選定してもらいました。今思えば「本当にこれがベストだったのか?」という不安もありますが、動くものができたので良しとしています。

開発環境の変遷

Phase 1: ChatGPT時代(4月〜5月)

最初は ChatGPT に「匿名でAIへの質問を共有できる掲示板のようなサイトを作りたい」と相談するところから始めました。

開発フロー:

  1. ChatGPTにコンセプトを伝える
  2. 生成されたコードをVS Codeにコピペ
  3. ローカルでテスト実行
  4. エラーが出る
  5. エラーログをコピペして「これ直して」
  6. 修正コードをもらう
  7. 1〜6を無限ループ

この時期は正直、何をやっているのか全く理解していませんでした。でも、動いたらOK精神でゴリ押し。

Phase 2: Github Copilot Plus時代(6月〜9月)

転機が訪れたのは6月。Github Copilot Plusに学割があると知り、即座に乗り換えました。

参考にした記事:学生向けGitHub Copilotの申請方法

使用ツール:

  • Github Copilot Agent (今使っているのは、Claude Sonnet 4.5, GPT-5 Codex)

最初はAskモードで質問していましたが、プロジェクトが大規模になってからはAgentモードがメインに。複数ファイルにまたがる変更もAgent任せです。

クレジット管理について:
正直、節約はしませんでした。使い切ったら翌月まで待って開発再開。

開発の実態:1日4時間 × 5ヶ月の試行錯誤

開発時間の内訳

  • 平日: 授業後に2〜3時間
  • 週末: 4〜6時間

コード生成の割合

  • AI生成: 90%以上
  • 自分で書いた部分: CSSの微調整、色の変更、余白の調整など

恥ずかしい話、ロジックは一切書いていません。全てAI任せです。

AI活用の実践的テクニック

5ヶ月間で学んだ、AIを使った開発の実践的なコツをまとめます。

1. 基本的なフロー

AIへ指示 → テストページで動作確認 → エラーが出たら④へ → 解決したらフロントエンドを改善

2. プロンプトの進化

初期(4月):

・スレッドカード右下にいいねボタンを追加してください。
・いいねボタンはハートのSVGアイコンを使ってください。

現在(9月):

## chatページのユーザーメッセージに編集機能を追加実装したいです。フロントエンド・バックエンドともに
- フラグボタン、コピーボタンと並べて**編集ボタン(ペンのみのSVGアイコン)を追加**してください。
- 編集できるのは投稿したユーザーのみです。IDを照らし合わせて権限チェックをしてください。
- **メッセージを編集して、送信ボタンを押すと新規メッセージにAIが回答するようにしてください。**
## 実装イメージ
1.フロントエンド (JavaScript / HTML):

質問表示エリアに「編集」ボタンを追加する。

「編集」ボタンが押されたら、質問文を <textarea> に変えて編集可能にし、「更新」ボタンを表示するJavaScriptロジック。

「更新」ボタンが押されたら、Fetch APIなどで新しい質問文をバックエンドに送信する処理。

2.バックエンド (Flask / PostgreSQL):

リクエストから新しい質問文を受け取り、DBを UPDATE する処理。

マークダウン形式にしてから、AIの理解度が向上した気がします。マークダウン形式はGeminiに作成してもらっています。
実際、上記のプロンプトだけでは完璧に実装できなかったので、以下の「2. UI実装のコツ」、「3. エラー対処の3ステップ」にあるようなプロンプトを実行しました。

3. UI実装のコツ

デザインの指示はスクリーンショット+具体的な指示がうまくいく印象でした。

次は**編集モードでのUI/UX**を改善したいです。
- .message-wrapper.user-message .message-contentの幅を.message-wrapper.ai-message .message-contentと同じにする。
- textareaの背景は透明にする。デザインは.message-wrapper.user-message .message-contentを維持する。レイアウトは**ChatGPTを模倣**する。
- 編集ボタンの背景とエフェクトをフラグボタン、コピーボタンと統一する。

*画像1:私のアプリ
*画像2:ChatGPT(見本)

ポイント:

  • クラス名を明示的に指定
  • 段階的に進める(一度に全部やらない)

4. エラー対処の3ステップ

Step 1: エラーログをそのまま投げる

以下のエラーが出ました。修正してください。

[エラーログ全文をペースト]

Step 2: うまくいかない場合

  • モデルを変更 (Claude ↔ GPT を切り替え)
  • 指示を減らす (3つ→1つに)
  • 指示を具体化 (「バグを直して」→「get_user_data()の戻り値がNoneになる問題を修正」)

Step 3: それでもダメなら

  • 新規会話を開始 (コンテキストリセット)
  • Deep Research で原因調査
  • 最終手段: Githubを巻き戻す (実際2〜3回やりました...)

4. 指示は小分けに、1回最大3つまで

一度に多くの変更を依頼すると、予期しないバグが混入します。

❌ ダメな例:

・ログイン機能追加
・デザイン変更
・データベース構造変更
・i18n対応
・バグ修正10箇所

⭕ 良い例:

以下の3点を実装してください:
1. Google OAuth 2.0の認証エンドポイント作成
2. 認証後のリダイレクト処理
3. セッションへのユーザー情報保存

5. コンテキストの管理

1つの会話は、最初の要望が完成するまでが基本。

  • 新規機能追加: 必ず新規会話で開始
  • バグ修正: 既存会話で対応可
  • 機能が完成したら: すぐに会話を終了し、次の機能は新規会話で

苦労した実装トップ3

1位: 多言語対応(i18n)

英語対応を実装しようとしたとき、予想以上に大変でした。

  • 日本語前提で書かれた既存コードの全文言洗い出し
  • 動的に生成されるテキストの翻訳
  • ユーザーの言語設定を保持する仕組み

結局、AI に「全ファイルを解析して、ハードコードされている日本語を抽出して」と依頼し、3回に分けて対応しました。

2位: Google認証のエラー

OAuth 2.0 の実装で、リダイレクトURIのミスマッチエラーが延々と出続けました。

AIの提案通りに実装してもダメで、結局:

  1. Google Cloud Consoleの設定を見直し
  2. 環境変数の確認
  3. Flaskのルーティングを再確認

という地道な作業で解決。この辺は自分で調べるしかなかったです。

3位: AIの文脈に沿った回答

「前の会話を踏まえて回答してほしい」という機能で、コンテキストウィンドウの管理に苦戦。

  • 長い会話履歴をどうAPIに渡すか
  • トークン数の制限をどう回避するか
  • パフォーマンスの劣化をどう防ぐか

最終的には、

  1. 新しい質問を確実にコンテキストに含める
  2. システムプロンプトを超具体的に修正
  3. 入出力トークンの上限を引き上げ

で解決できました。

コストの実態:ほぼ0円運用

内訳

項目 コスト 備考
Supabase 無料 Free Tierで運用中
API利用料 数円/月 テスト投稿のみ
ドメイン 約200円/月 お名前ドットコム(初年無料、2年目以降年2,000〜3,000円)
Github Copilot Plus 無料 学割適用
Render 無料 Free Tierで運用中
合計 約200円/月 ユーザー増加後は要見直し

現在MAU15人(ページ閲覧のみ)なので、このコストで運用できています。目標の100人に達したら、API利用料が跳ね上がるかも...?

データ収集とプライバシーへの配慮

個人開発でも、データの扱いは慎重にすべきだと考えています。

収集しているデータ

Gimmyでは以下のデータを収集しています:

  • 匿名セッションID: ブラウザのCookieに保存される64文字のランダムな識別子(個人特定不可)
  • 投稿内容: 質問、コメントなどのテキスト
  • 技術情報: アクセス日時、ブラウザ種別などの基本情報
  • IPアドレス: スパム・不正アクセス検知のみに使用(一時的にキャッシュで保持、DBには非保存)
  • 広告配信関連データ: Google AdSense等が取得する閲覧履歴の一部

データ保持期間

  • 投稿から90日以上アクセスがないデータは削除対象として検討
  • 具体的なルールは今後明文化予定

セキュリティチェック

実施頻度: 月1回

方法:

  • 2つのAIモデル(GPT-5 Codex & Claude Sonnet 4.5)でコードレビュー
  • OWASP TOP10に照らした静的チェック
  • 依存関係の脆弱性確認

使用ツール:

  • pip-audit
  • Bandit
  • Trivy
  • gitleaks
  • semgrep
  • OWASP ZAP(公開環境)

ただし、これで完璧というわけではないことは理解しています。今後、ペネトレーションテストや第三者監査も検討中です。

脆弱性報告(Responsible Disclosure)

もし脆弱性を発見された場合は、以下のメールアドレスまでご連絡ください:

gimmy.aiarchive@gmail.com

再現手順と影響範囲を添えていただけると助かります。報告を確認次第、優先的に対応します。

AI開発の未来:アイデアが全て

5ヶ月の開発を終えて思ったことがあります。

学習目的でない限り、AIを信頼して良い。

もちろん、セキュリティやライセンスへの責任は自分にあります。でも、アマチュアの個人開発なら、完璧を目指すより形にすることを優先して良いと思います。

AI がさらに進化する未来では、重要なのはアイデア実行力。深い専門知識より「広く浅い知識」の方が価値を持つかもしれません。

現在の課題:宣伝に苦戦中

正直に言います。全然使ってもらえてません😭

現在の状況:

  • MAU: 15人(ページ閲覧のみ)
  • 実際に投稿してくれたユーザー: 数名
  • 目標: MAU 100人

この記事も、実は宣伝目的だったりします(笑)

もし興味を持っていただけたら、ぜひ試してみてください。フィードバックは X(Twitter)でお待ちしています!

まとめ:諦めなければ、誰でも作れる

プログラミング知識ゼロでも、AIを活用すれば本格的なWebサービスは作れます

重要なのは:

  1. 諦めずに試行錯誤を続けること
  2. AIを適切に信頼しつつ、責任は自分で持つこと
  3. 完璧を目指さず、まず形にすること
  4. セキュリティとプライバシーは継続的に改善すること

もし「作りたいものはあるけど、プログラミングできないから...」と諦めている人がいたら、この記事が背中を押せたら嬉しいです。

2025年、アイデアさえあれば誰でも開発者になれる時代です。


Gimmy: https://www.gimmy.jp/
X(フィードバック大歓迎): https://x.com/konegi_dev

ぜひ使ってみてください。そして、感想を聞かせてください!


参考リンク

#AI開発 #個人開発 #非エンジニア #GithubCopilot #Flask #Supabase #駆け出しエンジニアと繋がりたい

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?