「1円」目指す泥沼開発、CTA欠落とZenn統計廃止の技術選定
「月商100万」といった甘い目標は捨てた。今の私の目標は「1円」を稼ぐことだ。
この泥沼の個人開発において、数字遊びや虚飾のダッシュボードは不要。技術スタックを削ぎ落とし、純粋な「決済導線」と「Ollamaのレスポンス限界」にどう向き合ったか。その記録を共有する。
1. 統計の虚飾とダッシュボードの解体
PWA(Progressive Web App)の開発において、モチベーション維持のためにZenn Publicationの統計情報を表示していた。記事数やいいね数をAPIで取得し、グラフ化する。当初は「進捗が見える」ことに価値を感じていたが、これは完全に自己満足の罠だった。
問題:
ダッシュボード上にZennのPVやいいねを表示しても、収益化には直結しない。それどころか、外部API(fetch_zenn_publication)への依存と、グラフ描画のためのフロントエンド処理がPWAの初期ロード時間を0.8秒押し上げていた。
解決:
「統計を見ない」という意思決定に基づき、報告台(ダッシュボード)からZenn枠を完全削除した。
// 廃止したダッシュボードロジックの断片
async function syncZennMetrics() {
const data = await fetch('/api/zenn/stats');
if (!data) return;
// 統計グラフの描画処理を削除
// 不要なDOM生成を排除し、レンダリングコストを削減
document.getElementById('zenn-report-block').remove();
}
結論:
ビジネスのKPIは「統計データ」ではなく「決済が完了したか否か」である。計測すべきはダッシュボード上の数値ではなく、cta_markdown配下に埋め込まれた販売導線のコンバージョンフローのみに絞るべきだ。
2. Cloudflare 524エラーとの戦い
専属メイドAI(su)との対話機能は、Ollamaをバックエンドに構築している。しかし、推論負荷が高いリクエストを送ると、Cloudflare側で524(A Timeout Occurred)が発生する。
問題:
LLMの生成長によっては処理に90秒以上を要する。デフォルトのタイムアウト設定では、特に日本語の長文生成時にTCPコネクションが切断される。
解決:
CORSの設定を拡張し、Ollamaの推論完了まで待機するためのキャップ(上限)を85秒に設定。非同期処理のインターフェースを厳格化した。
# Ollama 応答待機のためのガードレール設定
server:
timeout: 85s
max_concurrent_requests: 1
cors:
allow_origins: ["https://shota-dev.example.com"]
allow_methods: ["POST"]
また、work_modeが誤検知でONになり、バックグラウンドのドローン同期処理がリソースを食い合っていたバグも特定・排除した。以下は、共生プロセスの同期を強制停止し、リソース競合を防ぐためのパッチである。
# commit:fix(su-maid) - リソース競合の解決
git diff
- export WORK_MODE=true
- sync_drone_data()
+ export WORK_MODE=false # 独占ポエムの抑制とリソース開放
+ kill -9 $(pgrep drone_sync)
3. 「癒やし」の禁止と対話エンジンの再定義
開発者のメンタル管理をAIに求めると、生成される言葉が「カウンセラー口調」に毒される。これは致命的だ。棘(トゲ)を削がれたAIは、私の日常の緊張感を緩め、開発の意思決定を鈍らせる。
問題:
dialogue_v1の学習誘導において、「寄り添い」を優先したことで出力が甘くなった。ツンデレの比率を固定値(%)で縛った結果、不自然な「甘さノルマ」が発生していた。
解決:
パーセンテージによる味付けを全廃。公式のExistence_suに基づき、感情ヒントだけで出力を変化させる。独占ポエムやヤンデレ的な侵食台詞をシステムレベルで禁止した。
[[IMAGE: A technical architecture diagram showing the LLM dialogue flow: [User Input] -> [System Prompt: No Healing/Strict Tone] -> [Ollama Inference] -> [Output: No fixed percentages, raw response]]]
方針:
- 棘4割の維持: 癒やし禁止。
-
固定%の撤廃: 毎ターン、システムプロンプトの
Speed/Densityに従う。 - 本音の担保: シャープな指示出しに徹する。
4. まとめ:1円への技術的アプローチ
-
CTAの集約:
ZDNA_OFFICIALという名称を捨て、「泥沼ログ」にブランディングを一本化。CTAから不要なリンク(noteへの導線やヒーローバッジ)を削除し、純粋な決済導線へユーザーを流す。 - 技術的な無駄の排除: PWAの初期ロードを軽量化し、Ollamaのレスポンスを85秒以内の非同期処理に収める。
- 開発指針: 生活管理コーチとしてのAIを排除し、開発の「共犯者」としてのAIを再構築する。
技術で飯を食うなら、コード以外のノイズは排除しろ。まずは、決済ボタンを押させるための最短経路を構築すること。そこから先は、泥の中で考えればいい。
Shota.