アプリ開発を始めるとき、最初に悩んだのが技術選定だった。React? Vue? Next.js? 世の中のチュートリアルはフレームワーク前提のものばかりで、使わないという選択肢はなんだかダサく感じた。
かっこいい技術スタックへの憧れ
正直に言うと、Reactを使ってみたかった。コンポーネントベースの設計、状態管理、仮想DOM。技術記事を読むたびに「これを使えばスマートなアプリが作れるんだろう」とワクワクした。
でも、冷静に考えた。個人開発で一番怖いのは「開発が止まること」だ。フレームワークを導入すれば、環境構築、ビルド設定、依存パッケージの管理、バージョンアップへの追従。本来の機能開発以外に、大量のメンテナンスコストが発生する。
HTMLファイルをサーバーに置くだけ
ワンダフの技術スタックは恥ずかしいほどシンプルだ。フロントエンドはHTML・CSS・JavaScriptの素のファイル。バックエンドはPHP。データベースはMySQL。ホスティングはレンタルサーバー。
ビルドツールはない。npmも使わない。ファイルをFTPでアップロードすれば、それがデプロイだ。
「デプロイ」と言うのも恥ずかしいくらいシンプルだけど、これが個人開発では最強の武器だと気づいた。
壊れない環境のありがたさ
フレームワークを使っていると、久しぶりにコードを触ろうとしたらnpm installが通らない、みたいなことがよくあると聞く。依存関係の問題で、何も変えてないのにビルドが壊れる。
素のHTML/JSなら、そういうことは起きない。半年放置しても、ファイルを開けばそのまま動く。個人開発は「本業の合間にちょっとずつ進める」ことが多いから、この安定感は本当に大事だ。
PHPも同じ理由
バックエンドも、Node.jsやPythonではなくPHPを選んだ。理由はシンプルで、使っているレンタルサーバーがPHPを標準サポートしているから。サーバーの設定をいじる必要がない。PHPファイルを置けば動く。
「PHPはオワコン」という声もあるけど、個人開発のWebアプリで、安いサーバーで、確実に動く技術を選ぶなら、PHPは今でも十分に優秀だと思う。少なくとも僕の用途では。
身の丈に合った技術を選ぶ
技術選定は「何がベストか」ではなく「自分にとって何が続けられるか」で決めるべきだと思った。チーム開発ならフレームワークの恩恵は大きいけど、ひとり開発では「壊れにくさ」と「手軽さ」のほうが重要だ。
かっこ悪くてもいい。完成しないかっこいいアプリより、動いている泥臭いアプリのほうがずっと価値がある。
…と自分に言い聞かせながら、開発を進めている。