個人開発者が「自分の販売ページ」を持つ最小構成 — ドメイン+サーバー+決済を月1,000円で
Chrome拡張を公開して5ヶ月、売上ゼロでした。原因の一つは「ストアの外に、価格と理由を書いた自分のページが無かった」こと。いま使っている構成をそのまま書きます。
本記事には広告(アフィリエイトリンク)を含みます。紹介しているサービスは、筆者が実際に契約・利用しているか、同等の用途で比較検討したものに限っています。
ストアに出しただけでは売れない理由
Chrome Web Store、App Store、Microsoft Store。「ストアに出せば販売ページは要らない」と思っていた時期が私にもありました。実際には、ストアのページには3つの弱点があります。
- 検索された後にしか見られない。「○○ 移行 方法」で困っている人は、Googleで検索します。ストアのページはその検索結果に出てきません。
- 価格の理由を書けない。「なぜ買い切りなのか」「無料版との差はどこか」「法人は何台まで」。ストアの説明欄は短く、比較表も置けません。
- 導線を設計できない。無料記事 → 無料版 → 上限に当たる → Pro購入、という流れは、自分のページがないと作れません。
私の場合、さらに恥ずかしい理由が2つありました。販売ページに料金が載っていなかった(5ヶ月間コメントアウトされていた)ことと、拡張機能のライセンス判定が最初からProになっていたことです。この2つの話はnoteの有料記事に全部書いたので、ここでは「ページを持つ」方に絞ります。
最小構成は3点だけ
| 部品 | 役割 | 私の選択 | 月額の目安 |
|---|---|---|---|
| 1. 独自ドメイン | 信頼と検索。ストアのURLより覚えやすい | .com(サーバー契約の無料特典) | ¥0〜150 |
| 2. サーバー | 静的HTML1枚と、問い合わせフォーム・アクセス解析を置く | レンタルサーバー(共用) | ¥700〜1,100 |
| 3. 決済+ライセンス | カード決済、領収書、ライセンスキーの発行と検証API | Lemon Squeezy | 売上の5% + $0.50/件 |
合計で月1,000円前後。これより安くする方法(全部無料)もありますが、後述の理由で私はこの構成に落ち着きました。
1. サーバー: 無料ホスティングかレンタルサーバーか
| 選択肢 | 費用 | できること | 向いている段階 |
|---|---|---|---|
| GitHub Pages | 無料 | 静的HTMLのみ。独自ドメイン可。PHP・フォーム不可 | まずページを1枚出す段階。READMEとの相性が良い |
| Vercel / Netlify / Cloudflare Pages | 無料枠あり | 静的+サーバーレス関数。商用利用は有料プラン条件を確認 | Next.js等で作る人。日本語のサポートは無い |
| レンタルサーバー(エックスサーバー) | スタンダード 月¥990〜1,100(契約期間で変動)。初期費用無料、独自ドメイン無料特典、10日間無料 | 静的HTML+PHP+メール+アクセスログ。WordPressも動く | 問い合わせフォームと独自ドメインのメールが要る段階 |
| レンタルサーバー(ConoHa WING) | ベーシック 月¥678〜990(契約期間で変動)。初期費用無料、独自ドメイン無料特典 | 同上。管理画面が新しく、表示速度の評判が良い | 同上。価格重視ならこちら |
私は静的HTML 1枚 + 問い合わせ用のPHP + Google Tag Manager という構成で、共用のレンタルサーバーに置いています。理由は「問い合わせフォーム」と「独自ドメインのメールアドレス」が、法人向けライセンス(領収書の発行先)を売り始めた時点で必要になったからです。個人向けだけなら、GitHub Pagesで始めて困ってから移せば十分です。
料金はキャンペーンで月ごとに変わるので、契約期間(12ヶ月か36ヶ月か)と無料ドメインの個数を申し込み画面で確認してください(上の数字は2026年10月時点の目安)。
2. ドメイン: サーバーの無料特典で足りる
別途ドメイン業者で取る必要はありません。上記のレンタルサーバーはどちらも契約中は独自ドメインが無料(更新費用も無料)です。選ぶのは .com か .app。日本語ユーザーしか想定しなくても、.jp は年額が高く、海外販売に広げたときに損をします。
ドメイン名はプロダクト名ではなく屋号にしておくと、2つ目のプロダクトを同じサイトで売れます。私は luminasparkdesign.com の下に /CloudMigrator.html と /jp/CloudMigrator.html を置いています。
3. 決済とライセンス: 4つの比較
| サービス | 手数料(目安) | 税務(消費税/VAT) | ライセンスキー | 向いている人 |
|---|---|---|---|---|
| Lemon Squeezy | 5% + $0.50/件 | 販売者(MoR)として代行。海外の税は考えなくてよい | 発行・有効化・検証APIが標準 | 海外にも売る。アプリ・拡張機能のキー管理をしたい |
| Stripe | 3.6%(国内カード) | 自分で処理 | 自作が必要 | 国内中心で手数料を抑えたい。サブスク設計を細かくやる |
| Gumroad | 10% + 決済手数料 | MoRとして代行 | 簡易なキー発行あり | デジタルコンテンツを手早く。手数料は高い |
| BOOTH | 5.6% + ¥22/件 | 国内のみ | なし | 日本語圏の個人向け。クリエイター文脈が合う場合 |
私がLemon Squeezyにした決め手は、ライセンスキーの「有効化」と「検証」のAPIが最初からあることです。アプリ側は /v1/licenses/activate にキーを送り、返ってきた valid と store_id・product_id・variant_id を照合するだけで済みます。
valid: true は「キーとして有効」という意味でしかなく、どの商品のキーかは別の項目にあります。この1点を見落として公開した話は、X(@skgc0123)とnoteに実録で残しています。// Lemon Squeezy のライセンス検証(最小)
const r = await fetch("https://api.lemonsqueezy.com/v1/licenses/validate", {
method: "POST",
headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ license_key: key, instance_id: instanceId })
});
const j = await r.json();
const ok = j.valid === true
&& j.meta.store_id === MY_STORE_ID
&& j.meta.product_id === MY_PRODUCT_ID; // ← ここを省くと事故る
4. ページに最低限載せるもの
- 価格。3列(無料 / 個人 / 法人)で、無料版の上限を数字で書く。「料金が載っていないページ」は、載っていないこと自体が不信の理由になります。
- 無料版のダウンロードボタン。購入の前に必ず試せること。
- 買い切りかサブスクか。一言で。
- OS・対応環境・既知の制約。Macの「開発元を確認できません」の対処まで書く。
- 返金・プライバシー・特定商取引法の表記。法人に売るなら必須。1枚ずつ別ページで。
- 問い合わせ先。フォームかメール。ここでレンタルサーバーのPHPが効く。
5. 公開後の導線(ページを作っただけでは誰も来ない)
自分のページができたら、次は「誰がどこから来るか」です。私が使っている3本の導線です。
- 検索(note無料記事 → ページ)。困りごとのキーワードで無料記事を書き、末尾からページへ。noteはGoogleに拾われるのが速い。
- X(実録)。失敗→気づき→直した、の3行と実画面。宣伝よりも「作った人の実録」の方が反応が出ます。
- GitHub README。技術者向け。ツールの一部をOSSで公開し、READMEからページへ。
6. 売れた後の税務(忘れると翌年の3月に困る)
副業の所得(売上 − 経費)が年20万円を超えると確定申告が必要です。サーバー代・ドメイン代・決済手数料・開発に使ったPCやソフトは経費になります。初年度から会計ソフトで売上と経費を記録しておくと、申告のときにLemon Squeezyの明細(ドル建て)を円換算し直す作業が消えます。
どちらも無料プランか無料期間があります。「開業届を出して青色申告にするか」は、売上が月数万円を超えてから考えれば十分です。
公開前チェックリスト(10項目)
- 価格がページに表示されている(コメントアウトされていない)
- 購入ボタンがテスト環境ではなく本番の決済URLを指している
- 無料版の上限が数字で書かれている
- ライセンス検証が
store_id / product_id / variant_idを照合している - ライセンスの有効期限設定が「買い切り」と矛盾していない(1年で失効する設定になっていないか)
- 購入 → キー受信 → 有効化 → 再起動、を第三者のアカウントで通した
- 返金・プライバシー・特商法のページがある
- 「外部送信なし」と書くなら、本当に何も送っていない(faviconの取得などで外部ドメインに送っていないか)
- OG画像とタイトルが設定されていて、Xに貼ったときにカードが出る
- 問い合わせフォームが自分のメールに届く
23項目の詳細版と、売上ゼロだった5ヶ月の原因の全記録
課金フラグの初期値、消えた購入リンク、1年で失効するライセンス設定、「完全ローカル」のはずの外部送信。自分の2製品で起きたことを全部洗い出した有料記事(¥1,480)です。無料部分だけで原因の大半は分かります。
noteで読むFAQ
WordPressは要りますか?
販売ページ1枚なら要りません。記事を自分のサイトで書き続けるつもりなら入れてもいいですが、私はnoteに記事を置いてサイトは静的HTMLのまま、という分担にしています。更新が無いページはHTML 1枚の方が速く、壊れません。
法人に売るときに追加で要るものは?
領収書(Lemon Squeezyは購入直後に発行される)、特定商取引法の表記、台数ライセンスの条件、問い合わせ先。この4つが揃っていれば、稟議に回る金額(数万円)までは普通に通ります。
海外に売るつもりが無くてもLemon Squeezyでいい?
問題ありません。日本円表示にも対応しています。逆に、将来海外に売る可能性が少しでもあるなら、最初からMoR型にしておくと税務の作り直しが要りません。