TL;DR

  • Paddle を使った支払いの仕組みを、クライアントとサーバの両方に実装するプロジェクトテンプレートである。
  • クライアントは XState でチェックアウトの流れを管理し、サーバは Effect で Paddle の Webhook を検証・処理する。

内容

作るもの

Paddle は Merchant of Record として、支払いと税金、コンプライアンスへの対応を引き受けるサービスである。このコースでは、Paddle を使って動く支払いの仕組みをフルスタックで実装する。

クライアント側では、@paddle/paddle-js で Paddle のインラインチェックアウトを組み込み、チェックアウトの流れを XState で管理する。サーバ側では、@paddle/paddle-node-sdk で Paddle の Webhook を受け取る。署名を検証し、イベントを Effect で処理する。

使う技術

モノレポの構成には Turborepo を使う。クライアントは React、React Router v7、Effect、XState、Tailwind CSS v4、React Aria で作る。サーバは Effect(@effect/platform)と Node.js の node:http、dotenv、tsx で作る。

進め方

このコースは手順を一つずつ追うものではなく、プロジェクト全体の構成とコードのアーキテクチャに重点を置いている。技術ごとの長所と短所や、実装の要点を説明する。モジュールは次の 4 つである。

  1. Project configuration
  2. Shared API definition
  3. Server implementation
  4. Client implementation

キーワード