旅する書斎Solo AI Producer
  • Works
  • Media
  • About
  • Contact
·

Tools

← Works

タイトラボ — なろうランキングを解剖する実験場

なろう小説APIから取得したランキング作品を語単位で分解し、書き手のための観察ツールとして公開しています。

何ができるか

  • 流行りの語をクラウド表示
  • タイトル類似度チェック(自分の案と既存作の重なり可視化)
  • タイトル文字数 × 順位の散布図
  • 語の共起ネットワーク
  • ジャンル別の特徴サマリ
  • 週次の自動データ更新

制作背景

執筆中に「このタイトル、既存作と被っていないか」「いま流行っている語は何か」を確かめたくなる場面が何度もありました。既存のランキングサイトは作品単位で並ぶため、語の傾向を俯瞰する手段がない。それなら自分で作ろうと思ったのが出発点です。

書き手のための観察ツールであり、マーケティング最適化を目的としたものではありません。作品の価値はランキング傾向ではなく、その作品自体にある — この姿勢はサイト内にも明記しています。

技術構成

領域採用技術
フロントエンドNext.js 14, TypeScript, Tailwind CSS
可視化Recharts, react-force-graph-2d
自然言語処理kuromoji(形態素解析)
データストアUpstash Redis(Vercel KV)
自動化GitHub Actions(週次cron)
ホスティングVercel
開発環境Cursor + Claude

開発プロセス

設計から実装まで、Cursor 上で Claude と対話しながら進めました。仕様書を起点にプロンプトを分割し、1 機能ずつ動作確認を挟みながら段階的に積み上げる形式です。

開発中に直面した課題と対処

  • 共起カウントの重複バグ:複数ランキングソース間で同一作品が重複加算されていた問題を、ncode 単位の作品ユニーク化で解決
  • kuromoji 辞書の CI 環境問題:GitHub Actions で辞書パスが解決できない事象を、process.env.CI 分岐と dotenv の override 制御で解消
  • force-graph 描画の崩れ:ライブラリ内部の ctx.restore() 実装と衝突していた問題に、ダミー save() を積む回避策で対処

設計判断のうち、特に意識した点

  • なろう API 規約の遵守(本文非取得、キャッシュ最長 2 週間、商用利用範囲内)
  • 商標ガイドラインへの配慮(混同防止注記、登録商標明示)
  • ユーザーが入力したタイトル案は保存しない(プライバシー)
  • 集計の単位をすべて「作品」に揃える(重複カウント防止)

現在の規模

  • 解析対象:約 500 作品(週次自動更新)
  • 集計対象期間:日間 / 週間 / 月間
  • 対象ジャンル:5 ジャンル(総合、異世界恋愛、現実恋愛、ハイファンタジー、ローファンタジー)

利用シーン

  • タイトル案の被りチェック
  • ランキング上位の語傾向の把握
  • ジャンル別の特徴比較
  • 文字数バランスの確認

書き手コミュニティで継続的にフィードバックを受けながら、要望を反映する形で機能を追加しています。

サイトを見る

本番環境の タイトラボ へ進みます(別タブで開きます)。

タイトラボを開く →

著作権・利用制限

© 2026 旅する書斎。プログラム・文章・デザイン・画面構成等の著作権その他の知的財産権は、旅する書斎に帰属します。無断転載、複製、配布、改変、および営利目的での二次利用(再配布・転売・サービスへの組み込み等を含む)を禁止します。上記行為には事前の書面による許諾が必要です。

『小説家になろう』『なろう』は株式会社ヒナプロジェクトの登録商標です。

本サイトに掲載するツールは、株式会社ヒナプロジェクトが提供するものではありません。

エール少額短期保険 弁護士保険コモン+ 契約者証ロゴ

旅する書斎は、個人として法律費用保険(いわゆる弁護士保険)に加入しています。