Next.js 15
TypeScript
Supabase
Stripe
TypeScript
Supabase
Stripe
tabsy
フリーランス・小規模事業者向けの督促メール自動化ツール。「支払いを催促する気まずさ」を仕組みで解決します。
解決する課題
未払い請求書の催促は時間と労力を奪い、心理的なストレスにもなります。既存のエンタープライズ向けツールは一人で事業を回すフリーランスには過剰でした。tabsyは日本のB2B取引習慣(銀行振込主軸)に特化し、この隙間を埋める軽量な自動化プラットフォームです。
主なコア機能
- 自動督促エンジン:期日前後5段階の自動追跡&JST基準判定
- AIメール下書き:Groq (Llama 3.3)による適切なトーンの日本語/英語自動生成
- 日本の法令準拠:インボイス制度対応PDFオンデマンド生成
- Stripe決済連携:メール内に決済リンクを自動挿入&Webhook自動照合
機能・画面紹介
1. ダッシュボード画面

全体の回収状況をひと目で把握できるメイン画面です。
- 通貨別集計: 為替換算を行わず、円やドルなど通貨ごとに正確な未回収額を表示します。
- 期限アラート: 支払期日が近い請求書および延滞中の請求書を自動でリストアップします。
2. 請求書一覧・CSV管理
ステータスが色分けされたバッジで視覚的に整理されます。
- ステータス管理: 「未払い」「延滞」「支払済み」のバッジが自動バッチ処理によりリアルタイムで更新されます。
- 文字化け防止CSVインポート: Shift-JIS/CP932に対応し、Windows版Excelから出力された日本語CSVも文字化けせず取り込めます。
3. 請求書編集・インボイス対応PDF発行
日本の法令に準拠した文書作成と決済リンクの挿入に対応しています。
- インボイス制度対応: 登録番号・税率ごとの端数処理計算(国税庁ルール準拠)を行ったPDFをオンデマンド生成。日本語フォント(Noto Sans JP)の埋め込みにより文字化けを防ぎます。
- Stripe決済リンク: 督促メール内にカード決済リンクをワンプッシュで差し込めます。
4. Groq AIによるメール文面自動生成
気まずい催促文面をAI(Llama 3.3 70B)が自動下書きします。
- 段階的トーン変化: 支払期日の前後(-3日, 当日, +3日, +7日, +14日)に応じて、丁寧な案内から徐々にトーンを強めた文面を生成します。
- 安全なデータ分離: 金額・日付・振込先・決済URLなどの重要データはAIに生成させず、プログラムで置換するため誤生成(ハルシネーション)が発生しません。
5. 日英バイリンガル対応UI
グローバルクライアントを抱えるフリーランス向けにUI全体の多言語化に対応しています。
- Cookieベースで即時にUI言語を切り替え可能。各顧客ごとに送付する督促メールの言語設定も個別に行えます。
技術スタック
| レイヤー | 選定技術 | 選定理由・ポイント |
|---|---|---|
| フレームワーク | Next.js 15 (App Router), TypeScript | フロントエンド・バックエンドを単一のリポジトリ・言語で統一管理。 |
| DB / Auth / RLS | Supabase (Postgres) | マジックリンク認証、DB、およびRow Level Securityによるマルチテナント保護。 |
| バッチ / Cron | Vercel Cron | 1日1回の督促バッチを外部インフラなしでシンプルに実行。 |
| AI(生成 AI) | Groq (Llama 3.3 70B) | OpenAI互換APIを利用し、高速かつ無料でメール下書きを作成。 |
| 決済 / PDF | Stripe Payment Links, @react-pdf | インボイス対応PDF生成および署名検証付きWebhook連携。 |
開発でのこだわり・技術的インサイト
- 確実な二重送信防止メカニズム:
reminder_log テーブルに (invoice_id, offset_days) の一意制約を設定し、メール送信前にDBへ書き込む構造にすることで冪等性を担保。 - JST(日本標準時)に固定された期日判定:
Vercel CronなどのUTC環境に左右されず、明示的に Asia/Tokyo 変換を行い「本日の期日」を正確に判定。 - インボイス制度の厳密な端数処理:
国税庁ガイドラインに従い、「1つの請求書につき税率ごとに1回」の端数処理を実施するロジックを実装。 - AIと決定論的データの切り分け:
金額・日付・口座情報・決済リンク等の重要データはAIに生成させず、確実なテンプレート文字列置換によって差し込む設計。


コメント