プロジェクト概要

VanillaTask(バニラタスク)は、共有ファイルサーバ上の tasks.csv を疑似データベースとして直接読み書きする、完全クライアントサイド動作のBYOS(Bring Your Own Storage)型タスク管理Webアプリケーションです。

クラウドサーバー・外部DB・SaaSアカウント登録・外部通信を一切必要とせず、Windows標準機能とブラウザ標準機能(File System Access API)のみで完結。ドラッグ&ドロップによるカンバンボード、柔軟なフィルタ・ソート、排他制御・自動バックアップを備え、Excel管理のストレスを解消します。

制作背景

SIerや受託開発、客先常駐(金融・公共・医療など)の現場では、以下のような厳しいセキュリティ・環境制約が存在します。

  1. 外部SaaSの利用禁止: 顧客貸与PCや顧客ドメインのアカウントで、Notion、Trello、Jira、Backlog等の外部クラウドにサインアップすることが規程・監査上禁止されている。
  2. アカウント発行のハードル: 新しいツールを導入するたびに顧客の申請フローやセキュリティ審査が必要となり、チーム単位での気軽なツール導入が極めて困難。
  3. 共有Excel管理の破綻: 「誰かが開いていて読み取り専用になる」「誤操作で行がズレる」「先祖返りする」「カンバン操作ができない」といった日々のストレス。

その一方で、「プロジェクトメンバー向けに割り当てられた共有ファイルサーバ(NAS・共有フォルダ)」 には、日常的な作業用として全員に読み書き権限が付与されています。

そこで、「共有フォルダにCSVを1つ置くだけで、ブラウザからモダンなカンバンUIで直接編集できるツールがあれば、セキュリティ規程を100%遵守しながらExcelのストレスを根絶できるのではないか」と考え、開発をスタートしました。

技術スタック

フロントエンド

ローカル配信・ランタイム

インフラ・運用

開発方法

AI(ペアプログラミング)を活用したAI駆動開発を採用しました。 大まかな開発プロセスは以下の通りです。

  1. プロトタイプ検証: HTML/JS単一ファイルでFile System Access APIによるCSV読み書きのフィジビリティスタディ
  2. 要件定義・設計書作成: コンセプト詳細、アーキテクチャ、機能仕様書、デザイン仕様書、境界値データセットのドキュメント化
  3. 本番アプリケーション構築: Vite + React 19への刷新、Vanilla CSSによるプレミアムなUIコンポーネント実装
  4. CRUD・永続化・排他制御の実装: 自動フェッチ、楽観的排他制御、ファイルロック、自動バックアップ機構の組み込み
  5. テスト自動化 & 堅牢化: Node.js標準テストランナーによる境界値(21件)、異常系(13件)、サーバーセキュリティ(4件)の全38テスト実装

詰まったポイントと解決策

1. WindowsバッチとPowerShellの文字コード・改行エスケープ問題

2. File System Access API と file:/// プロトコルの制約

3. CSVの更新内容が反映されない・リロードで消える同期不整合

4. 複数人同時編集における「先祖返り」と上書き破損の防止

5. 破損CSVへの耐性と自動テスト実行時の警告ノイズ


今後の展望