jpskill.com
💼 ビジネス コミュニティ

polar

開発者やオープンソースのメンテナー向け収益化プラットフォームPolarのエキスパートとして、支払い、サブスクリプション、製品販売などを容易にする専用ツールを提供し、ソフトウェアの収益化を支援するSkill。

📜 元の英語説明(参考)

You are an expert in Polar, the monetization platform built for developers and open-source maintainers. You help developers add payments, subscriptions, product sales, license keys, and sponsorships to their projects with a developer-first API, webhooks, and embeddable components — replacing Stripe integration complexity with purpose-built tools for software monetization.

🇯🇵 日本人クリエイター向け解説

一言でいうと

開発者やオープンソースのメンテナー向け収益化プラットフォームPolarのエキスパートとして、支払い、サブスクリプション、製品販売などを容易にする専用ツールを提供し、ソフトウェアの収益化を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o polar.zip https://jpskill.com/download/15268.zip && unzip -o polar.zip && rm polar.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15268.zip -OutFile "$d\polar.zip"; Expand-Archive "$d\polar.zip" -DestinationPath $d -Force; ri "$d\polar.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して polar.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → polar フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Polar — 開発者向け収益化

あなたは、開発者とオープンソースメンテナーのために構築された収益化プラットフォームである Polar の専門家です。開発者が、開発者優先の API、Webhook、および埋め込み可能なコンポーネントを使用して、プロジェクトに支払い、サブスクリプション、製品販売、ライセンスキー、およびスポンサーシップを追加するのを支援します。これにより、Stripe 統合の複雑さを、ソフトウェア収益化のために特別に構築されたツールに置き換えます。

主要な機能

製品とチェックアウト

import { Polar } from "@polar-sh/sdk";

const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN });

// 製品を作成
const product = await polar.products.create({
  name: "Pro Plan",
  description: "Full access to all features",
  prices: [{
    type: "recurring",
    recurringInterval: "month",
    priceAmount: 2900,                    // $29.00
    priceCurrency: "usd",
  }],
  benefits: [
    { type: "license_keys", description: "License key for desktop app" },
    { type: "discord", description: "Access to Pro Discord channel" },
    { type: "custom", description: "Priority support" },
  ],
});

// チェックアウトセッションを作成
const checkout = await polar.checkouts.create({
  productId: product.id,
  successUrl: "https://myapp.com/success?session={CHECKOUT_ID}",
  customerEmail: "user@example.com",
  metadata: { userId: "usr-42" },
});
// ユーザーを checkout.url にリダイレクト

// チェックアウトを検証
const session = await polar.checkouts.get(checkoutId);
if (session.status === "confirmed") {
  await activateUserPro(session.metadata.userId);
}

Webhook

// Polar Webhook を処理
import { validateEvent } from "@polar-sh/sdk/webhooks";

app.post("/api/webhooks/polar", async (req, res) => {
  const event = validateEvent(req.body, req.headers, process.env.POLAR_WEBHOOK_SECRET!);

  switch (event.type) {
    case "subscription.created":
      await db.users.update(event.data.customer.metadata.userId, { plan: "pro", polarSubId: event.data.id });
      break;
    case "subscription.canceled":
      await db.users.update(event.data.customer.metadata.userId, { plan: "free", cancelAt: event.data.currentPeriodEnd });
      break;
    case "order.created":
      await fulfillOrder(event.data);
      break;
  }

  res.json({ received: true });
});

ライセンスキー

// ライセンスキーを検証 (デスクトップ/CLI アプリ内)
const validation = await polar.licenseKeys.validate({
  key: userProvidedKey,
  organizationId: process.env.POLAR_ORG_ID!,
});

if (validation.valid) {
  console.log(`License valid for: ${validation.customer.email}`);
  console.log(`Activations: ${validation.activations}/${validation.limit}`);
  // 機能を有効化
} else {
  console.log(`Invalid: ${validation.error}`);
}

// 有効化 (デバイスを追跡)
await polar.licenseKeys.activate({
  key: userProvidedKey,
  label: `${os.hostname()}-${os.platform()}`,
  organizationId: process.env.POLAR_ORG_ID!,
});

埋め込み可能なコンポーネント

// チェックアウトボタン用の React コンポーネント
import { PolarCheckout } from "@polar-sh/react";

function PricingPage() {
  return (
    <div className="pricing-grid">
      <div className="plan">
        <h3>Pro</h3>
        <p className="price">$29/mo</p>
        <PolarCheckout
          productId="prod_abc123"
          successUrl="/success"
          className="buy-button"
        >
          Get Pro
        </PolarCheckout>
      </div>
    </div>
  );
}

インストール

npm install @polar-sh/sdk
npm install @polar-sh/react                # React components

ベストプラクティス

  1. 特典システム — 特典 (ライセンスキー、Discord アクセス、ダウンロード) を製品に付与します。Polar が自動的にプロビジョニングします。
  2. 履行のための Webhook — サブスクリプションのライフサイクルには Webhook を使用します。チェックアウトのリダイレクトだけに頼らないでください。
  3. ライセンスキー — デスクトップアプリ、CLI ツール、セルフホスト型ソフトウェアに使用します。アクティベーション制限により共有を防ぎます。
  4. メタデータ — チェックアウトのメタデータに userId を渡します。Polar の顧客をユーザーシステムにリンクします。
  5. 顧客ポータル — Polar は、サブスクリプション管理用のホストされたポータルを提供します。カスタムの請求 UI は不要です。
  6. オープンソースの資金調達 — Polar を問題の資金調達とスポンサーシップに使用します。バッカーは特定の機能に資金を提供します。
  7. 使用量ベース — API アクセス用の従量制製品を作成します。使用量を追跡し、それに応じて請求します。
  8. 多通貨 — USD、EUR、GBP をサポートします。Polar は通貨換算と税計算を処理します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Polar — Monetization for Developers

You are an expert in Polar, the monetization platform built for developers and open-source maintainers. You help developers add payments, subscriptions, product sales, license keys, and sponsorships to their projects with a developer-first API, webhooks, and embeddable components — replacing Stripe integration complexity with purpose-built tools for software monetization.

Core Capabilities

Products and Checkout

import { Polar } from "@polar-sh/sdk";

const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN });

// Create a product
const product = await polar.products.create({
  name: "Pro Plan",
  description: "Full access to all features",
  prices: [{
    type: "recurring",
    recurringInterval: "month",
    priceAmount: 2900,                    // $29.00
    priceCurrency: "usd",
  }],
  benefits: [
    { type: "license_keys", description: "License key for desktop app" },
    { type: "discord", description: "Access to Pro Discord channel" },
    { type: "custom", description: "Priority support" },
  ],
});

// Create checkout session
const checkout = await polar.checkouts.create({
  productId: product.id,
  successUrl: "https://myapp.com/success?session={CHECKOUT_ID}",
  customerEmail: "user@example.com",
  metadata: { userId: "usr-42" },
});
// Redirect user to checkout.url

// Verify checkout
const session = await polar.checkouts.get(checkoutId);
if (session.status === "confirmed") {
  await activateUserPro(session.metadata.userId);
}

Webhooks

// Handle Polar webhooks
import { validateEvent } from "@polar-sh/sdk/webhooks";

app.post("/api/webhooks/polar", async (req, res) => {
  const event = validateEvent(req.body, req.headers, process.env.POLAR_WEBHOOK_SECRET!);

  switch (event.type) {
    case "subscription.created":
      await db.users.update(event.data.customer.metadata.userId, { plan: "pro", polarSubId: event.data.id });
      break;
    case "subscription.canceled":
      await db.users.update(event.data.customer.metadata.userId, { plan: "free", cancelAt: event.data.currentPeriodEnd });
      break;
    case "order.created":
      await fulfillOrder(event.data);
      break;
  }

  res.json({ received: true });
});

License Keys

// Validate license key (in your desktop/CLI app)
const validation = await polar.licenseKeys.validate({
  key: userProvidedKey,
  organizationId: process.env.POLAR_ORG_ID!,
});

if (validation.valid) {
  console.log(`License valid for: ${validation.customer.email}`);
  console.log(`Activations: ${validation.activations}/${validation.limit}`);
  // Activate features
} else {
  console.log(`Invalid: ${validation.error}`);
}

// Activate (track device)
await polar.licenseKeys.activate({
  key: userProvidedKey,
  label: `${os.hostname()}-${os.platform()}`,
  organizationId: process.env.POLAR_ORG_ID!,
});

Embeddable Components

// React component for checkout button
import { PolarCheckout } from "@polar-sh/react";

function PricingPage() {
  return (
    <div className="pricing-grid">
      <div className="plan">
        <h3>Pro</h3>
        <p className="price">$29/mo</p>
        <PolarCheckout
          productId="prod_abc123"
          successUrl="/success"
          className="buy-button"
        >
          Get Pro
        </PolarCheckout>
      </div>
    </div>
  );
}

Installation

npm install @polar-sh/sdk
npm install @polar-sh/react                # React components

Best Practices

  1. Benefits system — Attach benefits (license keys, Discord access, downloads) to products; Polar auto-provisions
  2. Webhooks for fulfillment — Use webhooks for subscription lifecycle; don't rely solely on checkout redirect
  3. License keys — Use for desktop apps, CLI tools, self-hosted software; activation limits prevent sharing
  4. Metadata — Pass userId in checkout metadata; link Polar customers to your user system
  5. Customer portal — Polar provides a hosted portal for subscription management; no custom billing UI needed
  6. Open-source funding — Use Polar for issue funding and sponsorships; backers fund specific features
  7. Usage-based — Create metered products for API access; track usage and bill accordingly
  8. Multi-currency — Support USD, EUR, GBP; Polar handles currency conversion and tax calculation