kjxlkj
(AIが生成した文章を元に、lkjsxcが書き直している途中です。)
kjxlkjは、メモ帳機能を主機能としたデータ蓄積アプリです。
特徴
- 一人用のサービスであり、利用するためにはインスタンスを立てる必要があります。
- マークダウン記法でノートを書けます。
- 画像や動画なども、ノートとして保存できます。
- 全文検索できます。
- ノートについて、URLのエイリアス・お気に入り・公開非公開などを設定できます。
- 編集履歴も見られます。履歴ごとにURLが割り振られており、URLを知っている人はログインせずとも閲覧可能です。
- Rustで書かれており、とても高速・軽量です。
アーキテクチャと技術スタック
kjxlkj は、堅牢性とパフォーマンス、そして単一ホスト(Single-host)でのデプロイのしやすさを極限まで追求したモダンな技術スタックを採用しています。
- バックエンド・コア: Rust ランタイム(Axum フレームワークによるサーバーサイドレンダリングHTMLおよびJSON/Multipart APIの提供)
- データベース: PostgreSQL(リソースデータ、スナップショット履歴、検索インデックス、アナリティクス、設定、セッション管理をすべて一手に担う)
- オブジェクトストレージ: SeaweedFS S3 Gateway(メディアのバイナリデータおよびその履歴を効率的に保存)
- デプロイメント・検証: Docker Compose(Postgres、SeaweedFS、Rustアプリ、および検証用コンテナを一括起動し、ローカルでの完全なテストと単一ホストへの本番デプロイを同一の仕組みで実現)
ドキュメントこそが正典
kjxlkj の最大の特徴は、システム自体の仕様や運用ルールが、LLMの読み取り(Retrieval)に最適化されたフォーマットで記述されている点です。
本プロジェクトにおいて、docs/ ディレクトリ配下のMarkdownファイル群は、単なる説明書ではなく**「絶対に遵守すべき契約(Contract)」**です。
開発ルール: もし実装コードとドキュメント(Docs)の間に矛盾が生じた場合、常にドキュメントの記述を正とします。変更を加える際は、まずドキュメントを更新し、それに合わせてコードを追従させる必要があります。
ドキュメント自体も、「各ファイルは300行以内」「1つの箇条書きにつき1つの要件」といった厳格なルール(LLM Optimization Rules)のもとで管理されており、AIエージェントが迷うことなくシステムの全体像を把握できるようになっています。
始め方と各種ドキュメント
システムの詳細な仕組みや、開発・運用の参加方法については、リポジトリ内のドキュメントツリーをご参照ください。
- 公式ドキュメントトップ:
docs/README.md - プロダクトの目的と非目標:
docs/vision/purpose.md - アーキテクチャ・データ構造の正典:
docs/architecture/README.md - デプロイメント・最速起動ガイド:
docs/getting-started/compose-quickstart.md - LLM主導の変更におけるリポジトリルール:
docs/repository/README.md