WorksHub

PRIVATE MUTUAL MATCHING

Secret Match

同じ場所にいる参加者が匿名で一人を選び、相互に選んだ二人だけに結果を知らせるブラウザツールです。アカウント登録やインストールは必要ありません。

使い方

幹事が男性・女性それぞれの人数を指定して部屋を作り、8文字の部屋IDと6桁の合言葉を参加者へ共有します。合計人数は20人までで、参加枠は作成後に変更できません。全員が揃うと投票へ進み、異なる参加枠の候補から一人、または「今回は選ばない」を選択します。

プライバシー設計

Cloudflare WorkerだけがD1データベースを操作します。合言葉と参加トークンはSHA-256のハッシュとして保存し、投票先は公開レスポンスへ含めません。結果は各参加者の認証情報を使って個別に取得します。

安全に使うために

  • 参加者全員の同意を得てから利用してください。参加しない選択も尊重します。
  • 実名、連絡先、SNS IDなど個人を特定できる情報は入力せず、当日だけ通じるニックネームを使ってください。
  • 部屋IDと合言葉は参加者だけに共有し、SNSなど公開の場所へ載せないでください。
  • 結果画面を本人の許可なく撮影・共有しないでください。結果を言うよう迫る使い方にも向きません。

活用例と進行のコツ

少人数の交流会で使う

幹事が参加者を数えてから部屋を作り、同じ会場で部屋IDと合言葉を口頭または限定した連絡手段で伝えます。人数設定と実際の参加者数が違うと投票開始を待ち続けるため、途中参加・欠席が確定してから作成すると進行しやすくなります。参加枠は作成後に直せないので、設定を誤った場合は新しい部屋を作り直します。

全員が同時に操作する

参加後は待機画面を開いたままにし、幹事が「全員参加済み」を確認してから投票時間を設けます。投票はやり直せないため、候補名と選択状態を確認してから確定します。選びたい相手がいない場合のために「今回は選ばない」も用意されており、無理に誰かを選ぶ必要はありません。

結果を個人のものとして扱う

全員の投票後、成立した場合は相手のニックネームが本人の画面だけに表示されます。成立しなかった場合も、誰が誰へ投票したかは示されません。結果発表会のように画面を一斉公開するより、各自が確認して終了する運用がこの仕組みに合っています。

データの保存と削除

部屋、参加者、投票はCloudflare D1に保存され、作成から24時間で利用できなくなります。期限切れデータは、新しい部屋が作成された際の処理で削除されます。サーバーにはニックネームや投票判定に必要な情報が入るため、公開したくない個人情報は最初から入力しないでください。

端末側では、部屋へ参加した際の認証情報をそのタブのsessionStorageに保存します。結果画面の「参加情報を消して終了」を押すと削除され、タブやブラウザを閉じた場合も通常はセッションの終了とともに消えます。確実に消したい場合は終了ボタンを使うか、ブラウザ設定からSecret Matchのサイトデータを削除してください。ブラウザ側の削除だけでは、24時間以内のサーバーデータを個別に消す操作にはなりません。

参加情報はアカウントへ同期されないため、機種変更や別ブラウザへの引き継ぎはできません。投票途中で端末を替えると同じ参加者として復帰できないので、開始から結果確認までは同じ端末とタブを使ってください。

よくある質問(FAQ)

料金や登録は必要ですか?

利用料金はかからず、アカウント登録やアプリのインストールも不要です。部屋を作る人と参加者の双方がブラウザから操作します。

スマートフォンで使えますか?

スマートフォンのブラウザで利用できます。投票が完了するまではページを閉じず、通信が安定した場所で操作してください。

オフラインでも動きますか?

動きません。部屋の作成、参加状況の確認、投票、結果判定はいずれもCloudflare WorkerのAPIと通信するため、インターネット接続が必要です。

誰に投票したかを幹事が確認できますか?

通常の画面や公開APIのレスポンスには投票先を含めず、幹事向けの投票一覧機能もありません。ただし運営基盤には判定用データが保存されるため、機密情報を預ける用途ではありません。

画面を閉じてしまった場合はどうなりますか?

sessionStorageの参加情報が失われると、同じ参加者として結果を取得できないことがあります。再参加で同じニックネームを復元する仕組みではないため、開始後は結果が出るまで同じタブを維持してください。

部屋をすぐ削除できますか?

部屋全体を作成者が即時削除する機能はありません。端末の参加情報は終了操作で消せますが、部屋と投票は24時間の有効期限後に利用できなくなります。

関連記事

PRIVATE MUTUAL MATCHING

Secret Match

A browser tool where participants in the same place anonymously choose one person and only mutually matched pairs receive a result. No account or installation is required.

How it works

The host sets the number in each of the two participant groups and shares an eight-character room ID and six-digit passphrase. Up to 20 people can join and groups cannot change afterward. When everyone is present, choose one person from the other group or “No selection this time.”

Privacy design

Only the Cloudflare Worker accesses the D1 database. Passphrases and participant tokens are stored as SHA-256 hashes, votes are omitted from public responses, and each result requires that participant's credentials.

Using it safely

  • Obtain consent from everyone and respect the choice not to participate.
  • Use a nickname for the event, not a real name, contact details, or social-media ID.
  • Share the room ID and passphrase only with participants, not publicly.
  • Do not capture or share result screens without permission or pressure anyone to reveal a result.

Examples and facilitation tips

Use it at a small gathering

Count participants before creating the room and share credentials verbally or through a limited channel at the venue. A mismatch between configured and actual attendance prevents voting from starting, so wait until attendance is settled. A mistaken group size requires a new room.

Have everyone operate it together

Keep the waiting screen open after joining. Once the host confirms everyone is present, allow time to vote. Votes cannot be redone, so check the candidate and selection before confirming. Choosing nobody is always valid.

Treat each result as personal

After all votes, a successful match shows the other nickname only on the participant's screen. An unsuccessful result does not reveal who voted for whom. Private individual review suits this design better than publicly displaying every screen.

Saving and deleting data

Rooms, participants, and votes are held in Cloudflare D1 and become unavailable 24 hours after creation. Expired data is removed when a new room is created. Because the server holds nicknames and matching data, never enter personal information you would not want stored.

Joining credentials are stored in sessionStorage for that tab. “Clear participation data and finish” removes them, and closing the tab or browser normally ends the session. Browser-side deletion does not individually remove server data before its 24-hour expiry.

Credentials do not sync to an account or transfer to another device or browser. Use the same device and tab from joining through result review.

Frequently asked questions

Is payment or registration required?

No. Hosts and participants both use a browser without an account or app installation.

Can I use it on a phone?

Yes. Keep the page open until voting completes and use a stable connection.

Does it work offline?

No. Room creation, attendance, voting, and matching all communicate with the Cloudflare Worker API.

Can the host see individual votes?

Normal screens and public API responses omit votes, and there is no host vote list. The operating infrastructure still stores matching data, so this is not a tool for confidential secrets.

What happens if I close the page?

If sessionStorage credentials are lost, the same participant may be unable to retrieve the result. There is no nickname-based recovery, so keep the same tab open.

Can a room be deleted immediately?

The creator cannot immediately delete the whole room. Local participation data can be cleared, while the room and votes become unavailable after 24 hours.

Related articles