個人開発プロジェクトを売買できるサービスmicro exitsをリリースしました
はじめに
こんにちは。Zennの記事投稿は初めてのdondonbeです。
個人開発プロジェクトを売買できるサービスmicro exitsをリリースしました。
普段は出版・メディア系のPMをしており、趣味で個人開発を3年ほどやっています。
働きながら、micro exitsという個人開発のプロジェクト・アプリを売買できるサービスをリリースしたので、開発した背景や、技術スタック、苦労した部分を共有します。
solomakerでは、開発背景や思いを中心に書いています。
サービス概要
micro exitsは、個人開発のプロジェクトを売買できるサービスで、サービス・アプリ・コードなどを出品し、販売できるようになっています。
現在はクレジットカード決済(Squareオンライン決済)のみ対応しています。
販売価格は100円から自由に設定でき、サービスの機能特性上、クレジットカード決済が可能な金額が限度となります。
開発の背景・モチベーション
日本国内では、数年前に「個人開発のフリマ」というサービスが存在しており、個人開発プロジェクトが販売できるプラットフォームがあったようですが、後に買収されて、現在はラッコM&Aになっているようです。
海外では、little exits・acquire・side projectors・indie hackerなど、プロジェクトを売買できるサービスが多数存在しています。一方で、個人開発に投下した時間を経済的利益へ変える手段が国内では足りないと考え、micro exitsを開発するに至りました。
また、AI開発によってプロジェクトを完成させるまでのハードルが下がっていることから、今後個人開発は増えていくと想定しています。
開発スケジュール
サービス構想は、11月末ごろから考えはじめ、類似サービスがないか、どのようなサービス内容とするか、ユーザーメリットは何か、入金・振込対応はどうするかなどを洗い出していき、およそ1週間は整理期間に充てていました。
12月頭から開発をはじめ、Githubコミット履歴を集計すると、28日開発に費やしていることがわかりました。
細かい時間計測はしていませんが、おおよそ1ヶ月でリリースということになります。
アーキテクチャ・技術選定
フロント:Next.js, TypeScript, Auth.js, Zustand, Zod, biomejs, tailwind
バックエンド:Cloudflare Workers, D1, R2
インフラ:Vercel
決済:Square
Next.js 15とReact 19がリリースされたばかりだったことから、キャッチアップしながらサーバーコンポーネントとサーバーアクションを中心に構成し、API Route Handlerは使わずCloudflare Workersとつなぎ込みをしました。
Next.js 15となったことで、これまでキャッシュとparamsから仕様変更になって若干戸惑いましたが、基本的な使い方はReactなのでこれまでのNext.js知識は活かせました。
Vercelはプロプランを利用していたのでそのまま継続してデプロイしています。
主要機能の実装詳細
決済
決済機能を作ったのが初めてだったので、戸惑いながら実装していました。なぜなら、お金を扱う責任があるからです。
決済ではStripeが人気なのと、Stripeアカウントは持っていたためひとまず実装をはじめて審査に通したところ、何回申請してもNGだったため、諦めてSquareを使い始めました。
Squareは申請当日からサンドボックスが使えるようになり、必要個人情報を提供すれば2-3日で本番環境での利用も可能になっている速さ。Stripeはまた再挑戦することにしよう。
SquareをNext.jsへ統合していくわけですが、Node.jsのSquareライブラリはTypeScriptサポートが弱く、typeが使えません。専用のサードパーティのライブラリを導入すればOKとのことですが、導入が面倒でそこだけ不満でした。
npmをチェックするとTypeScriptサポートが強化されているようです。クレカ決済の仕様変更もあるしチェックしないと...
使っているSquareライブラリはreact-square-web-payments-sdkでした。
未実装機能
現在、購入できるのは一人のみとなっていて、複数人の購入はできないようになっています。
これは今後の仕様変更により、一度きりの販売と、何度も販売できる機能追加をするか検討事項です。
検索やフィルタ機能は存在せず、後から機能開発していく想定で、まずは個人開発者のみなさんが販売できる環境を整えることを目指しました。
苦労した点
一番苦労したのは、決済処理をどのようにして支払い業務と整合性を保つか、業務フローを整理するかという点です。
このプロジェクトは個人開発という体裁ですが、自分は起業してから10年経つ法人を持っているため、請求処理は慣れていました。
ただ、データベースで請求処理フローを整えるのに時間がかかり、DBとSquare APIとの連携は初めてだったので、決済周りの複雑さを体感できたのは苦労しました。
今回の開発で決済機能導入の経験ができたので、ほかのサービス開発を進めるときには活かるようになったのはプラスです。
あとは、フロントとバックエンドのzodスキーマ・型共有が課題です。今はNext.jsの型定義をWorkersプロジェクトにコピペしています。今後pnpmのワークスペースか、tRPCの導入をするかして管理を楽にしたい。
サービス成長のために
B2B領域におけるM&Aサービスは日本国内にも存在しています。さきほどのラッコM&Aや事業承継のBATONZなどです。ただし、個人開発に特化したサービスはなさそうです。
そして、個人開発でホームラン級の大ヒット経験がないことから、ユーザー中心のマーケティングを勉強しながらキャンペーンなどを企画、機能開発に活かしています。
ここらへんは自分で考えて、即実行できる機動力の高さを活かした個人開発の強みですね。
リリースキャンペーン
リリース記念キャンペーンとして、期間限定で手数料無料と、個人開発プロジェクトを運営が買い取るキャンペーンを実施しています。ぜひ思い立ったら出品してみてください。
3ヶ月限定!手数料無料キャンペーン
プロジェクト買取キャンペーン
Discussion