Tabipac — AIと一緒に作った旅行持ち物リストサービス

Tabipac — AIと一緒に作った旅行持ち物リストサービス

Tabipac — AIと一緒に作った旅行持ち物リストサービス

旅行のたびに「あれ持ったっけ?」と不安になる経験はありませんか?そんな課題を解決するために、AIと一緒に Tabipac(たびぱっく) を開発しました。


サービス概要

Tabipac は、旅行の持ち物リストを作成・管理・家族や友人と共有できるWebサービスです。

  • 旅行ごとにリストを作成
  • カテゴリ別に持ち物を管理(衣類、書類、日用品など)
  • URLを共有して家族・友人とリアルタイムでチェック
  • テンプレートで素早くリスト作成(海外旅行・国内・キャンプなど)
  • Googleログインでデバイスをまたいでデータを永続化

システム構成図

┌──────────────────────────────────────────────────────────────┐
│                       ユーザー (ブラウザ)                     │
└───────────────────────────────┬──────────────────────────────┘
                                │ HTTPS
              ┌─────────────────┴──────────────────┐
              ▼                                     ▼
 ┌────────────────────────┐          ┌──────────────────────────┐
 │        Vercel          │          │   Cloudflare Workers     │
 │  ┌──────────────────┐  │  REST    │   ┌──────────────────┐   │
 │  │  React + Vite    │  │ ◄──────► │   │   Hono (API)     │   │
 │  │  (TypeScript)    │  │          │   └────────┬─────────┘   │
 │  └──────────────────┘  │          └────────────│─────────────┘
 └────────────────────────┘                       │ SQL
                                                  ▼
                              ┌────────────────────────────────┐
                              │           Supabase             │
                              │  ┌──────────────────────────┐  │
                              │  │     PostgreSQL (DB)       │  │
                              │  │  trips / categories /     │  │
                              │  │  items / invite_links     │  │
                              │  └──────────────────────────┘  │
                              │  ┌──────────────────────────┐  │
                              │  │   Auth (Google OAuth)    │  │
                              │  └──────────────────────────┘  │
                              └────────────────────────────────┘

技術スタック

レイヤー 技術 理由
フロントエンド React + Vite (TypeScript) 高速な開発体験、型安全
バックエンド Hono + Cloudflare Workers エッジ実行で低レイテンシ、無料枠が大きい
データベース Supabase (PostgreSQL) RLS対応、Auth機能が内蔵
認証 Supabase Auth + Google OAuth ユーザー体験が良く実装が簡単
ホスティング Vercel フロントのデプロイが最速
ドメイン floto.co.jp サブドメイン 既存ドメインを流用

機能仕様

権限モデル

Tabipacは2つのロールを持つシンプルな権限設計です。

ロール できること
オーナー 旅行作成・編集・削除、アイテム追加・削除・チェック、共有リンク管理
メンバー アイテムのチェック・アンチェックのみ

共有URL設計

https://tabipac.floto.co.jp/share/{uuid}
  • UUIDv4(crypto.randomUUID())でランダム生成
  • 有効期限:7日 / 14日 / 30日 / 無期限から選択
  • オーナーによる即時revoke(無効化)対応

データベース設計(主要テーブル)

trips          -- 旅行(name, start_date, end_date, user_id)
categories     -- カテゴリ(name, icon, color, position)
items          -- 持ち物(name, is_required, is_checked, position)
invite_links   -- 共有リンク(token, expires_at, revoked)
audit_logs     -- 操作ログ(action, actor_role, item_id)

テンプレート一覧

🌏 海外旅行(パスポート・充電器・変換プラグなど) 🗾 国内旅行(宿泊セット・カメラなど) 💼 出張(名刺・PC・資料など) ⛺ キャンプ(テント・調理道具・ランタンなど) 📝 カスタム(ゼロから作成)


AIとの開発体験

今回はすべての設計・実装を Claude Code(Anthropic) と対話しながら進めました。

コードを書いてもらうだけでなく、

  • 「Googleログインはどうやって実装する?」
  • 「DBなしとDB版、どちらが良い?」
  • 「セキュリティ的に大丈夫?」

といった設計レベルの相談にも答えてもらいながら、ゼロからサービスをリリースできました。

AIとペアプログラミングする体験は、「頭の中のアイデアを整理しながらすぐコードに落とせる」という感覚で、一人で作るよりも圧倒的に速く、かつ学びも多い開発体験でした。


まとめ

Tabipacは家族・友人向けのクローズドなサービスとして作りました。 仕事しながら2,3時間くらいですかね…とんでもない時代に生きてます笑

また何か思いついて作ったらこちらで公開していきます! 引き続き、FLOTOをよろしくお願いします。

🔗 https://tabipac.floto.co.jp

© FLOTO Inc.