The era of "nurturing" websites. The optimal solution for Next.js frontend development with Vercel and Storybook.

The era of "nurturing" websites. The optimal solution for Next.js frontend development with Vercel and Storybook. のビジュアル

The key to solving challenges in website development such as "slow," "many reworks," and "low quality" lies in "Next.js" and "UI-first development with Storybook."
This article explains the full scope and development philosophy of "tosakaworks-nextjs," our next-generation frontend foundation that achieves both overwhelming display speed and development efficiency.

  • UI先行開発の利点Next.jsとStorybookを組み合わせることで、開発スピードと品質を劇的に向上させます。
  • モダンな技術スタックサイトの表示速度(パフォーマンス)とSEOをNext.jsで最大化し、堅牢な基盤を構築します。
  • Vercelによる自動化GitHubとVercelを連携させ、プレビューから本番デプロイまでのプロセスを自動化(CD)します。
  • 将来への拡張性CI/CD、型安全、自動テストの導入を前提とした設計で、"腐らない"Webサイトを実現します。

あなたのWebサイト開発、こんな「非効率」に陥っていませんか?

企業のWebサイトは、今やビジネスの中核を担う重要な資産です。しかし、その裏側にある開発プロセスには、いまだに多くの非効率や課題が潜んでいます。特に、従来のデザインカンプ(静止画)を基点としたウォーターフォール型の開発では、以下のような問題が頻発していないでしょうか。

問題1:デザインカンプと「実際の動き」が違う

静的なデザインカンプは完璧に見えても、実際のブラウザで操作した際の「動き」(ホバーエフェクト、アニメーション、レスポンシブ対応)までは表現しきれません。開発終盤になって「イメージと違う」「この操作感が悪い」といったフィードバックが発生し、UIの調整に膨大な時間が費やされます。

問題2:開発終盤での「手戻り」とコミュニケーションコスト

「カンプと違う」問題は、必然的に「手戻り」を発生させます。エンジニアは実装したコードを修正し、デザイナーは意図を再度説明し、プロジェクトマネージャーはスケジュール調整に追われる。このコミュニケーションコストと手戻りの連鎖が、プロジェクトの品質と士気を著しく低下させるのです。

問題3:バックエンド(API)待ちで開発がストップする

多くのWebサイトでは、CMS(WordPressなど)や外部システムからデータを取得(API連携)して情報を表示します。しかし、従来の開発フローでは、そのAPIが完成するまでフロントエンド(見た目)の開発が進められない「API待ち」状態が発生しがちです。これにより、フロントエンドエンジニアが手待ちになり、プロジェクト全体のスケジュールが遅延します。

その開発プロセス、「機会損失」と「技術的負債」を生み続けています

これらの問題を「開発とはそういうものだ」と放置してしまうと、ビジネスに深刻な影響を与えかねません。

スピードの遅れがビジネスの足かせに

市場のニーズは日々変化しています。手戻りやAPI待ちで開発スピードが遅れれば、競合他社に先を越され、貴重なビジネスチャンスを逃すこと(機会損失)につながります。

「作って終わり」のサイトは”腐っていく”

場当たり的な修正と複雑な依存関係で構築されたWebサイトは、「技術的負債」の塊となります。結果として、「軽微な修正にも多大な工数がかかる」「セキュリティが脆弱になる」「新しい機能を追加できない」といった、”腐った”状態に陥り、将来的な成長を阻害します。

解決策は「UI先行開発」と「モダンな技術スタック」の融合

私たちは、これらの課題を根本から解決するために、技術スタックと開発プロセスをゼロから見直しました。その答えが、「Next.js」「StorybookによるUI先行開発」の組み合わせです。

Next.jsがもたらす「圧倒的な表示速度」と「優れた開発体験」

Next.jsは、現代のWeb開発におけるデファクトスタンダードとも言えるフレームワークです。

  • サーバーサイドレンダリング(SSR)と静的サイト生成(SSG):
    サーバー側でページを生成することで、ユーザーへの初期表示速度を劇的に高速化します。これは、Googleが重要視するCore Web
    Vitals(コアウェブバイタル)
    のスコア向上、すなわちSEO評価の向上に直結します。
  • 画像最適化: next/image コンポーネントが、画像を自動的に次世代フォーマット(WebPなど)に変換し、デバイスサイズに合わせた最適化を行うため、パフォーマンスが向上します。
  • 優れた開発体験(DX):
    ルーティングの自動化、高速なリロード機能(Fast Refresh)など、開発者がストレスなく開発に集中できる環境を提供します。

Storybookが実現する「UIの分離」と「品質担保」

Storybookは、UIコンポーネント(ボタン、カード、ヘッダーなど)をアプリケーション本体から「分離」して開発・管理・テストするためのツールです。

Storybookを活用することで、以下が可能になります。

  • UIのカタログ化:
    サイト内で使用する全コンポーネントを一覧化し、どのような状態(例:通常時、ホバー時、エラー時、データが空の場合)があるかを可視化できます。
  • 並行開発の実現:
    APIが未完成でも、ダミーデータを使ってUIコンポーネントの開発を先行できます。デザイナーやディレクターは、開発中のコンポーネントをStorybook上で直接確認し、フィードバックを行えます。
  • 品質の担保:
    コンポーネント単位でビジュアルリグレッションテスト(見た目の崩れを自動検知するテスト)を行うことで、意図しないデザイン崩れを防ぎます。

「UI先行開発」が最強である理由:スピードと品質の両立

Next.jsとStorybookを組み合わせた「UI先行開発」とは、「まずUIコンポーネントをStorybookで完璧に作り、それをNext.jsのページに組み込んでいく」開発手法です。

この手法により、従来の開発が抱えていた問題が次のように解決されます。

【課題】カンプと動きが違う

【解決】Storybook上で「動くコンポーネント」をレビューするため、「イメージと違う」が開発初期に解消される。

【課題】API待ちで開発がストップ

【解決】StorybookとダミーデータでUI開発を先行。API完成後は繋ぎ込むだけで良いため、手戻りなく並行作業が可能になる。

【課題】終盤の手戻りと品質低下

【解決】UIの品質はStorybookで担保済み。Next.js側は機能連携に集中でき、開発スピードと品質が両立する。

全貌公開:次世代基盤「tosakaworks-nextjs」の開発ポリシー

私たちは、この「Next.js + Storybook」の思想をさらに昇華させ、将来の品質担保までを見据えた開発基盤「tosakaworks-nextjs」を構築しました。この基盤は、単なる技術の寄せ集めではなく、堅牢な開発プロセスを実現するための「設計思想」そのものです。

なぜこの技術スタックを選んだのか?(選定理由)

私たちの基盤は、実績があり、かつ将来性のある技術を厳選しています。

技術・ライブラリ

選定理由

Next.js

ルーティング、画像最適化、ISRなどモダンなWeb機能の活用。圧倒的なパフォーマンスとSEO基盤。

Storybook

UIコンポーネントの分離開発、ドキュメント生成、インタラクションテストの基盤。

SCSS (CSS Modules) + FLOCSS

FLOCSSという設計規律とCSS Modulesによるスコープの封じ込め。再現性が高くスケールしやすいスタイリングを実現。

next-sitemap

サイトマップ/robots.txtの自動生成によるSEO基盤の強化。

DOMPurify

ヘッドレスCMS(WordPress等)から取得したHTMLを安全に表示(`dangerouslySetInnerHTML`)するためのXSS対策(サニタイズ)。

Resend + reCAPTCHA v3

お問い合わせフォームのモダンなメール送信(Resend)と、ユーザー体験を損なわないスパム対策(reCAPTCHA v3)の実現。

JSON-LD構造化データ

Schema.orgに準拠した構造化データを実装し、検索エンジンへの情報伝達を最適化。

理想的な開発フロー:StorybookからVercelデプロイまで

「tosakaworks-nextjs」では、開発フローをVercelとGitHubによって高度に自動化・効率化しています。

  1. ① StorybookでのUI開発 (ローカル):
    エンジニアはまずStorybook上でUIコンポーネントを開発します。
  2. ② 作業ブランチのPush:
    開発した内容をGitHubの作業ブランチ(例: feature/new-button)にPushします。
  3. ③ Vercelによるプレビューデプロイ (自動):
    Pushをトリガーに、Vercelが自動でプレビュー環境を構築します。関係者は実際のURLにアクセスし、本番とほぼ同じ環境で動作確認ができます。
  4. ④ レビューとマージ:
    プレビュー環境で問題がないことを確認し、`main`ブランチにコードをマージ(統合)します。
  5. ⑤ Vercelによる本番デプロイ (自動):
    `main`ブランチへのマージをトリガーに、Vercelが自動で本番環境へのビルドとデプロイを実行します。

このフローにより、「`main`ブランチ = 常に正常に動作する本番環境」という安定性を保ちつつ、迅速なプレビューとデプロイが可能になります。

将来を見据えた「品質担保戦略」(CI/CDとテスト)

開発基盤は、リリース時がゴールではありません。私たちは、将来的な機能拡張やメンテナンスに耐えうる「品質担保戦略」を初期設計に組み込んでいます。

CI/CD (継続的インテグレーション/継続的デリバリー)
現在はVercelによるCD(デリバリー)が有効ですが、将来的にはCI(インテグレーション)を強化します。GitHub
Actionsを利用し、`main`ブランチへのマージ前に「lint(構文チェック)」「typecheck(型チェック)」「test(自動テスト)」を必須化。品質基準を満たさないコードが本番にデプロイされることを防ぎます。

  • 型安全 (Zod):
    APIから取得するデータが想定通りの形式(型)であるかをZodライブラリで検証。予期せぬデータによるエラーを防ぎます。
  • 自動テスト (Vitest/Jest):
    コンポーネントやロジックが正しく動作するかをコードでテスト。手動での確認漏れをなくし、機能改修時の「デグレード(既存機能の破壊)」を恐れずに開発を続けられます。

このような拡張性をあらかじめ設計に組み込むことで、「tosakaworks-nextjs」はビジネスの成長に合わせてスケールし続けることが可能です。

Was this article helpful?