- Your Next Storeは、StripeベースのオープンソースなAI-native Next.js eコマーステンプレートで、セルフホスティングとVercelへのワンクリックデプロイをサポートする
- AIコーディングツールが扱いやすいように、AGENTS.md、慣用的なNext.js App Routerパターン、型定義されたCommerce Kit SDKメソッドをあわせて提供する
- 中核機能は、Stripe APIの直接統合によるcheckout、billing、subscriptionsで、商品・オプション・カート・決済のドメインモデルが型で整理されている
- 技術スタックは、Next.js 16、Bun、Commerce Kit SDK、Tailwind CSS v4、Shadcn UI、TypeScript、Biomeで構成される
theme-001からtheme-149まで149個のテーマブランチを提供し、テーマはビジュアルコンポーネントと静的アセットだけを変更し、商品・カート・決済は維持する
プロジェクト概要
- Your Next StoreはオープンソースのAI-native Next.js eコマーステンプレートである
- Stripeで動作し、AIコーディングツールを念頭に設計されている
- ライブデモを提供している
- リポジトリが強調する特徴は次のとおり
- AI-Friendly Codebase: AGENTS.md、慣用的なパターン、型付きメソッドを備えたCommerce Kit SDKを含む
- Stripe-Native: Stripe APIを直接統合し、checkout、billing、subscriptionsを扱う
- Next.js 16: App Router、React Server Components、React Compilerを使用する
- Open Source: どこにでもセルフホストでき、Vercelへワンクリックでデプロイできる
AIコーディングツールに親和的な設計
- AIツールがよりうまく動作するように、馴染みのあるNext.jsパターンを採用している
- App Router、Server Components、Server Actions、
"use cache"のような慣用的な構成を使う
- Commerce Kit SDKでは、
productBrowse()やcartUpsert()のようなメソッドに入力・出力の形が定義されている
- READMEでは、LLMが契約を理解していると正しいコードを書けると説明している
- 商品、variants、カート、checkoutといったドメインモデルがすでに存在し、型が明確になっている
- AGENTS.mdには、プロジェクトコンテキスト、SDKの例、Biomeのルール、検証チェックリストが含まれる
- AIエージェントがコードを書く前にコードベースを理解できるようにするためのもの
技術スタック
-
Next.js 16
- App Router、React Server Components、React Compilerを使用する
-
Bun
- 高速なJavaScriptランタイム兼パッケージマネージャとして使われる
-
Commerce Kit SDK
- Headless commerce API統合を担当する
-
Tailwind CSS v4
-
Shadcn UI
- Radix UIベースのアクセシブルなコンポーネントを50個以上提供する
-
TypeScript
-
Biome
クイックスタートと実行条件
- クイックスタートのコマンドは、リポジトリを複製し、Bunで依存関係をインストールしたあと、環境変数ファイルを作成する流れである
git clone https://github.com/yournextstore/yournextstore.git
cd yournextstore && bun install
cp .env.example .env.local # Add your YNS_API_KEY from https://yns.store/manage/settings/api
bun dev
- 実行後はlocalhost:3000でストアが動作する
- 必要条件は次のとおり
.env.exampleを.env.localにコピーし、YNS_API_KEYを設定する必要がある
YNS_API_KEYは管理パネルで発行されるAPIトークンである
テーマと拡張
- Your Next Storeは、異なるストアカテゴリ向けに149個のready-made themesを提供する
- 各テーマは、ホームページ、hero、カラーパレット、セクションレイアウトを完全に再設計したもの
- すべてのテーマは同じcore codebaseの上に作られている
- テーマは
theme-001からtheme-149までのブランチにある
- 単一のコマンドでテーマを切り替えられる
git checkout theme-016
- 各テーマブランチは
mainの上に載る単一コミットで、コミットメッセージがテーマの雰囲気を説明している
- テーマ一覧は次のコマンドで確認できる
git for-each-ref --sort=refname --format='%(refname:short) %(subject)' 'refs/remotes/origin/theme-*'
- すべてのテーマブランチは、
theme-001 … theme-149のように0埋めされた3桁IDを使っている
- テーマはビジュアルコンポーネントと静的アセットだけを変更する
ドキュメントと貢献
1件のコメント
Hacker News のコメント
Stripe に依存するものは絶対に作らないと思う
詐欺やチャージバックのせいで決済が難しい問題なのは認めるけれど、Stripe は正当なアカウントを凍結し、連絡を事実上無視してきた過去があまりに悪い。仲裁も強制し、その仲裁人は Stripe の収益に依存していて、規約上は凍結した資金を投資することさえできるようにしている。集団訴訟も禁じているが、この条項が実際に維持されるかは分からない
もう投稿は編集できないが、YNS の動作デモはここにある: https://demo.yournextstore.com
Stripe Link を見るにはメールアドレス
test@test.comを使い、有効化されたら000000を入力すればよい以前からまさにこういうものを何度も作りたいと思っていたが、よくできている
まだ詳しく見ていないが、デジタルダウンロードに対応しているのか気になる。デジタル商品のダウンロードや「リードマグネット」のダウンロードは、多くのストアに大きく役立ちそう
理想的な解決策があるなら、あるいは完璧なシナリオでどう動くべきかを教えてほしい。デジタルダウンロードとリードマグネットのダウンロードの両方について、参考にできるモデルが必要
デモで一番気に入った機能は 1ページ決済
Shopify の優れた決済フローに非常に近い。WooCommerce は Shopify の実質的なセルフホスティング代替になるべきだが、まだ不足していて、プラグインエコシステムがあっても、良いカートと決済を運用するのははるかに難しい。リリースおめでとう
まだ小さな改善点は残っているが、今の決済体験はかなりスムーズなので満足している。Stripe Link でも試したか気になる。過去の購入情報がインターネット上のどこかに保存されていれば、フォーム入力なしで決済全体が4クリックまで減る
デフォルトや無料テーマまで含めてレイアウトが不格好で、不必要に重く、決済画面はあまりに素人っぽく、多くの人が詐欺サイトのように感じかねない。良いテーマもあるが、かなりお金を払う必要がある
送料計算はどう処理しているのか気になる
これも Stripe の商品カタログ機能に含まれているのか?
すぐに配送機能が必要ならサードパーティに任せることもでき、一部のパートナーがその方式で機能を開発中。長期的には Stripe とより深く統合し、Stripe をECの中核インフラにしたい
個人的には Shippo が好みで、創業者たちも知っており、Weebly、現在の Square 内部に統合したことがある
データベースが不要なら、在庫管理はどうするのか気になる
たとえば複数の人が同じ商品を同時に買おうとして、在庫が足りない場合はどうなるのか?
ここに各ストアと Stripe の間の同期、たとえば原子性のような部分を管理する薄いレイヤーも開発中。まだ理想的な解決策ではないが、ほとんどの小規模ストアではうまく動き、さらに改善するアイデアもある。こうした状況では、コンポーザブル/ヘッドレス構成のほうがかえって負担になることもある
デモを使ってみたが、他の人が言うように本当によくできていて速い
ただし、カートから商品を削除しようとして数量を0にしたとき、リフレッシュが始まってインターフェースが固まるバグに遭遇した。この挙動のせいなのか現在のトラフィックのせいなのかは分からないが、参考までに
最近その部分を何度か反復改善したのだが、何かが漏れたようだ
かなりスムーズで、Umami 対応が気に入った
これを Dockerfile で一発で包めるとよさそうだが、個人用途なら自分でやっても難しくなさそう。サブスクリプション機能以外で Stripe をしばらく使っていないのだが、クーポンコードやセール対応はどれくらい難しいのか気になる。対応予定はある?
クーポンはロードマップにあり、追加も比較的簡単そう。一緒にベータテストする意向があるかも気になる。Dockerfile はコミュニティから提案されており、今日見てみる予定: https://github.com/yournextstore/yournextstore/pull/22/files
デモが速い理由は、マウスカーソルが乗ったりタップしたりしたときに一覧をプリフェッチしているから
伝統的なECでも可能な方式で、ユーザーデータを無駄にするこういうユーザー体験はあまり好きではない。プリフェッチを切るオプションはある?
ただし、ユーザー体験を考えるならそれが最善だとは思わない
ただし、グローバルにプリフェッチを切る方法はないことが分かった[0]。個別リンクごとに切るか、カスタム Link コンポーネントを作って使う必要がある
[0] https://github.com/vercel/next.js/discussions/24437
良い。ちょうどこういうものを探していた
ただしインストール中に
corepack installで pnpm@9.9.0 のハッシュ不一致エラーが出た。期待したハッシュと受け取ったハッシュが異なり、Internal Error: Mismatch hashesが発生するpnpmを 9.10.0 に上げたので、もう大丈夫先に
package.jsonからpackageManagerを完全に削除してから、もう一度試してもらえる? 可能なら短いビデオ通話で再現環境を直接見たい。現時点ではこちらで再現できていない