문서
技術アーキテクチャ&スタック
技術アーキテクチャ&スタック
Postion の内部を覗いてみましょう。システムアーキテクチャ、モダンな技術スタック、速度・スケール・セキュリティを確保するコア設計原則を解説します。
1. システムアーキテクチャ図
コアフロー:
- ユーザーが Next.js フロントエンド経由でサイト(
[username].postions.appまたはカスタムドメイン)にアクセス。 - Cloudflare エッジネットワークがリクエストを処理し、グローバル CDN アクセラレーションを提供。
- API リクエストは Next.js API Routes 経由でバックエンドサービスに送信。
- バックエンドサービスが Prisma ORM を使って PostgreSQL データベースからコンテンツデータを取得。
- 決済プロセスは Stripe API で処理され、サブスクリプションステータスは Webhook で同期。
- AI 関連機能(ライティングアシスタント、要約生成など)は OpenAI/Gemini API を呼び出して実装。
- ニュースレター機能は Mailgun を使って実装。
- ワークフロー機能は n8n を使って実装。
2. テクノロジースタック
- フロントエンド: Next.js 15(React)、Tailwind CSS、BuouUI
- バックエンド: Next.js API Routes(サーバーレス関数)、TypeScript
- データベース: PostgreSQL
- ORM: Prisma
- 決済: Stripe
- ドメイン: Cloudflare
- AI サービス: OpenAI API(GPT-4/GPT-3.5)、Gemini API、Vercel AI SDK
- デプロイ/ホスティング: Deployment
- 認証: NextAuth.js
- コンテンツ配信: Cloudflare エッジネットワーク(CDN)
- ワークフロー: n8n
[Info] 設計の理由: Cloudflare と Next.js を中心としたフルスタック TypeScript ソリューションを選択することで、最大限の開発効率、優れたパフォーマンス(特に SEO 面)、シームレスなサーバーレススケーラビリティを実現しました。コンテンツプラットフォームのニーズに最適な構成です。
3. コアデータスキーマ
User:ユーザー情報と認証の詳細を格納。Site:各クリエイターのサイト設定(サブドメイン、カスタムドメイン、テンプレート、ブランディングなど)を格納。1 人のUserが複数のSiteを所有可能。Post:記事コンテンツ、メタデータ、公開ステータスを格納。Siteにリンク。Subscription:ユーザーのサブスクリプション関係を格納し、Stripe のSubscriptionにリンク。WebhookEvent:Stripe などの外部サービスからの Webhook イベントをログに記録し、データの整合性を確保。
4. 主要な設計原則
- マルチテナンシー: 異なるクリエイターのコンテンツと設定は、データベースレベルで
siteIdを使って分離。 - パフォーマンスファースト: ISR(インクリメンタル静的再生成)と CDN キャッシュを活用し、コンテンツページをミリ秒単位でロード。
- セキュリティ&信頼性: すべての決済情報は Stripe が処理し、機密性の高い決済データは保存しません。Cloudflare のファイアウォールなどプラットフォームネイティブのセキュリティ機能を活用し、一般的な攻撃を防止。
- スケーラビリティ: サーバーレスアーキテクチャにより、トラフィックに応じて自動スケーリング。サーバー管理は不要です。