「自社のサービスやお店を、アプリにしたい」——そんな発注をご検討中の方に向けて書いています。
専門用語はできるだけ翻訳し、「どんな課題に、私たちがどう判断して、どう解決したか」を中心にお伝えします。アプリ・SaaS開発に興味のあるエンジニアの方にも、読み物として楽しんでいただける内容です。
題材は、私たちが自社で企画・開発・運営している、サウナ検索×サ活記録アプリ 「Sauna Sona(サウナソナ)」 です。2026年7月にiOSでリリースしたばかりの新しいアプリで、全国約5,500のサウナ施設に対応しています。この記事では、機能の一覧ではなく、「なぜその機能を、その形で作ったのか」という設計判断を、マーケティングの視点と技術の視点の両面からご紹介します。
📝 3行まとめ
① サウナーの体験は「探すアプリ・記録アプリ・お店ごとのサービス」に分断されている。ここに市場の余白がありました。
② Sauna Sonaは、探す → 行く → 記録する → また行くをひとつにつなぎ、ユーザーには「自分のサ活が貯まる場所」、店舗には「常連化の仕組み」を提供します。
③ この体験を低コスト・短期で立ち上げるための技術選定(iOSネイティブ+Firebase)まで、理由ごとご紹介します。
課題の見立て ― 人気なのに、体験が“バラバラ”
サウナ・サ活の人気はすっかり定着しました。ではアプリは足りているのか——実は「足りている」のではなく、役割ごとにバラバラなのが実情です。
- 「今日どこに行くか」を探すアプリ
- 入ったあとの「ととのい」を記録するアプリやメモ
- クーポンやスタンプで再訪を促す、お店ごとのLINEやカード
それぞれが別々で、自分のサ活が一か所にたまっていきません。お店から見ても、せっかく来てくれた常連さんに、次に来てもらうための接点が弱い。私たちはこの「分断」そのものを、狙うべき市場の余白だと見立てました。
Sauna Sonaが目指したのは、探すところから、訪問後の記録、そしてまた行くきっかけまでを、ひとつの体験としてつなぐことです。アプリ名の *Sona* は *Sauna*(サウナ)と *Sonar*(ソナー=探知)を掛け合わせた造語で、「自分に合う一軒を探知する」という世界観を表しています。
💡 発注者の方へ:新しいサービスを考えるとき、私たちはまず「機能が足りない場所」ではなく「体験が途切れている場所」を探します。分断をつなぐこと自体が、そのサービスの独自性になります。
ユーザー向け機能 ― 「自分のサ活が貯まる場所」をつくる
ここが起点です。まずユーザーに使い続けてもらえなければ、後述する店舗向けの仕組みも成り立ちません。機能は、サウナ体験の時間軸(探す→行く→記録する→振り返る)に沿って設計しました。
探す — 今いる場所から、今日行ける一軒を
- 現在地から近い順に施設を表示。一覧と地図を切り替えて探せます
- 詳細フィルター:サウナ室・水風呂の温度、外気浴、オートロウリュ、アウフグース、食事処、Wi-Fi、駐車場、タトゥーOK など、サウナーが本当に気にする条件で絞り込み
- 出張先・旅行先でも、地図から周辺を探せます
行く前に確認する
- 施設詳細で、設備・営業時間・料金・口コミ・混雑状況・クーポンをまとめて確認
- 経路案内は Apple マップ/Google マップ/Yahoo!カーナビに連携(車移動の多いサウナーの声を反映)
記録する — サウナ直後でも、こだわり派でも
- かんたん記録:施設・日付・ととのい度・一言メモを、脱力状態でも数タップで保存
- 詳細記録:サウナ→水風呂→外気浴をセットごとに記録。よく使う構成はテンプレートで即呼び出し、入力途中は自動下書き保存で消えにくく
振り返る — 続けたくなる“ごほうび”
- ログブック(月間カレンダー+タイムライン)で、通った日が色づいていきます
- 年次まとめ(Sauna Wrapped)で、1年のサ活をカードにしてシェアできます
- 記録はCSV/JSONでエクスポート可能。自分のデータは自分のもの、という姿勢です
「非公開が既定」という、いちばん大事な設計判断
ここが、私たちが最もこだわった一点です。多くのSNS的アプリは「公開が前提」で作られています。でもサウナーのログには、体重・体調・気分といった本音のメモが含まれます。だから Sauna Sona は、記録は既定で“自分だけに見える”ようにし、項目ごとに公開範囲を選べるようにしました。
「みんなに見せる」を前提にしないことは、機能をひとつ足すより難しい判断でした。でも、安心して本音を書ける場所であることが、記録アプリの継続率に直結すると考えました。
💡 発注者の方へ:ユーザーが本音を預けるサービスでは、「公開が既定か、非公開が既定か」という初期設定ひとつが信頼を左右します。これは技術ではなく姿勢の設計です。
店舗向け機能 ― 「来てくれた人に、もう一度」を仕組みにする
ユーザーの体験が回り始めたら、次はマネタイズです。ここでも発想は集客一辺倒ではありません。新規を集め続けるより、来てくれた人にもう一度来てもらう「常連化」に軸足を置きました。これを月額制の 「店舗プラン(¥4,800/月・税別)」 として提供しています。
- フォロー(お気に入り)+本日のロウリュ自動通知 … フォローしてくれた人へ、その日のロウリュ/アウフグース情報を毎朝自動でプッシュ通知。「今日行く理由」を手元に届けます
- お知らせ配信・クーポン … フォロワーへ直接届く告知。SNSのように流れて消えません
- チェックイン&スタンプカード … 通うほど貯まるスタンプで、再来店の動機を“見える化”
- 現在地の混雑状況 … 店舗だけが答えられる情報を機能に(これは無料で開放)
- 施設プロフィール編集(紹介文・写真ギャラリー・定休日・駐車場など)も無料
- 来店分析 … 常連・休眠・初回といった状態を、お店が把握できます
なぜ「混雑状況」と「プロフィール編集」を無料にしたのか
有料機能を並べる中で、この2つはあえて無料にしました。理由は、お店にとって“最初の一歩”のハードルを下げるためです。無料でも施設情報が充実し、混雑を発信できれば、ユーザーの利便性が上がる=アプリの価値が上がる。そのうえで「もっと集客したい」お店が有料プランに進む、という順番を設計しました。集客のフックは無料で、常連化の仕組みで課金する——これが店舗プランの骨格です。
💡 発注者の方へ:「どこまで無料で、どこから有料か」の線引きは、料金表の問題ではなく成長設計です。無料機能はユーザー価値とサービスの入口を、有料機能は継続課金の理由を担うよう、役割で分けて設計します。
スタンプの不正を「機能」ではなく「設計」で防いだ話
常連化の要になるスタンプカード。ここで一番の論点は不正防止でした。よくある「自分でチェックインボタンを押すだけ」の方式だと、来ていなくてもスタンプが貯まってしまいます。
私たちの判断はこうです。貯める側にだけ、鍵をかける。
- 貯めるときは、スタッフが客の端末に4桁のキーワードを入力して初めて+1。コードは公開せず、誤入力が続けばロックされ、1営業日1回まで。
- 使う(特典と引き換える)ときは、コード不要・アプリ操作だけ。理由はシンプルで、「使う=自分が正当に貯めた残高を減らすだけ」なので、そもそも不正が起きようがないからです。
“両側をガチガチに固める”のではなく、リスクのある側(貯める)にだけ手当てし、リスクのない側(使う)は徹底的に手軽にする。この非対称な設計が、お店の運用負担とユーザーの手間を同時に軽くしました。
💡 発注者の方へ:不正対策は「全部を厳しくする」と現場が回らなくなります。どこにリスクが集中しているかを見極めて、そこだけ締めるのが、使われる仕組みのコツです。
プライバシーを“設計”で守る
来店を記録すれば常連化に使えますが、そこには必ず「お客様の情報を、お店にどこまで渡すか」という論点がついて回ります。
Sauna Sona では、店舗に見せるのは 「常連が何人」「しばらく来ていない人が何人」といった集計値が中心で、個人を名指しで並べることを目的にはしていません。必要な“示唆”だけを取り出し、リスクの高い個人情報は持ちすぎない——これは、お客様の信頼を預かるあらゆるサービスに共通する勘所です。
技術の裏側 ― なぜ「iOSネイティブ × Firebase」で軽く作ったか
ここから少しだけ技術の話を。とはいえ大事なのは用語ではなく、「なぜその選択が、体験・コスト・スピードに効くのか」なので、その視点で書きます。
iOSネイティブ(SwiftUI)にした理由 = 体験のため
Sauna Sona はまずiOSネイティブで作りました。理由は明確で、サウナ直後の脱力した状態でも、地図がぬるぬる動き、数タップで記録できる軽快さが、このアプリの生命線だからです。全国5,500件超のピンを地図に出すために、マーカーは軽量にしてクラスタリング(近いピンをまとめる)で表示し、快適さを優先しました。「まずWebで」ではなく「まず一番使う画面を最高に」を選んだ判断です。
バックエンドは Firebase = お金とスピードのため
データの保管・通知・集計を担う“サーバー側”は、Firebase(Googleのクラウド基盤)の上に作りました。最初からフル自作のサーバーは組んでいません。
- 会員登録・データベース・プッシュ通知という「どのアプリでも必要な土台」は、自前で作らず借りる。これだけで初期の開発期間と費用を大きく圧縮できます。
- 「フォロワーにだけロウリュ通知を送る」「来店を記録してスタンプを加算する」といった、このサービスの価値そのものにあたる部分だけを、サーバー側の小さなプログラム(Cloud Functions)で作り込みました。
- 課金まわりは Stripe に任せ、自前実装の事故リスクを避けています。
これは技術自慢ではなく、「当たるか分からないサービスを、最初から重く作りすぎない」という提案です。まず軽く・速く出して、伸びる部分が見えてから作り込む——この順番をおすすめしています。
「データはキャッシュしない」という割り切り
もうひとつ、地味だけれど効いている判断があります。Sauna Sona は施設データを端末にため込まず、常にサーバーから最新を読む設計にしました。サウナは営業時間・料金・設備が変わりやすく、古い情報を見せてユーザーががっかりするのが一番避けたいこと。「速さのためのキャッシュ」より「正しさ」を優先し、データの正しさはFirebase一箇所に集約しました。
💡 発注者の方へ:技術選定は「流行っているか」ではなく「その事業のどこにお金と時間を使うべきか」で決めるものです。土台は借りて、価値の中心にだけ投資する。私たちはこの順番を、設計の最初からご提案します。
拡張しやすさも“設計”しておく
サウナの検索条件は、これからも増えます(新しい設備、新しいトレンド)。そこで絞り込み機能は、条件を1行足すだけで増やせる構造にしてあります。「あとから育てられる」ことを前提に骨格を作っておくと、リリース後の改善が速く・安くなります。作って終わりではなく、運用しながら伸ばせる形にしておくのも、私たちが大事にしている設計です。
私たちが提供できること
Sauna Sona の企画・開発・運営を通じて、私たちはこんなことが得意になりました。
- 「体験が途切れている場所」から発想する企画・要件定義(探す×記録×常連化のような一体型設計)
- OMOの設計(来店前・来店中・来店後を、ひとつの体験としてつなぐ)/店舗向けアプリ・SaaS
- iOSネイティブアプリの開発(地図・記録など、体験の軽快さが要になるプロダクト)
- Firebaseを使った、低コスト・短期で立ち上げるバックエンド構築、プッシュ通知・スタンプ/ポイントなどのリピート施策の実装
- プライバシー配慮・不正対策を“設計”で解くアプローチ(個人情報を持ちすぎない/リスクの集中点だけ締める)
「アプリで集客したい」「店舗の業務や常連化をアプリ・SaaSで仕組み化したい」「でも何から作ればいいか分からない」——そのご相談の段階こそ歓迎です。“全部入りで重いアプリ”ではなく、“目的に効いて、続けられるアプリ”を一緒に作りましょう。

