1
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?

爆速API+フロントエンド開発!LaravelとReactのブログPFをCursorに作らせてみた

Posted at

爆速API+フロントエンド開発!LaravelとReactのブログPFをCursorに作らせてみた
「AIにどこまで任せたら、ちゃんと動くWebアプリを短期間で作れるんだろう?」

ふと、そんな疑問が湧きました。そこで、AIコーディングツールCursorの実力を試すべく、バックエンドにLaravel、フロントエンドにReactを採用したブログプラットフォーム「inkly」の開発に挑戦。本記事では、その開発プロセスと驚きの結果を共有します。

はじめに
この記事は、AIを活用した開発に興味があるエンジニアの皆さんに向けて、Cursorを相棒にどこまで開発を効率化できるかを実験した記録です。

結果的にですが、こちらのサイトを12時間ほどで作成することができました🍖
https://inkly.jp/

今回、私が担当したのは以下の通り。

技術選定とコンテナのベース作成: プロジェクトの土台作り

サイトの概要設計: どんなものを作るかの方向づけ

動作確認と簡単なコードレビュー: 最終的なチェック

そして、Cursorには以下を全面的に任せてみました。

Laravel: APIに必要なモデル、マイグレーション、コントローラーの作成

React: APIを叩くためのコンポーネント、ページ、ルーティングの作成

いわば、私は「アーキテクト」で、Cursorが「バックエンド兼フロントエンド開発者」という役割分担です。

なぜブログプラットフォーム?
何かを作る、となったときにブログプラットフォームを選んだのは、ユーザー認証、記事のCRUD(作成、読み取り、更新、削除)、API通信など、モダンなWebアプリケーションの基本的な要素が詰まっているからです。Cursorの実力を測るには、ちょうど良い題材だと考えました。

プロジェクト名は「inkly」。インクで文字を綴るような、創作の場をイメージして名付けました。

開発プロセス:私とCursorの共同作業

  1. プロジェクトの骨格作り(私)
    まず、開発の土台を整えました。

技術スタック:

バックエンド: Laravel (APIモード)

フロントエンド: React (Vite), TypeScript, Tailwind CSS

データベース: MySQL

インフラ:

Docker: 開発環境のコンテナ化

docker-compose.yml を作成し、Nginx、Laravel(PHP-FPM)、React、MySQLのコンテナが立ち上がる状態を準備しました。この段階では、まだ中身は空っぽです。

  1. Cursorへの指示出し(AI)
    ここからが本番です。Cursorのチャット機能に、作りたいものの要件を伝えていきます。

私:
「Laravelでブログ用のAPIを作りたい。まずはUserとPostモデル、そして関連するマイグレーションファイルを作成して。」

Cursor:
(php artisan make:model コマンドの実行を提案し、モデルファイルとマイグレーションファイルを瞬時に生成)

私:
「次に、ブログ記事のCRUD操作を行うためのAPIコントローラーとルートを定義して。JSONを返すようにね。」

Cursor:
(PostController.php と routes/api.php に、index, store, show, update, destroy の各メソッドと対応するルートを生成)

バックエンドの準備が整ったところで、フロントエンドに着手します。

私:
「今作ったAPIを叩くReactアプリを作りたい。ViteとTypeScriptで。まずは記事一覧を取得して表示するコンポーネント PostList.tsx を作って。」

Cursor:
(axios を使ってLaravel APIのエンドポイントにリクエストを送り、取得したデータを表示するReactコンポーネントを生成)

この調子で、必要な機能を次々と指示していきました。

ユーザー認証(Laravel Sanctum)と連携するログインフォーム

記事投稿・編集フォームの作成

React Routerを使ったページ遷移

驚いたのは、バックエンド(Laravel)とフロントエンド(React)の役割分担を理解し、それぞれに最適なコードを的確に生成してくれた点です。

結果:ほとんどAI任せで動くものができた!
一連の指示を終え、簡単な動作確認と手直しを行った結果、わずか数時間でブログプラットフォームのプロトタイプが完成しました。

API: Laravelで構築したAPIが正常にレスポンスを返すことを確認

フロントエンド: ReactアプリがAPIと通信し、記事の投稿や表示ができることを確認

ユーザー認証: SPAの認証(Laravel Sanctum)も問題なく機能

もちろん、細かなUIの調整やバリデーション、エラーハンドリングなど、プロダクトとしてリリースするには追加の実装が必要です。しかし、「とりあえず動く」レベルのものを、ここまで少ない労力で作れたことには正直驚きました。

ちらっとコードレビュー(私)
生成されたコードを確認したところ、LaravelのコントローラーはRESTfulな設計原則に沿っており、Reactのコンポーネントも適切に分割されていました。人間が書いてもこうなるだろうな、という自然なコードで、メンテナンス性も悪くなさそうです。

まとめ:AIは優秀な相棒になり得る
今回の実験で、「何をしたいか」という明確な指示さえあれば、AIは強力なプログラマーとして機能することが分かりました。特に、APIの定型的な実装や、それを呼び出すフロントエンドの作成といった作業は、人間がやるよりも圧倒的に高速です。

開発者は、面倒な実装作業から解放され、よりアーキテクチャの設計やユーザー体験の向上といった、本質的な部分に集中できるようになります。

CursorのようなAIツールは、私たちの開発スタイルを大きく変える可能性を秘めています。まだ試したことがない方は、ぜひ使用してみて下さい!

1
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
1
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?