「なんね?」から始まる、極小の一時チャット。
nanne は、URLをひとつ渡すだけで、知らない人同士でもすぐ話せる小さなチャットサービス/OSSツールの構想です。
名前は北九州などで使われる方言の「なんね?」から。標準語なら「なに?」「どうしたん?」くらいの、会話の入口になる短い呼びかけです。
Discordのサーバーを作るほどではない。LINEを交換するほどでもない。アカウントを作って、プロフィールを書いて、フォローし合う必要もない。
ただ、少し話したい。
nanne は、そのための極小の通信路を目指します。
部屋を作る
↓
URLを相手に渡す
↓
入る
↓
話す
↓
しばらくしたら消える
サービス側が人間関係を囲い込むのではなく、必要な時間だけ小さな場所を貸すイメージです。
nanne は、特定サービス専用の巨大なチャット基盤ではなく、必要なときに持ってきて使える極小のチャットツールとして公開します。
- 小さい
- 読める
- 改造しやすい
- 自分でホストできる
- 不要なSNS機能を持たない
- 別のWebサービスや小さなプロジェクトへ組み込みやすい
「ちょっと人間同士で話せる場所が必要」というときに、ゼロからチャット機能を作らず、nanne をfork・改造・組み込みできることを目指します。
ライセンスは MIT License。商用・非商用を問わず、MIT Licenseの条件に従って利用、改変、再配布できます。
→ LICENSE
初期版は、できるだけ機能を増やさない。
- アカウント不要
- 招待URLで入室
- 2人〜少人数のルーム
- テキストチャットのみ
- リアルタイム送受信
- ルーム検索なし
- 公開タイムラインなし
- フォロー / フレンド機能なし
- 画像・動画・ファイル送信なし
- 既読・リアクション・スタンプなし
- 一定期間後に履歴を自動削除
- モバイルでもすぐ使える最小UI
「チャットサービスを作る」と聞いて想像する機能の多くを、意図的に持たないところから始めます。
- イベントや即席チームの一時連絡
- 個人売買などで、本名のSNSを交換せず話したいとき
- 取材・創作企画・共同作業の短期連絡
- その場だけの相談や打ち合わせ
- 既存サービスへ極小の利用者間チャットを追加したいとき
- 「ちょっとこのURLで話そう」が一番早い場面
恒久的なコミュニティを作る道具ではなく、会話のための仮設小屋です。
機能を足すより、なくても成立するものを削る。
会話を永遠に蓄積しない。保存期間は短く、利用者にも分かる形にする。
登録やプロフィール作成より先に話せることを優先する。
ルームは検索・一覧公開せず、招待URLを知っている人が入る形を基本とする。
目的は新しいチャット技術を発明することではなく、軽率に使える小さな通信サービスを、堅実に運用すること。
少なくとも初期段階では、以下を目指しません。
- SNS化
- 大規模コミュニティ
- 無限履歴
- AIチャット
- 音声 / ビデオ通話
- ファイルストレージ
- 高機能なユーザー管理
- 広告やエンゲージメント最大化
nanne のMIT Licenseは、ソフトウェアを自由に使うためのライセンスです。サービス運営に必要な行政上の手続まで不要になるわけではありません。
日本で nanne を第三者向けに公開し、利用者同士の通信を媒介するサービスとして運営する場合は、利用形態によって電気通信事業法上の登録・届出対象となることがあります。
特に、人間同士のメッセージを自分のサービスで送受信させる形で公開する場合は、公開前に対象性を確認してください。
届出が必要なケースでは、e-Govの「電気通信事業の届出」から電子申請できます。公式案内上、届出は事業開始前、手数料なしです。法人・個人や設備の有無によって様式が異なります。
手続の確認方法、e-Govへの導線、変更時・廃止時の手続まで、OSS利用者向けに別ページへまとめています。
法務・名称の調査結果も、公開前の確認用にまとめています。
法令や手続は変更されることがあります。実際の公開時には必ず最新の総務省・e-Gov情報を確認し、迷う場合は管轄の総合通信局等へ相談してください。
「軽率に作る」は、法務や安全まで軽率にするという意味ではありません。
電気通信事業法以外にも、少なくとも次を確認します。
- プライバシーポリシー
- 利用規約
- メッセージ保存期間と削除方針
- 不正利用・通報・ブロック等の最低限の安全設計
- ログやアクセス情報をどこまで保持するか
- 利用するインフラや外部サービスの規約・データ取扱い
Issue #6 で、READMEに書いていた最小体験を実装しています。
部屋を作る → URLを渡す → 入る → 話す → 24時間で消える
現在の実装は Cloudflare Workers + Durable Objects を使います。フロントエンドはフレームワークを使わない静的HTML / CSS / JavaScriptです。
v1では次を固定しています。
- ルームURLは推測困難なランダムID
- ルーム寿命は作成から24時間(会話しても延長しない)
- 参加者名は入力不要で、動物名を自動割り当て。同じブラウザ・同じ部屋では再訪しても同じ名前を使う
- 1ルーム最大8接続
- 1メッセージ最大1000文字
- 保存する履歴は最新100件まで
- メッセージ本文はHTMLとして解釈しない
- 期限時にメッセージ履歴を削除し、期限切れ状態だけを残す
v1の参照デプロイ先は Cloudflare Workers です。
いちばん簡単な方法は、このリポジトリをforkし、Cloudflare Dashboardの Workers & Pages → Create application → Import a repository からforkを接続する方法です。production branchを main にすると、その後は main へのpushに合わせて自動build / deployできます。
既存の wrangler.jsonc に Static Assets と Durable Objects の設定が入っているため、通常はCloudflare側でDurable Objectを手作業で作る必要はありません。
詳しい手順、Worker名、workers.dev URL、更新方法、公開運用時の注意は以下にまとめています。
Node.js 22以降を用意して、次を実行します。
npm install
npm run devWranglerが表示するローカルURLをブラウザで開き、「部屋を作る」からルームを作成します。同じルームURLを別タブまたは別ブラウザで開くと、リアルタイム送受信を確認できます。
npm run checkNode.jsの単体テストと wrangler deploy --dry-run を実行します。
CloudflareのGit連携を使わず、Wranglerから手動デプロイする場合は次を実行します。
npm run deployこれは開発・運用上の別手段です。通常のセルフホストではCloudflareのGit連携を推奨します。
OSSとしてデプロイすることと、nanne公式ホスト版を一般向けサービスとして本公開・収益化することは別です。 公式サービス化、独自ドメイン、広告等は将来課題として扱い、その段階で docs/JAPAN_TELECOM.md と docs/LEGAL_REVIEW.md を再確認します。
まずは一つのルームで人間同士が話せる最小形を作る。
その後、実際に使いながら、必要だったものだけ追加します。
v0: concept
↓
v1: URLを作る / 入る / 話す / 消える
↓
vNext: 実運用で本当に必要だったものだけ
完成形を先に決めすぎず、「これだけなら今すぐ使える」最小点を探すプロジェクトです。
nanne — なんね?
MIT License · Copyright (c) 2026 yo4e