FIELD NOTE 03
会員サイトで怖いのは、『見えないはずの情報が見える』こと。
SUMERAGI WEBの顧客ポータルでは、顧客ごとの契約、制作サイト、修正依頼、メッセージ、ファイル、請求情報を扱います。画面で項目を隠すだけでは足りません。データベース側でも所属組織ごとにアクセスを制限し、ファイルはPrivate Storageに置く。ログイン画面の制作より、こちらの方がずっと重要です。
SECTION 01
会員サイトの値段を決めるのは、ログイン画面の『後ろ』
会員サイトの見積もりを考えるとき、『ログイン機能を付けたい』という言い方から始まることがよくあります。ログイン自体は入口です。費用差が大きくなるのは、入った後で何を見せ、何を編集させ、誰のデータと分けるか。
会員限定の記事を読むだけなら、既存SaaSやCMSで十分なケースがあります。一方、法人A社にはA社の契約と請求だけ、B社にはB社のファイルだけを見せる顧客ポータルになると、データ設計とアクセス制御が中心になります。
SUMERAGI WEBの顧客ポータルも後者です。契約、制作サイト、修正依頼、メッセージ、ファイル、請求を顧客組織ごとに分けています。画面数より、『他社のデータを絶対に混ぜない』ための設計へ時間を使いました。
SECTION 02
2026年の相場を見ると、SaaSとフル開発は桁が変わる
GXOの2026年版記事では、会員サイトをASP/SaaS、CMS、セミオーダー、フルスクラッチに分け、初期費用の目安をASP/SaaSは0〜30万円、CMSは30〜150万円、セミオーダーは100〜500万円、フルスクラッチは500万円以上と整理しています。
同じ『会員サイト』なのにこれだけ違うのは、サービスの自由度が違うからです。既製サービスのルールに合わせる代わりに安く早く始めるのか、自社の契約・業務フローに合わせて作るのか。ここを決めずに価格だけ比べても、答えは出ません。
| 方式 | 向いているケース | 見落としやすい点 |
|---|---|---|
| SaaS・ASP | 限定コンテンツなど標準機能で始めたい | 会員数課金、機能制限、データ移行 |
| CMS+プラグイン | 既存サイトに比較的単純な会員機能を足したい | 更新、プラグイン相性、複雑な権限 |
| セミオーダー | 標準機能に独自フローを追加したい | 追加できる範囲と保守方法 |
| オーダーメイド | 独自の顧客ポータル・業務連携が必要 | 要件定義、権限設計、テスト |
SECTION 03
費用を増やすのは『会員数』より『会員の種類』
1万人が全員同じ権限で記事を読むサイトと、100人でも管理者・法人責任者・一般メンバー・運営スタッフに分かれるサイト。開発の複雑さは後者が上になることがあります。
会員種別が増えると、見えるページ、編集できる項目、招待できる人、解約できる人が変わります。さらに法人単位で契約するなら、個人ユーザーと会社の所属関係も必要です。
『何人使うか』と同時に、『何種類の立場があるか』を聞くのはこのためです。
SECTION 04
ログインだけならWordPressでもよい。無理にフル開発しない
数本の限定記事、会員向けPDF、簡単なプロフィール。この程度なら、WordPressや会員SaaSで十分な場合があります。オーダーメイドが常に上位互換ではありません。
判断が変わるのは、顧客ごとに情報を出し分ける、契約状態と権限を連動させる、社内システムとつなぐ、複数の会員種別を扱う、といった要件が出てからです。既製機能に収まるうちは、既製機能を使う方が合理的です。
SECTION 05
顧客ポータルでは、表示項目より『会社の境界』を先に作る
顧客ポータルのトップに何を表示するかを考える前に、どのデータがどの会社に属するかを決めます。契約、サイト、問い合わせ、ファイル、請求書。全部に所属先が必要です。
SUMERAGI WEB PORTALでは、顧客組織を単位に会員を紐づけ、その組織に契約・制作サイト・チケット・ファイル・請求を紐づけています。この形にすると、『A社の担当者がB社の請求書を取得する』というアクセスをデータベース側で止められます。
見た目は普通のマイページでも、裏側にはこの境界があります。顧客ポータルの見積もりを見るときは、テナント分離やアクセス制御がどこまで含まれるか確認してください。
SECTION 06
RLSは、フロント画面の『非表示』とは別の防波堤
画面上で請求タブを隠したから安全、ではありません。APIへ直接アクセスされたときにも、他社データを返さない必要があります。
当社のポータルではSupabase/PostgreSQLのRow Level Security(RLS)を使い、ログイン中のユーザーと所属組織に応じてデータベース側で取得範囲を制限しています。管理者には管理者用の権限を持たせ、顧客側と分けます。
会員サイトで個人情報や契約情報を扱うなら、こうした『画面の外側』の対策も見積もり対象です。
SECTION 07
ファイル共有は、URLを知っていれば見られる置き方にしない
顧客ポータルでは、画像、PDF、修正資料、ロゴなどをやり取りしたくなります。ここで公開ストレージへそのまま置くと、URLが漏れたときに第三者が見られる可能性があります。
当社ではPrivate Storageへ保存し、ログインと権限を確認してアクセスを許可する構成にしています。さらにファイル容量、許可する種類、削除タイミングも決める。『アップロードボタン』は簡単に見えても、実運用ではここまでが機能です。
SECTION 08
月額課金で難しいのは支払いボタンより、失敗したとき
正常に毎月支払われるケースだけなら、決済連携は分かりやすいものです。問題は、カード期限切れ、支払い失敗、プラン変更、解約、無料期間終了、日割りの扱い。
決済事業者へカード情報を任せても、サイト側では契約状態と権限を同期する必要があります。支払いに失敗した瞬間にログインを止めるのか、猶予を設けるのか。管理者が手動で復旧できるのか。ここまで決めて初めて月額会員が運営できます。
SECTION 09
初期費用0円でも、3年間で高くなることはある
SaaSは初期費用を抑えやすい反面、会員数やストレージ、機能追加で月額が上がることがあります。オーダーメイドは初期費用が大きくても、長期で見ると固定費が読みやすいケースもある。どちらが得かは利用規模次第です。
比較するなら、初期費用+36か月の月額+決済やメールなどの従量費まで一度足してみる。さらに解約時にデータを取り出せるか、移行費がかかるかも確認します。『最初の30万円』だけでは判断しない方が安全です。
SECTION 10
費用を抑えたいなら、機能を削るより段階を分ける
初回リリースでは、会員登録、ログイン、マイページ、限定コンテンツ。次に請求情報、ファイル、メッセージ。さらに利用者が増えたら通知や自動化。こうやって段階を分けると、まだ使うか分からない機能へ先に投資せずに済みます。
ただし、将来法人会員を追加する予定があるなら、個人会員だけを前提にDBを固めすぎない。決済を入れる予定なら契約状態を後から持てるようにする。段階開発は、将来を考えないことではありません。将来を考えたうえで、今作らないものを決める方法です。
SECTION 11
見積もり前に、ログイン後の画面を1枚だけ手書きする
仕様書を作るより簡単な方法があります。紙に『ログイン後、この人に何を見せたいか』を書いてください。契約、請求、ファイル、予約、メッセージ。そこから、誰が編集するかを矢印で足す。
この一枚があれば、単純な会員サイトで済むのか、顧客ポータルが必要なのかが見え始めます。制作会社への相談も具体的になります。
- 会員は個人か法人か
- 会員種別はいくつあるか
- 会員ごと・会社ごとに表示を変えるか
- 決済や月額課金が必要か
- ファイル共有が必要か
- 運営側で編集・承認するものは何か
- 既存システムとの連携があるか
SECTION 12
会員サイトは『ログインできた』ところからが設計の本番
会員サイトの費用差は、ログイン機能そのものより、ログイン後のデータと権限で生まれます。限定記事だけなら既製サービスで十分。顧客別の契約やファイルまで扱うなら、アクセス制御と運用設計が中心になります。
私たちは、自社ポータルを作る中でこの差を改めて感じました。最初に考えるべきは『ログインを付けるか』ではなく、『ログインした人に、何を安全に任せたいか』。そこから構築方法を選ぶ方が、費用の理由も見えやすくなります。
QUESTIONS
よくある質問
Q. 会員サイトはWordPressでも作れますか?
限定コンテンツや比較的単純な会員管理なら候補になります。複雑な法人権限、顧客別データ、独自業務フロー、外部システム連携が必要なら別の構成を比較します。
Q. 月額課金の会員サイトも作れますか?
決済サービスと連携し、契約状態と会員権限を連動させる構成を検討できます。プラン変更、解約、支払い失敗時の扱いまで先に決めます。
Q. 顧客ごとに違う情報を表示できますか?
可能です。顧客組織や会員権限に応じて契約、ファイル、請求、コンテンツなどを分け、必要に応じてデータベース側でもアクセスを制限します。
Q. ファイルを安全に共有できますか?
Private Storageなどを使い、ログイン状態と権限を確認してからファイルへアクセスさせる構成を検討できます。容量、ファイル種類、保存期間も合わせて設計します。
参考資料
相場や仕様に関する数値は公開情報を参照しています。個別案件の見積額を示すものではありません。
