1. 初日の決断
2026年2月14日、18時06分。最初のコミットが刻まれた。「Initial commit: Voice QR application」——音声をQRコードに埋め込むアプリケーション。ここからすべてが始まった。
最初の75分間で、プロジェクトの根幹となる原則が確定した。ffmpeg.wasmを導入して完全静的サイトに移行し、CDN依存を全排除し、Google Fontsを自前ホスティングに切り替え、最終的にWebフォント自体を廃止してシステムフォントに統一した。外部への依存を一つずつ剥がしていった。
この「外部に依存しない」という原則は、以降のすべてのアーキテクチャ判断を規定した。サーバーを持たない。データベースを使わない。認証基盤を外部に委ねない。初日に確定した原則が、13日間を通じて一度もブレることはなかった。
2. Codec2への転換
翌朝7時36分、最大の技術的転換が起きた。Opus/FFmpegを捨て、Codec2 WASMに移行した。
Opusは高品質な音声コーデックだが、低ビットレート(1-2kbps)ではDTX(不連続送信)サイレンスフレームを出力する。音声ではなく沈黙が記録される。4kbps以上ではエントロピーが高すぎて圧縮が効かず、QR1枚に2-3秒しか収まらない。2-4kbpsの間に急峻なDTX崖があり、使える中間地点が存在しなかった。
Codec2は軍用低ビットレート音声コーデックだ。450bpsモードでは75バイト/秒。ロボティックだが聞き取れる音声を、QR1枚(2,953バイト)に最大約29秒収められる。人間の声を29秒——自己紹介、短い挨拶、想いの断片。QRコード1枚に収まる限界を最大限に押し広げた。
同日中にi18n(日英二言語対応)、サービスワーカーによるオフライン対応、そして「Voice QR」から「TokiQR」へのリブランドまで完了した。2日目にしてプロダクトの骨格が出来上がっていた。
3. 商取引の一日
2月17日は、商取引基盤をまるごと構築した日だった。注文フォーム、特定商取引法に基づく表記ページ、Wise決済統合、パートナーガイド、クーポンシステム——朝から夜まで、商業インフラを一日で立ち上げた。
同日、三層保存という概念が生まれた。第一層はQR紙面そのもの。第二層はGitHubリポジトリ。第三層は国立国会図書館(NDL)への献本。物理・デジタル・公的アーカイブの三重構造で、データの永続性を担保する。この思想は後にプロダクトの核心的な価値提案となった。
Cloudflare Worker経由のAPIプロキシもこの日に導入された。Google Apps Scriptへの直接アクセスを避け、エンドポイントを一本化した。外部依存を増やさない原則の中で、最小限の仲介層だけを許容する判断だった。
4. 捨てたもの
開発の物語は、加えたものだけでは語れない。捨てたものが、プロダクトの輪郭を決定づけた。
Safari印刷対応(2月20日)。この日だけで28以上のコミットを印刷レイアウトに費やした。iframe、image、canvas、PDF.js——あらゆるアプローチを試みた。Safariの印刷レンダリングは一貫性がなく、回避策を積み重ねるほど複雑さが増した。最終的にmacOS Chrome限定に絞り、Safari対応コードを全削除した。動くものを全ブラウザに届けようとする誘惑を断ち切った。
動画機能(2月25日 02:34-04:25)。FFmpegパイプラインとTokiVideoバイナリフォーマットを2時間で構築した。タブUI、再生機能、メタデータルーティングまで実装した。しかしWASMのメモリ制限でOOMが頻発し、実用に耐えなかった。04:25に全削除。2時間の成果を躊躇なく消した。
特許(2月21日)。弁理士に着手金を支払い、「特許は取れる」とお墨付きを得た。しかし出願前に辞退した。特許で守るよりも、オープンに公開し、速度で先行するほうがプロダクトの思想に合っていた。全ページから特許関連の記述を削除した。
うまくいかないものを引きずらない。動いていても思想に合わなければ捨てる。この姿勢が13日間を通じて一貫していた。
5. バルクモードからクレジットへ
2月24日から25日にかけて、プロダクトの商業的な柱が一気に立ち上がった。
まずPWA化とIndexedDBの導入。ブラウザにデータを永続化し、履歴ページとアーカイブページを追加した。ローカルファーストの基盤が整った。
続いてバルクモード。長時間の音声を複数のQRコードに分割し、PDF一冊にまとめる機能。1枚に収まらない記録を、複数枚で保存する——TokiQRの「マルチQR」体験の核心だ。
バルクモードの収益化としてクレジットシステムを導入した。HMAC-SHA256による改ざん検知、コードレス購入(個人情報不要)、1チャンク目は無料。Wiseの送金リンクを自動生成し、送金確認後にクレジットが有効化される。
この日、もう一つの転換があった。ZIPエクスポートをPDF(jsPDF)に全面移行したのだ。QRコードの集合体を「PDF」という汎用フォーマットで配布可能にした。さらに「特集権(Tokushu)」の概念が生まれ、NDLへの献本パイプラインが接続された。ユーザーの音声QRが国立国会図書館に収蔵される——プロダクトと公的アーカイブが直結した瞬間だった。
6. モニタープログラムの設計
2月26日、モニタープログラムが始動した。有料プロダクトを正規の購入フローで体験し、フィードバックを公開コメントとして残す仕組みだ。
モニターは通常の購入者と同じフローでクレジットを購入する。体験後、同額がWise経由で返金される。実質0円で有料体験ができる。この構造はギフトエコノミーに通じるものがある——金銭は循環し、実質的な交換は「体験」と「フィードバック」の間で成立する。
フィードバックはWisetag——Wiseの決済アカウント名——と紐づけて公開される。匿名レビューではない。「この人は実際に購入した」と第三者が確認できる、検証可能な信頼シグナルだ。ミステリーショッパーの「正規購入+返金」、Amazon Vineの「公開レビュー」、キャッシュバックの「金銭還元」——既存モデルの要素を再構成しつつ、検証可能性と転換ステップの不在という独自の位置に着地した。
モニタープログラムの完成は、プロダクトとしての一つの区切りだ。作る段階から、使ってもらい、声を集める段階に移行した。
7. 数字が語ること
qrリポジトリ: 765コミット、376プルリクエスト、13日間。lpリポジトリ: 881コミット、130本以上のエッセイ、499ページ、15日間。合計1,600超のコミットが2週間に凝縮された。
1日あたり平均59コミット、29プルリクエスト。コンタクトフォームは44分間で12コミットの反復を経て完成した。印刷レイアウトは1日で28コミット。この速度はAIとの協業——いわゆるvibe coding——なしには実現しなかった。
しかし速度は手段であって本質ではない。速く作れるからこそ、速く捨てられる。2時間かけた動画機能を躊躇なく消せるのは、2時間で作り直せるからだ。速度が「捨てる決断」の心理的コストを下げ、プロダクトの純度を保った。
13日間で何を作ったかより、13日間で何を捨てたかのほうが、プロダクトの本質をよく語る。
765コミット、13日間。
加えたものではなく、捨てたものがプロダクトの輪郭を決めた。
音声コーデックの技術的判断については「30秒音声の世界」で、ストレージの永続設計については「ストレージ戦略」で、モニタープログラムの詳細な設計思想については「モニタープログラムの設計」で、AI協業については「バイブコーディング」で詳しく論じている。