Cursorで作った「SplitMate」:夫婦・カップルの家計精算を変えるWebアプリ開発
はじめに
家計の精算って、地味にストレスありませんか?
我が家の場合、毎月の精算が夫婦間の小さな火種になっていました。Excel表に手動で入力し、計算ミスを見つけて修正し、「これ本当に必要だった?」と議論になって...。
そんな課題を解決するために、AIコーディングツール「Cursor」を使って1週間でWebアプリを開発しました。その名も「SplitMate」です。
🔗 実際のアプリ: https://splitmate-free-not-auth.onrender.com
今回は、サービスのコンセプトから開発の軌跡、そしてCursorを使った開発体験まで、包括的にお伝えします。
🎯 サービスコンセプト:「精算のストレスを、技術で解決する」
SplitMateとは
夫婦・カップル間の月次家計費精算を自動化し、手動作業とヒューマンエラーを削減する家計費精算システム
シンプルに言うと「スマホでレシート入力 → 自動で精算計算 → LINEで共有」が可能なWebアプリです。
核となる価値提案
- 時短効果: 月末の精算作業を5分に短縮
- ミス防止: 自動計算でヒューマンエラーを排除
- 透明性: 配分ロジックが明確で納得感がある
- 手軽さ: アカウント登録不要で即利用開始
😰 ユーザーが抱える課題
従来の精算方法の問題点
1. 手動作業の煩雑さ
🛒 レシートを集める
📝 Excelに手動入力
🧮 電卓で計算
💸 配分比率を適用
📊 精算金額を算出
💬 パートナーと確認
これを毎月やるのは、正直しんどい...。
2. 計算ミスによるトラブル
- 手動計算での単純ミス
- 配分比率の適用間違い
- 立替者の記録漏れ
- 結果として「金額が合わない」問題が発生
3. 透明性の欠如
- 「なぜこの金額になった?」が分からない
- 計算過程がブラックボックス
- パートナーからの信頼を得にくい
4. 時間コストの問題
- 月末の精算に1-2時間かかる
- 忙しい時期は精算が滞る
- 溜まった分の精算がさらに大変
実際の声(我が家の場合)
「また計算間違ってる...」
「この買い物、本当に家計費?」
「精算面倒だから、今度でいいや」
💡 SplitMateの解決策
1. スマホ最適化された入力体験
Before:家でPCを開いて入力
帰宅 → PC起動 → Excel開く → レシート探す → 手入力
After:買い物直後にスマホで入力
会計後 → スマホでアプリ開く → 30秒で入力完了
具体的な改善点:
- レスポンシブデザインでスマホでも快適
- 連続入力機能(店舗名と支払者を保持)
- 直感的なUI(説明・金額・支払者の3項目のみ)
2. 自動精算計算エンジン
計算ロジックの自動化
// 配分比率に基づく自動計算例
配分比率: 夫70% / 妻30%
夫の支払い: 10,000円
→ 夫の負担額: 7,000円
→ 妻の負担額: 3,000円
→ 精算: 妻 → 夫 3,000円
メリット:
- 計算ミスの完全排除
- 複雑な配分比率にも対応
- リアルタイムでの結果表示
3. 透明性の確保
計算過程の可視化
📊 精算詳細表示
├── 費用別の負担内訳
├── 配分比率の適用結果
├── 立替者・精算対象者の明示
└── 最終精算金額の根拠
パートナーが「なぜこの金額?」と疑問に思うことがなくなります。
4. プライバシー重視の設計
認証不要のデータ分離
- 8文字のランダム識別子でデータ管理
- サーバーにデータを送信しない(localStorage使用)
- アカウント作成・ログイン不要
- URLの共有だけでデータ共有が可能
セキュリティ面の配慮:
❌ 個人情報の収集なし
❌ サーバーへのデータ送信なし
❌ アカウント管理の煩雑さなし
✅ 完全匿名での利用
✅ 必要最小限のデータのみ保持
🛠️ Cursorを使った開発体験
なぜCursorを選んだのか
1. 非エンジニアでも本格的な開発が可能
従来のプログラミングでは数週間〜数ヶ月かかる作業が、Cursorなら数日で完成。
2. AIによる品質保証
- バグの少ないコードを最初から生成
- ベストプラクティスに沿った実装
- TypeScriptによる型安全性も自動で考慮
3. デザインも同時に実現
- Tailwind CSSを使った美しいUI
- レスポンシブデザインの自動対応
- アクセシビリティにも配慮
実際の開発プロセス
Phase 1: 基本設計(1日目)
💭 "夫婦の家計精算アプリを作りたい"
↓
🤖 Cursor: "React + TypeScript + Tailwind CSSで構築しましょう"
↓
✅ プロジェクト骨格完成
Phase 2: 機能実装(2日目)
機能追加のたびに:
📝 "費用入力フォームを追加して"
🤖 → 美しいフォームが完成
📝 "精算計算ロジックを実装して"
🤖 → バグのない計算機能が完成
Phase 3: UX改善(3日目)
📝 "スマホでも使いやすくして"
🤖 → レスポンシブデザイン完成
📝 "LINE共有機能を追加して"
🤖 → ワンクリックコピー機能完成
Phase 4: デプロイ(4日目)
📝 "Renderにデプロイしたい"
🤖 → Dockerfile生成 → 本番環境完成
Cursor開発の驚きポイント
1. 学習コストの劇的な削減
従来: React学習 → TypeScript学習 → デザイン学習 → デプロイ学習
Cursor: 「作りたいもの」を伝えるだけ
2. エラーの自動修正
🐛 エラー発生
📝 "このエラーを修正して"
🤖 → 即座に修正コード提案
✅ 動作確認完了
3. ベストプラクティスの自動適用
- ファイル構成の最適化
- コンポーネント設計の改善
- パフォーマンス最適化
- セキュリティ対策
📊 技術スタック:シンプルだからこその強さ
採用技術
Frontend: React + TypeScript + Vite + Tailwind CSS
Data Storage: localStorage (完全クライアントサイド)
Hosting: Render (静的サイト配信)
Container: Docker (本番環境用)
技術選択の理由
React + TypeScript
- 安定性: 大規模なコミュニティサポート
- 型安全性: バグの事前発見
- 開発効率: Cursorとの親和性が高い
Tailwind CSS
- 開発速度: デザインシステムが既に完成
- レスポンシブ: モバイル対応が簡単
- 保守性: クラス名の一貫性
localStorage
- プライバシー: サーバーにデータを送信しない
- コスト: インフラ費用ゼロ
- シンプルさ: 複雑なデータベース設計不要
🎯 実際の使用体験
日常的な利用フロー
1. レシート入力(30秒)
🛒 スーパーで買い物
📱 会計後すぐにスマホでアプリ開く
✍️ 「マルエツ / 3,000円 / 妻」と入力
✅ 保存完了
2. 月末精算(5分)
📊 精算管理タブを開く
👀 入力した費用一覧を確認
✅ 不要な費用は削除、必要な費用は承認
📋 精算サマリーで最終結果を確認
📲 LINEでパートナーに結果を共有
3. パートナーとの共有
💬 LINE: "今月の精算結果だよ"
📋 精算詳細をコピペ
💰 "妻 → 夫 15,000円"
✅ パートナーも納得
実際の効果
Before vs After
Before:
⏰ 精算時間: 1-2時間/月
🐛 計算ミス: 月2-3回
😰 ストレス: 高
💸 精算頻度: 月1回(重い腰)
After:
⏰ 精算時間: 5分/月
🐛 計算ミス: 0回
😊 ストレス: 低
💸 精算頻度: リアルタイム
🚀 今後の展望
短期的な改善計画
1. データ永続化オプション
現在はlocalStorageですが、ユーザーの要望に応じてクラウド保存にも対応予定。
2. カテゴリ分析機能
「食費」「日用品」などのカテゴリ別分析機能を追加。
3. 予算管理機能
月次予算設定と実績比較機能。
長期的なビジョン
1. 他の精算パターンへの対応
- 友人グループでの旅行費精算
- シェアハウスでの共益費精算
- 職場での歓送迎会費精算
2. 家計簿アプリとの連携
既存の家計簿アプリとのデータ連携機能。
3. AIによる支出分析
機械学習を活用した支出パターンの分析と改善提案。
💭 開発を通じて学んだこと
1. 要件定義の重要性
技術的な華やかさより、「本当に必要な機能は何か?」を見極めることが最重要。
2. ユーザー体験の追求
「技術的に可能」と「ユーザーにとって使いやすい」は別物。
3. Cursorの可能性
非エンジニアでも、アイデアさえあれば本格的なWebアプリが作れる時代。
4. シンプルさの価値
複雑な機能より、シンプルで確実に動く機能の方が価値がある。
🔚 まとめ:技術で日常の小さなストレスを解決する
SplitMateの開発を通じて実感したのは、技術は日常の小さな課題を解決するためにあるということです。
家計精算という地味な作業かもしれませんが、毎月のストレスがなくなることで、夫婦関係にも良い影響があります。「お金の話」が「喧嘩の原因」ではなく、「透明で建設的な会話」に変わりました。
Cursorの衝撃
最も印象的だったのは、アイデアから実装までの距離が劇的に短くなったことです。
従来: アイデア → 学習 → 設計 → 実装 → デバッグ → デプロイ(数ヶ月)
Cursor: アイデア → 実装 → デプロイ(1週間)
これにより、「思いついたらすぐ作る」が可能になり、創造的な活動への障壁が大幅に下がりました。
読者への提案
もし日常生活で「これ、もっと効率化できるのに...」と思うことがあれば、まずは作ってみることをお勧めします。Cursorのようなツールがあれば、プログラミング経験がなくても、想像以上のものが作れるはずです。
🔗 リンク集
Discussion