Tinkr:アップロードから支払いまでを担う3Dプリントプラットフォーム
Tinkrは私のスタートアップです。3Dファイルや絵をもとに、地域のプロバイダーが印刷して届けるプラットフォームです。6か月半にわたり、私がプロダクトとアーキテクチャを主導しました。私の指示のもとでAIコーディングエージェントが、API、4つのWebアプリ、クラウドスライスのサービス、そしてそれらをつなぐ決済とプロバイダーへの支払いの仕組みを構築しました。
Tinkrはまだ一般公開しておらず、顧客もまだいません。スクリーンショットは、ローカルで動かした実際のアプリケーションのものです。コードの大半はAIエージェントが書きました。私が担当したのは、プロダクトの定義、アーキテクチャの判断、開発ルールの策定、クラウドと決済の設定、そしてエージェントのレビューと自動テストを通過した変更すべてのマージ承認です。
課題
性能の良い3Dプリンターを持つ小規模事業者や個人は少なくありません。ところが、そこに印刷を頼むのはいまだに手作業です。ファイルをメールで送り、見積もりを待ち、銀行振込で支払い、無事に発送されるのを待つしかありません。子どもの絵を持った親のように3Dモデルを持っていない人は、そもそも頼むことができません。
Tinkrは、この流れを自動化するために設計しています。ファイルや絵を受け取り、見積もりを出し、顧客と同じ国のプロバイダーを見つけ、決済を受け、製作から発送までを追跡し、プロバイダーへの支払いをキューに登録します。
作ったもの
4つのフロントエンド、API、バックグラウンドワーカーからなる、ひとつのプラットフォームです。
- Tinkr Doodles 子どもの絵の写真 → AIが生成したフィギュア → 印刷して発送。
- MakerChip 印刷できるトークンをブラウザでデザインし、ファイルをダウンロードするか、印刷を注文できます。
- 決済ページ 内容確認と支払いのためのホスト型ページ。Stripe Checkoutへ引き継ぎます。
- コンソール 印刷プロバイダー、パートナー、運用担当者向けのツールと、ドキュメントポータル。
- API+ワーカー すべてのアプリを支えるドメインロジック、バックグラウンドジョブ、クラウドスライス。
技術面のポイント
TypeScript、React、Cloudflare Workers、Postgres、Stripe、Google Cloud Runで構築しました。難しかったのは画面そのものではなく、その裏にある例外ケースでした。
-
販売事業者(MoR)としての決済
支払いの通知が遅れても届かなくても、注文が二重に請求されたり未払いのまま残ったりしないよう、Stripe Checkoutを設計しました。
-
プロバイダーへの支払い
人の承認を挟む精算とバッチ支払い。再試行しても同じプロバイダーに二重に支払わない作りです。構築済みで、Wiseを試験的に導入していますが、本番での支払いはまだありません。
-
トランザクション中心のコア設計
注文への変更はすべて単一のデータベーストランザクションで行います。顧客、プロバイダー、バックグラウンドジョブが、互いの更新を壊すことはありません。
-
アップロードから見積もりまで
アップロードされたモデルをクラウドでスライスし、実際の印刷時間と材料から自動で価格を出して、地域のプロバイダーに依頼を出します。
-
安全策を備えたAI
モデルが想定外の動きをしても安全側に倒れ、1日の予算内に収まるAI審査と3D生成。
-
ブラウザで動くCAD
印刷できる3D形状をブラウザ内で生成するデザインツール。AIアシスタントは不正なデザインを作れない仕組みです。
プラットフォームとして構築
Tinkrのアプリはすべて同じAPIで動いています。このAPIは、自社のプロダクトから印刷プロバイダーのネットワークへ印刷ジョブを送りたいパートナーも使えるように設計しています。
アプリ登録
自社アプリもパートナーアプリも、それぞれ専用のキー、許可するオリジン、決済後の戻り先を登録し、個別に一時停止できます。
パートナーAPI
サンドボックス用と本番用のキー、見積もりと注文、ホスト型決済ページへの引き渡し、閲覧者ごとに内容を出し分けるOpenAPIドキュメント、署名と再試行に対応したウェブフック。
開発者ツール
TypeScript SDK、注文を全ステージに進めて試せるサンドボックス、そしてパートナーが自社のコーディングエージェントに貼り付けて使えるAI向け開発指示書。
ローンチ前:パートナーAPIは構築・文書化済みですが、本番で稼働している外部パートナーはまだいません。
開発の進め方
小さなチームを率いるテックリードのように開発を進めました。AIエージェントの1つが実装し、もう1つがレビューします。どちらも自分の作業を承認・マージすることはできません。最終的には、動作を変える変更すべてに、先に失敗するテストを求めました。developmentと本番への反映は、すべてCIの通過を条件にしました。
AIエージェントに最も監督が必要な場面もわかりました。決済の例外ケース、複数のクラウドサービスにまたがる設定、そしてまだ証明されていないのに「動きます」と言ってしまう場面です。
採用担当の方、クライアント候補の方へ
技術的な詳細までご覧になりますか?
完全版では、アーキテクチャ、決済と支払いの流れ、AIの安全策、追加のスクリーンショット、開発プロセスを詳しく説明しています。限定公開のため、閲覧を申請いただければ、通常1営業日以内にメールアドレスを承認します。承認後は、ワンタイムコードでサインインできます。
プロジェクトのご相談はこちら
mustafa.dualeh.dev