Bolt.newを使ってみた

# はじめに

最近、Bolt.newを使用する機会があったので、実際に試してみた結果を記事にしてみました。

# Bolt.newとは
Bolt.newは、生成AIを使用して、Webアプリケーションの構築を迅速かつ効率的に支援する生成AIツールです。
Bolt.newの特徴として、ユーザーはWebブラウザ内で直接コード生成、デプロイ、実行のプロセスを一貫して完結させることができます。この一貫したプロセスを可能にしているのは、Bolt.newがStackBlitzのコンテナ技術を使用しており、強力なオンライン開発環境をサポートしているからです。

# Bolt.newのライセンス、料金
Bolt.newにはさまざまな料金プランがあり、各プランは利用者のニーズに応じて異なります。
また、年間プランを選択すると、月額料金が割安になり、よりお得に利用することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/f3605b05-699d-69ed-b586-5980789853a2.png)

各プランの詳細については、以下のリンクから確認していただければと思います。

https://bolt.new/?showPricing=true

# 実際にBolt.newを使ってみた

#### ・Bolt.newの準備
Bolt.newの[公式サイト](https://bolt.new/)にアクセスし、画面右上にある「Get Started」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/1189eaed-3533-6265-b244-52f3412f7022.png)


下の画像のようなポップアップが表示されるので、GitHubアカウントまたはメールアドレスを使用してアカウント登録を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/75eef3d2-9877-d31c-c59a-762c7e665179.png)

以上を実施すれば、Bolt.newの準備が完了します。


#### ・初期プロンプトの送信
今回は例として、よくあるショッピングサイトを作成しようと思います。

プロンプトは少し抽象的ですが、「シンプルなショッピングサイトを作成してください。」という内容のプロンプトをBolt.newに送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/af45abe5-0efe-aa78-4b24-527d1969ea38.png)

少し待つと、Bolt.newの画面左側に、生成されたコードの説明や実装の概要が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/3b6f6cca-52a2-e939-06dc-fa561f7144a5.png)

また、Bolt.newの画面右側に表示されている「Code」タブをクリックすると、生成されたアプリのソースコードを確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/76742f2f-f981-b1a2-3dc3-7c4049bb200c.png)

「Preview」タブをクリックすると、生成されたアプリの画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/fcfbd477-5b24-836f-651b-66f5a20a6730.png)

#### ・デプロイ
Bolt.newの画面右上にある「Deploy」をクリックすると、Webアプリのリンクが生成されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/c6f9be69-9595-a353-03a9-0f85b50c1f67.png)

生成されたリンクを受け取った人は誰でもWebアプリを使えるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/884e306b-9694-5bae-60fe-5d35dc73b90d.png)

#### ・2回目のプロンプト送信
続いて、2回目のプロンプトとして、ユーザーアカウント管理機能を実装させます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/c2bacd6c-bb09-9375-9387-7b5f0e011cae.png)

Bolt.newの返答としては、Supabaseを使用してくださいとのことなので、指示通りSupabaseを使用してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/3a3da075-058c-792e-550a-9a13a262f7e9.png)

#### ・Supabaseの準備(アカウント登録、Bolt.newとの連携設定)

Supabaseの[公式サイト](https://supabase.com/)にアクセスし、画面中央または画面右上にある「Start your project」をクリックします。
（本記事ではSupabaseの詳しい説明や操作は割愛します。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/500d290e-5882-d7ff-4d86-7ce8bd17a86d.png)

下の画像のように画面遷移しますので、アカウント登録を行います。
Supabaseにも様々な料金プランがありますが、今回は無料版のSupabaseを使用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/18a88f47-0165-fa9c-283e-9c335e24b01c.png)

そして、SupabaseとBolt.newの連携設定を終えたら準備は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/58329c0d-15e3-f62d-9485-9289d476b170.png)

### ・Bolt.newからSupabaseに接続する

Bolt.newの画面右上にある「Connect to Supabase」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/278a5fdc-b873-5e66-cddb-649801e5e09e.png)

Bolt.newの返答にもあるように、「Connect to Supabase」をクリックすると、テーブルの作成が自動的に実行されます。
また、「.env」ファイルにはSupabaseの接続情報が自動で記載され、migrationsフォルダ内のSQLファイルが実行されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/71c849c2-25af-1f39-7554-8e1c8391d89e.png)

Supabaseの画面を確認すると、今回は例として「profiles」というテーブルが自動で作成されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/d868fa66-9d50-f45e-ac50-fab32c936de6.png)


### ・検証

Bolt.newで生成されたアカウント作成画面に、任意の情報を入力してアカウントを新規作成します。
正常に新規アカウントが作成された場合、入力した情報が「profiles」テーブルに挿入されることを想定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/c4fbcf44-0ecc-c033-2e77-3d6fc6583550.png)


新規アカウントを作成後、Supabaseの画面を確認すると、「テスト太郎」の情報が「profiles」テーブルに追加されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163879/6d2d753e-2e22-8973-d5e0-93e2360e98bc.png)

# 感想
#### ・複数回の対話において、実装漏れが発生することがある。

Bolt.newでは、コード生成、デプロイ、実行のプロセスが一貫して行われるため非常に便利ですが、複数回にわたる対話を行う中で、前回の実装が反映されないことがあります。

例えば、初回のプロンプトで作成されたコードが後の対話で反映されなかったり、新たな機能追加時に以前の実装内容が考慮されないケースがありました。

開発の進捗を追いながらも、都度確認と修正が必要になることがあり、実装漏れを防ぐためには何らかの対策が必要だと感じました。

#### ・過去の対話を振り返りたい場合、限界がある。

Bolt.newを使用していると、過去に行った対話内容を振り返る機能に限界を感じることがあります。

例えば、ChatGPTでは、画面を上にスクロールすれば、過去の対話履歴をさかのぼることが容易で、初期プロンプトまで確認できるため、進行中のプロジェクトに関連する情報を素早く見返すことができます。

Bolt.newでも、画面を上にスクロールすることで、過去の対話をある程度まで確認することができます。しかし、一定の範囲を過ぎると、過去の対話履歴を確認できなくなるため、長期間にわたる対話や複数回の対話を経た場合に、初期のやり取りや以前の実装内容を確認する事が難しいと思われます。


# 最後に
最後までお読みいただき、ありがとうございました。
この記事が少しでもお役に立てたなら、嬉しく思います。

### 仲間を募集しています！

生成AIの進化が進む中で、ARIでは新たな技術に挑戦しており、現在、エンジニア、ITコンサルタント、PM職など幅広いポジションで募集中です。
カジュアル面談も随時受け付けておりますので、ご興味ある方はこちらをご覧ください。

https://note.com/ari_hr/n/n4aed9ba75421