📖
言語学習者向けボキャブラリ追跡ツール
言語学習者向けのボキャラブラリ追跡ツール trailsnail を開発している kazimir です。
このツールは自分のフラストレーションから始まりました 🌱
私と同じく外国語の学習を続けている方に、触っていただければ幸いです。
フィードバックをいただけるとなお嬉しいです 🙇♂️ (No pressure at all)
※フィードバックの項目はこのページの最後をご覧ください。
🤔 解決したかった課題
- 新しい語に出会って、意味を調べて「理解した」と思っても、後日その意味や背景の文脈を忘れてしまう。
- 市販の単語帳にはない「自分だけの語彙集」を作りたい。しかし、スプレッドシートでは機能が不足している。
- 登録も復習もブラウザから行いたい。特に復習は時間軸にもとづいて短時間/高頻度で行いたい(フラッシュカードをいちいちめくっていくのではこの要求定義を満たせない)
🧪 現在の状況
✅ MVPをデモ版として公開済み: https://trailsnail.fly.dev
(※初回アクセス時は Fly.io の性質上、数秒かかる場合があります)
⚠️ デモ環境はAPI制限あり(コスト制御のため)
📮 開発ログ(Substack): https://trailsnail.substack.com/p/cloze-it-or-lose-it
🎥 使い方説明動画
🌟 主な機能
- 文脈ごと記録: 語と一緒に、出会った文や URL を保存
- AI定義補助: 文脈をもとに意味候補を自動生成(OpenAI API使用)
- ホバー翻訳: 基本的に target language で理解するが、忘れてしまった時に
- 穴埋め問題(Clozeテスト): 文脈で active recall
- 学習進捗チャート: 語彙の記録・定着の可視化
- 時系列ビュー: 語彙の出会いを時間軸で整理
- コマンドマップによる表示切り替え: 究極の UI は CLI に行き着く
📸 スクリーンショット
🧑💻コマンドマップについて
検索フォームにおいて :(コロン)で終わる特定の語は「検索対象」ではなく「コマンド」として機能します。
コマンド | 機能 |
---|---|
view: tl | タイムライン表示に切り替える |
chart: | チャート表示に切り替える |
view: cloze | 虫食い表示に切り替える |
view: cloze hint2 | 虫食い表示に切り替えて先頭 2 文字のヒントを出す |
after: 20250601 | 時間指定によるフィルタ |
view: tl within: 3 | 直近 3 日間のみをタイムライン表示かつ虫食い表示にする |
噂によると sq: をはじめ、いくつかの隠しコマンドもあるとか...😆
コマンドマップ設計ドキュメント(個人 Notion から抜粋)
⚙️ 技術スタック
各環境共通
- Framework: Ruby on Rails 8
- API: OpenAI API, LinguaRobot, datamuse
- NLP: spaCy
- AI Agents: Junie, Claude Code, Amazon Q Developer
デモ環境
- SaaS: Fly.io
本番環境
- SaaS: AWS(ALB + ECS Fargate + Aurora Serverless V2 compatible PostgreSQL + Cognito + CloudFormation + SecretManager + CloudWatch)
🔭 今後の展開
- 認証機能およびユーザーテーブルの実装(すでに完了)
- spaCy による形態素解析による検索/ハイライト機能の精度向上(AppRunner で API 化)とキャッシュ化
- CLI 拡張
- view: compact で sentence のみ表示
- add: i: yolo, s: You Only Live Once で登録可能
- 同意語/反意語(synonym/antonym) サポート
- 紛らわしい語(lexical competition 候補)のサポート
- 略語やスラングサポート(thingamabob, yolo)
- AI による記憶しやすい例文の生成(crunch の意味は一般業界とコンピュータ業界では違う)
- Software Engineer 特化型語彙集
- Spec で利用する語彙集/例文集
- Github Issue, commit での頻出語
- Chrome拡張での語彙取り込み支援
- エクスポート機能(CSV/Anki互換など)
🙋♂️ フィードバック募集中!
- このコンセプト、語学学習者にとって魅力的に見えるか?
- UXの流れは直感的か?
- 動作速度や使い心地に課題はあるか?
- 穴埋めテストの形式は記憶の助けになるか?
- チャート表示:どんな情報がもっとも役立つ?
- 学習の振り返り方:時系列 or タグ or ランダム?
- 開発ログについてどう思うか?
- 追加してほしい機能は?
🏃 これから記事にしていきたいトピック
開発環境の効率化
- 共通の RAILS_ENV=development で開発環境(on Mac) とデモ環境(on Fly.io) を分ける仕組み(デモ環境のみ認証なしにするには)
- AWS Cognito は複数の redirect_uri, logout_uri を設定可能なのでこれを利用して環境変数 AWS=true で callback 先を変える仕組み
語学学習
- OpenAI Embeddings を利用したベクタ活用
- spaCy を利用した形態素解析 API の自作と AppRunner の活用
- AI 時代に外国語を学ぶ意味
- 結果が出るまで長時間を必要とする活動にどう向き合うか
インフラストラクチャ
- AWS Cognito Hosted UI のアップデート
- Amazon Q Developer を利用した IaC の高速イテレーションとドキュメント生成
- Aurora Severless V2 の設定
- Fly.io と ECR における Dockerfile およびコンテナイメージ管理の共通化
その他
- Zettelkasten x Notion x Obsidian の設計および実装
ご覧いただきありがとうございました 🐌
コメント、アドバイス、フィードバック、どんな形でも大歓迎です!
Discussion