📖

SplitMate完成報告:計画と実装の軌跡

に公開

はじめに

本記事は、夫婦・カップル間の割り勘精算を支援するプロダクト「SplitMate」の完成報告です。当初の計画書で掲げた「非エンジニアがCursorを活用して1週間以内に開発からリリースまでを一気通貫で進める」という目標に対し、実際にどのようなプロダクトが完成したのか、計画との違いや学びを含めて報告します。

プロダクト概要

完成したSplitMate

  • URL: https://splitmate-free-not-auth.onrender.com
  • 機能: 夫婦・カップル間の費用入力・配分・精算管理
  • 技術: React + TypeScript + Vite + Tailwind CSS
  • 特徴: 完全フロントエンド、識別子ベースのデータ分離

主要機能

  1. 費用入力・管理: スマホ最適化された直感的な入力フォーム
  2. 配分比率設定: 数値入力で負担割合を変更(デフォルト70:30)
  3. 精算管理: 費用の承認機能(不要な費用は削除で対応)
  4. 精算サマリー: 承認済み費用の自動計算と詳細表示
  5. LINE共有: 精算結果のワンクリックコピー機能
  6. データ分離: 識別子ベースの完全プライバシー保護

計画と実装の比較

📋 当初の計画

技術スタック:
- フロントエンド: React + Netlify
- バックエンド: Node.js + Express + JWT
- データベース: Supabase (PostgreSQL)
- 認証: Google認証
- ホスティング: Netlify + Render

🚀 実際の実装

技術スタック:
- フロントエンド: React + TypeScript + Vite + Tailwind CSS
- バックエンド: なし(完全フロントエンド)
- データストレージ: localStorage
- 認証: なし(識別子ベースのデータ分離)
- ホスティング: Render(静的サイト)
- コンテナ: Docker対応(本番用)

🔄 変更の理由と判断

1. バックエンド削除の判断

理由:

  • 要件の本質を見極めた結果: 我が家の精算では「その場で精算の方向と金額が分かれば十分」
  • データを永続的に保持する必要がない
  • ユーザーのプライバシー保護(サーバーにデータを送信しない)
  • 開発・運用コストの削減

メリット:

  • 開発期間の大幅短縮(1週間以内での完成)
  • インフラ費用ゼロ
  • メンテナンス不要

2. 認証システムの変更

当初: Google認証によるユーザー管理
実装: 8文字のランダム識別子によるデータ分離

判断の背景:

  • 要件の精緻化: 夫婦・カップル間での利用であれば、厳密な認証は不要
  • 「精算結果をコピペ共有するだけで使える」方が実用的
  • 個人データを預かる責任を避けたい

メリット:

  • アカウント作成不要でアクセス障壁を削減
  • 完全匿名での利用が可能
  • 夫婦・カップル間での簡単な共有(コピペ共有のみ)

3. ホスティングの統一

当初: Netlify(フロント)+ Render(バック)
実装: Render(静的サイト)のみ

理由: 構成の簡素化とコスト削減

技術的なポイント

1. データの扱い方

localStorage活用: データは利用者のブラウザ内にのみ保存。サーバーには一切送信されない
識別子分離: 8文字のランダムIDで完全にデータを分離
自動クリーンアップ: 精算完了後は承認済みデータを自動削除

2. ユーザー体験の工夫

モバイルファースト: スマホでの利用を前提とした画面設計
連続入力対応: レシート入力時、説明と支払者を保持して金額のみクリア
視覚的フィードバック: 精算金額や方向を大きく分かりやすく表示

3. 共有機能

LINE対応: 精算結果を夫婦・カップル間で簡単に共有できる形式でテキスト生成
ワンクリックコピー: 計算結果を即座にコピーして、LINEなどに貼り付け可能

開発プロセスでの学び

1. Cursor Agentモードの効果

  • 驚異的な開発速度: 基本機能を数時間で実装。従来なら数日かかる作業が一瞬
  • 品質の自動確保: バグの少ないコードを最初から生成
  • デザインの一貫性: 見た目の美しさも同時に実現

2. 段階的な機能実装

  1. Phase 1: 基本的な費用入力・表示
  2. Phase 2: 配分比率設定・計算ロジック
  3. Phase 3: 精算管理・承認フロー
  4. Phase 4: ユーザー分離・データプライバシー
  5. Phase 5: LINE共有・UX改善
  6. Phase 6: 本番デプロイ・Docker対応

3. 要件の精緻化が最大のポイント

  • 「本当に必要なもの」の見極め: 我が家の場合「その場で精算方向と金額が分かれば十分」
  • データ保持の必要性を疑う: 精算が終われば履歴は不要。むしろ邪魔
  • 認証の必要性を疑う: 夫婦間利用ならURLの共有で十分
  • 技術的な華やかさより実用性: 動くものを素早く作って使ってみる

実際のユーザー体験

💡 利用開始

  1. アクセス: URLにアクセスするだけで即利用開始
  2. 共有: パートナーにコピペ結果を送信するだけでデータ共有
  3. プライバシー: アカウント作成・ログイン不要

📱 日常的な利用

  1. レシート入力: スマホから「説明・金額・支払者」を30秒で入力
  2. 確認: 入力した費用をリアルタイムで確認
  3. 承認: ワンタップで費用を承認・却下

💰 精算時

  1. 自動計算: 配分比率に基づく精算金額の自動算出
  2. 詳細確認: 費用別の負担内訳を詳細表示
  3. LINE共有: 精算結果をLINEで送信可能な形式でワンクリックコピー
  4. データクリア: 精算完了後、承認済みデータを自動削除(無駄なデータを保持しない)

成果と課題

✅ 達成できたこと

  • 開発期間: 計画通り1週間以内での完成
  • コスト: インフラ費用ゼロでの運用
  • ユーザビリティ: スマホ最適化された直感的なUI
  • プライバシー: サーバーレスによる完全データ保護

マーケティング・次のステップ

  • これからやる。

まとめ

プロジェクトの成果

SplitMateは当初の計画と異なる形で完成しましたが、**「1週間以内でプロダクトを完成させる」**という目標は達成できました。特に、過度な複雑化を避けて必要最小限の機能に集中したことで、ユーザーにとって本当に価値のあるプロダクトを短期間で実現できました。

Cursorの衝撃

  • 開発速度: 「こんなに早くできるの?」という驚き
  • 学習不要: 知らない技術も、使いながら覚えられる
  • 完成度: 最初からそれなりに動くものができる不思議

非エンジニアでもできた

本プロジェクトで一番大切だったのは、実は技術力ではありませんでした。最も重要だったのは:

  1. 要件の精緻化: 「本当に必要なのは何?」を徹底的に考える
  2. シンプルさを保つ勇気: 「あれもこれも」の誘惑に負けない
  3. 完璧主義を捨てる: まず動くものを作って、使ってみる
  4. ユーザー目線: 技術的にかっこいいより、実際に便利か

技術は道具に過ぎません。Cursorのようなツールがあれば、アイデアと要件定義力さえあれば、誰でもプロダクトは作れる時代になりました。

今後の展望

SplitMateは現在MVPとして機能していますが、ユーザーフィードバックを基に継続的な改善を行っていきます。特に、データの永続化やより豊富な分析機能など、ユーザーの実際のニーズに応じた機能拡張を検討しています。

このプロジェクトが、同様の取り組みを考えている方々の参考になれば幸いです。


プロジェクト情報

  • 開発期間: 1週間
  • 技術スタック: React + TypeScript + Vite + Tailwind CSS
  • デプロイ: Render (Static Site)
  • 開発支援: Cursor Agent Mode
  • ライセンス: MIT
  • リポジトリ: GitHub

最終更新: 2025年7月

Discussion