前提知識
SaaS初心者向け:フロントエンド vs バックエンド vs フルスタック
SaaSにおけるフロントエンド、バックエンド、フルスタックをわかりやすく解説。身近な例とモダンスタックの具体例付き。
Frontend vs Backend vs Full‑Stack(ざっくり)
Webアプリには2つの側面があります。フロントエンド(ユーザーが見る側)とバックエンド(裏側の仕組み)。フルスタックはその両方を扱うことです。ここでは分かりやすく整理します。
レストランの例で理解する
レストランに例えると:
- フロントエンド = 客席。内装、メニュー、店員など、見える体験すべて。
- バックエンド = 厨房。料理を作り、材料を管理する裏側の仕組み。
SaaSも同じで、良い体験(客席)と堅実な裏側(厨房)が必要です。ボタンを押すと厨房で処理され、結果がUIに返ってきます。
図のイメージ: frontend(ブラウザUI)↔ backend(サーバー+DB) — 客席↔厨房フロントエンドの役割
ユーザーが触れるすべてを担当します。
- UI/UX: レイアウト、ナビ、フォーム、ダッシュボード、デザイン。
- インタラクション: ボタン、入力、モーダル、チャート(Next.js など)。
- バックエンドとの通信: APIを呼び出してデータを表示/更新。
- パフォーマンスとレスポンシブ: 表示速度、モバイル対応、アクセシビリティ。
フロントエンドは「見える層」 — 参考: overview。
バックエンドの役割
バックエンドはプロダクトのエンジンです。
- データとDB: PostgreSQL に保存し、Drizzle ORM などで安全にクエリ。
- ビジネスロジック: 権限、契約状態、データのルール。
- APIとサーバー関数:
src/app/api/...などのエンドポイント。 - 認証/認可: アカウント、セッション、OAuth、権限(例: Better Auth)。
- 課金・連携: Stripe やメールAPIなど外部連携。
要するに、バックエンドはデータと裏側の流れを管理します — 詳細: guide。
フルスタックとは
フルスタックはフロントとバックの両方を扱える人。レストランでいえば、メニューを作り、接客し、料理もする人です。特にSaaSやスタートアップでよく見られます。
- リソース効率: 1人でエンドツーエンドの機能を作れる。
- 速度: 連携待ちが減って開発が早い(why)。
- 問題解決の視野: UIとサーバーをまたぐ不具合にも対応しやすい。
- 学習: 全体像を掴むのに最適。
フルスタックだからといって万能になる必要はありません。多くは得意領域がありますが、Next.jsのようなフレームワークが境界を曖昧にしてくれます。
フロントとバックはどうつながる?(Sushi SaaS)
具体例として Sushi SaaS を見ると、Next.js App Router、API routes、server components、Better Auth、Drizzle ORM と Postgres、Stripe を統合しています。
つながり方:
- プロジェクトが一体: ページ(フロント)とAPI(バック)が同じリポジトリ。
- TypeScript型の共有: UIとサーバーで同じモデルを使える。
- データ取得がスムーズ: server components/handlers からDrizzleでDBへ。
- 認証が統合: バックで検証、フロントで状態管理とリダイレクト。
- Stripe課金: フロントからチェックアウト、バックでセッション/Webhook処理。
例:ログインフロー(フロント + バック)
- UI(フロント):
/loginにフォームを表示。 - 送信: フロントがPOST
/api/auth/loginなどへ送信。 - 認証(バック): Better Auth + Drizzle がPostgresで検証し、セッション作成。
- 応答: リダイレクトやJSONを返し、ダッシュボードへ。
- ログイン後: セッションCookie付きのリクエストでユーザー固有データを取得。
復習はこちら: primer。
まとめ:自分の道(または両方)
- フロントエンド = UI/UX とインタラクション。
- バックエンド = データ、ルール、セキュリティ、連携。
- フルスタック = 両方。特にSaaSでは強い。
最初から全部マスターする必要はありません。どちらかから始めつつ、エンドツーエンドで1つ作ると全体像が掴めます。
まず触ってみたいなら Sushi SaaS が良い出発点です。
良い体験を作り、厨房を安定させましょう。