【ITニュース解説】How I Taught Myself to Code in 6 Months and Built Fuel My Work — An India-First Creator Platform
2025年10月04日に「Dev.to」が公開したITニュース「How I Taught Myself to Code in 6 Months and Built Fuel My Work — An India-First Creator Platform」について初心者にもわかりやすく解説しています。
ITニュース概要
Rahulは6ヶ月の独学でコーディングスキルを習得し、インドのクリエイター向けプラットフォーム「Fuel My Work」を開発した。これは、海外プラットフォームの手数料なしに、UPI決済でファンがクリエイターを直接支援できるサービスだ。彼は、構築を通して学ぶ重要性を語る。
ITニュース解説
システムエンジニアを目指す初心者にとって、一つのサービスがどのように構想され、開発され、成長していくのかを知ることは非常に貴重な経験となる。今回紹介するニュース記事は、Rahulという一人の開発者が、わずか6ヶ月で自己学習によってプログラミングスキルを習得し、インドのクリエイターのためのプラットフォーム「Fuel My Work」を立ち上げた物語である。この物語は、技術的な知識だけでなく、目の前の問題解決への情熱や継続的な学習の重要性を教えてくれる。
Rahulは2025年1月にプログラミング学習を開始した。最初に選んだ言語はPythonであった。当時、ChatGPTやGoogle検索、開発者向けのフォーラムなど、多くの情報源がプログラミング初心者にとって最も学びやすい言語としてPythonを推奨していたからだ。彼はPythonの基本的な文法を学び、簡単なスクリプトを作成することから始めた。しかし、次第に彼は、自分が本当に使いたいと思えるような、より実用的なアプリケーションをPythonだけで構築することの難しさに気づき始めた。単なるスクリプトでは、ユーザーが直接触れるようなインタラクティブなウェブサービスは作れないと感じたのだ。
この気づきをきっかけに、彼は2025年3月には学習の方向性を大きく転換した。ウェブ開発の基本となるHTML、CSS、JavaScriptに加え、現代のウェブアプリケーション開発で広く使われるReactとNext.jsというフレームワークの学習を始めたのである。この3月から4月にかけて、彼はウェブ開発の基礎を習得し、様々なプロジェクトを構築する中で実践的な経験を積んでいった。その過程で生まれたプロジェクトの一つが、「Buy Me a Coffee」というサービスに似たクローンであり、これを彼は「Fuel My Work」と名付けた。このプロトタイプこそが、彼のその後の開発人生を大きく変えることになる。
最初の「Fuel My Work」のクローンを開発している最中に、Rahulはいくつかの疑問を抱いた。「なぜインドのクリエイターに特化したプラットフォームがないのだろう?」「なぜインドの配信者やミュージシャン、教育者は、グローバルなプラットフォームを利用することで、アメリカドルを基準とした手数料によって収益を失わなければならないのだろう?」「なぜインドで日常的に食品や交通費、公共料金の支払いに使われている統一決済インターフェース(UPI)を、クリエイター支援の場面で利用できないのだろう?」これらの疑問が彼の心の中で結びつき、単なるクローンを作るのではなく、インドのクリエイターのための、より大規模なプラットフォームを構築するという明確なアイデアが生まれた。こうして、「Fuel My Work」は本格的なサービスとして誕生したのだ。
「Fuel My Work」は、クリエイターが自身のファンや視聴者と繋がり、彼らからのサポートを受け取るためのツールを提供するサービスとしてのソフトウェア(SaaS)プラットフォームである。現在提供されている主な機能には、クリエイターが自分の作品を紹介し、支援を受けられる「公開クリエイターページ」がある。また、インドのUPI決済に特化した「Razorpay経由のUPIファースト支払い」により、ファンは慣れ親しんだ方法で即座にクリエイターを支援できる。ライブ配信中にリアルタイムで支援者の名前を表示する「ストリームアラート&オーバーレイ」機能は、クリエイターと支援者の繋がりを強化する。支援の目標を設定し、達成状況を公開する「目標&サポーターウォール」は、信頼を築き、新たな支援者を呼び込む効果がある。さらに、「アナリティクス」機能でクリエイターは成長や支援者の活動、支払い状況を追跡でき、「投稿」機能を通じて最新情報やリンク、ニュースをファンと共有できる。将来的には、定期的な支援を可能にする「メンバーシップ機能」や、デジタル商品などを販売できる「ストアフロント」機能も追加される予定である。グローバルなプラットフォームと異なり、「Fuel My Work」はインドのUPIファーストな決済文化に最適化されており、クリエイターの収入が手数料で大きく目減りすることはない。
次に、このプラットフォームを支える技術的な側面について見ていこう。開発当初、Rahulはデータベースや認証、リアルタイム機能にSupabaseのようなマネージドサービスを積極的に利用していた。これは開発を迅速に進める上で非常に有効な手段だった。しかし、プロジェクトが成長するにつれて、彼は特定のベンダーに依存してしまう「ベンダーロックイン」のリスクや、将来的な拡張性、システムの信頼性について深く考えるようになった。
その結果、彼はより多くのコントロールと安定性を得るために、技術スタックの多くを自己ホスト型(自分たちでサーバーを管理・運用する形式)に移行することを決断した。現在の技術スタックは以下の通りだ。ユーザーが直接操作する画面やウェブサイトの表示を担当するフロントエンドには、高いパフォーマンスと開発効率で知られるNext.jsが採用されている。データの処理や裏側のロジックを担うバックエンドは、Express.jsというフレームワークで構築され、Dockerという技術を使って仮想プライベートサーバー(VPS)上で自己ホストされている。これは、自分たちでサーバー環境を管理することで、より高い柔軟性とコントロールを実現していることを意味する。
データベースには、信頼性と堅牢性で定評のあるPostgreSQLが自己ホスト型で運用されており、データベースの操作をより簡単にするためにPrisma ORMというツールが利用されている。多数のユーザーからのデータベース接続を効率的に管理し、システムの安定性を高めるためにPgBouncerという「コネクションプーリング」の仕組みが導入されている。リアルタイムでのストリームアラートなどの機能は、SSE(Server-Sent Events)とRedisの「Publish/Subscribe」パターンを組み合わせて実現されている。ユーザー認証にはNextAuth.jsが使われており、これにより認証システムも自分たちで完全に管理し、外部ベンダーへの依存を減らしている。このように、Supabaseの認証やリアルタイム機能から、自己ホスト型のPostgres、SSE+Redis、NextAuth.jsへと移行することで、Rahulはベンダーロックインを避け、プラットフォームの長期的な安定性と柔軟性を確保したのである。
正直なところ、Rahulはプロジェクトを開始した時点では、Docker、NextAuth、Prisma、Redis、SSEなど、これらの技術のほとんどを知らなかったという。彼は「Fuel My Work」を実際に構築する過程で、ほぼすべての技術を習得していった。何か問題に直面するたびに、Googleで検索し、ChatGPTを活用し、公式ドキュメントを読み込み、時には試行錯誤してシステムを壊しては直し、そして前に進み続けたのだ。彼自身、このプラットフォームが常に新たな問題をもたらすため、今も日々学び続けていると語っている。これが、何かを「実際に構築する」ことの醍醐味である。「最初にすべてのことを学んでから構築を始める」のではなく、「構築するからこそ学ぶことができる」という実践的な学習アプローチを示している。
なぜ「Fuel My Work」が重要なのか。インドのクリエイターはこれまで、自身のソーシャルメディアのプロフィールにUPI IDを記載するだけで、支援者からの感謝の気持ちやリアルタイムのアラート機能、持続的な関係構築の機会を失っていた。あるいは、インドの決済エコシステムに合わないグローバルなプラットフォームを利用することで、収入の一部を失うことを強いられていた。しかし、「Fuel My Work」の登場により、クリエイターはより多くの収益を維持でき、支援者は感謝され、クリエイターと支援者の間でより強固なコミュニティが築かれるようになった。これは単なる決済プラットフォームにとどまらず、クリエイターとファンとの関係性を深めるための重要な役割を担っている。
RahulがPythonの学習を始めた2025年1月には、その数ヶ月後にこのような本格的なSaaSプラットフォームを構築し、その経験を語るまでに至るとは夢にも思わなかっただろう。簡単なスクリプトから始まり、プロトタイプを経て、今やリアルなSaaSプラットフォームとなったこの旅路は、専門家でなくとも、目の前にある問題に真剣に向き合い、その解決のために学び続ける意欲さえあれば、大きなものを生み出すことができるということを教えてくれる。最高のプロジェクトは、「何を作ろうか?」と考えるのではなく、「日常の中でどんな問題を見つけたか?」という問いから生まれることがある。Rahulにとって、それはクリエイターが支援を受けながらも繋がりが希薄になるという問題であり、「Fuel My Work」がその答えとなったのだ。