Oga's Knowledge Store - デジタルコンテンツ販売プラットフォーム
技術記事や電子書籍などのデジタル知識を販売・購入できる、フル機能のEコマースサイトです。 開発者やクリエイターが自身の知識を収益化するためのプラットフォームとして構築しました。
👇 今すぐサイトを体験!
https://store.aiichiro.jp/
🌟 プロジェクトの特徴 (Features)
モダンなWeb技術をフル活用し、ユーザーと運営者の双方にとって快適な体験を提供します。
🔐 簡単でセキュアな認証
- Auth.js (NextAuth) を利用し、使い慣れたGitHubアカウントだけで簡単にログイン・ログアウトが可能です。
🛍️ 洗練されたEコマース体験
- トップページには特集コンテンツをダイナミックに表示し、訪問者の興味を引きます。
- 有料・無料のコンテンツが分かりやすく区別され、グリッドレイアウトで商品を閲覧できます。
💳 安全な決済システム
- 業界標準の決済プラットフォーム Stripe を完全に統合。クレジットカードによる安全でスムーズな購入体験を実現します。
📖 購入済みコンテンツへの即時アクセス
- 購入したコンテンツは即座に閲覧可能になり、ユーザーはマイページなどで購入履歴を管理できます。
🔗 高度なルーティング設計
- Next.js のファイルベースルーティングを活用し、以下のような直感的で分かりやすいURLを設計。
- 記事:
store.aiichiro.jp/posts/[記事のスラッグ]
- 本:
store.aiichiro.jp/books/[本のスラッグ]/[ページのスラッグ]
- 記事:
- Next.js のファイルベースルーティングを活用し、以下のような直感的で分かりやすいURLを設計。
✨ モダンで美しいUI
- shadcn/uiとTailwind CSSを組み合わせ、デザイン性とアクセシビリティを両立したUIを構築しています。
💡 こだわりのポイント: 設計思想
「知識の収益化」をシームレスに
このプロジェクトの核心は、クリエイターが持つ知識や経験を、価値ある商品として簡単に販売できる世界を実現することです。そのために、以下の3つの体験を重視しました。
- ユーザー体験: GitHubでのワンクリックログインから、Stripeによる簡単な決済、そして購入後すぐにコンテンツを楽しめるまで、一連の流れがストレスなく完結するよう設計しています。
- 開発体験: Next.js、Supabase、Auth.jsといったモダンで相性の良い技術を選定することで、開発効率とパフォーマンス、そして将来的な拡張性を高めています。
- コンテンツ構造: 単発の「記事」だけでなく、複数のページを持つ「本」という形式にも対応することで、小規模なノウハウから体系的な知識まで、多様なコンテンツの販売を可能にしています。
🛠️ 使用技術 (Tech Stack)
このプラットフォームは、以下の堅牢でスケーラブルな技術スタックで構築されています。
- Framework: Next.js (App Router), React, TypeScript
- Authentication: Auth.js (NextAuth.js)
- Database: Supabase
- Payment: Stripe
- UI & Styling: shadcn/ui, Tailwind CSS
- API Integration: GitHub API (認証用)
🚀 ローカルでの実行方法 (Getting Started)
このプロジェクトをご自身の環境で動かすには、複数の外部サービスとの連携設定が必要です。
リポジトリをクローン
git clone https://github.com/your-username/your-repository.git
ディレクトリに移動
cd your-repository
依存関係をインストール
npm install # または yarn install
環境変数を設定
.env.local.example
を参考に.env.local
ファイルを作成し、以下のAPIキーやシークレットを設定してください。- GitHub OAuth App (
GITHUB_ID
,GITHUB_SECRET
) - Supabase (
SUPABASE_URL
,SUPABASE_ANON_KEY
) - Stripe (
STRIPE_SECRET_KEY
,NEXT_PUBLIC_STRIPE_KEY
) - Auth.js (
AUTH_SECRET
)
- GitHub OAuth App (
開発サーバーを起動
npm run dev # または yarn dev
ブラウザで
http://localhost:3000
を開いてください。