ポエム
WebService
個人開発
保守

個人でウェブサービスを10年以上続ける技術

先日「WEBサービス10年選手のあるある座談会」というイベントに参加したのですが、他の参加者の皆さんは勤務先の企業のプロダクトが10年以上の歴史があるという方ばかりで、個人でウェブサービスを続けている人には会えませんでした。
個人のウェブサービスが終焉しかけていると言われ続けて久しい昨今ですが、そんな今だからこそ逆に個人のウェブサービスを続けてきた知見というのは少しばかりの希少価値があるのではないかと思い、この記事を書きます。

具体的にやってるサービスについて

アルバイト体験記@taikenki.jp というサービスを2005年ごろからやってます。
ttps://arbeit.taikenki.jp/
(これ以外にも色々とやっていたサービスもあったのですが今はほとんど残っていません)

続ける技術

KISSの法則を守る

サービスを見てもらうとわかると思いますが、実装されている機能はものすごくシンプルで「投稿できる」と「閲覧できる」の2つしかありません。
システムが複雑になればなるほどメンテナンスコストは急上昇していき、長く続けるのが難しくなります。
とにかくシンプルさを維持することが必要です。
幸いなことに個人がサービスを運営するときには、ユーザーが喜びそうにない新機能の実装を強要する上司はいません。

外部依存をなくす

AmazonのPAAPIなどを使うと最初から豊富なコンテンツがあるっぽく見えて良いのですが、依存しきってしまうとAPIが利用できなくなった場合にサービスが即死します。
APIの仕様変更や利用制限強化についていけなくなって閉鎖したサービスは山ほどありますし、実際に自分もいくつか経験しました。
なるべく外部の依存はなくして、いざというときに他のものに乗り換えられないか、独自のデータに切り替えられないかなどは将来を見据えて設計しておいた方が良いです。
(アルバイト体験記@taikenki.jpはサービスの独立性を追求するあまりSNSシェアボタンをつけるのさえ嫌がっていましたが、さすがに思想が尖りすぎだと思って最近シェアボタンをつけました)

インフラにメンテナンスコストをかけない

VPSを借りてインフラの保守を毎日続けるのは非常に難しいことです。
共有サーバーですむのであれば共有サーバーで、またはPaaSなどを利用して日々の面倒な作業がないようにした方が良いです。
共有サーバーだと年に数回は深夜帯にメンテナンスでサーバーが停止することがありますが、一人でやっていたらそもそも24/7の障害対応は難しいですし、その辺は割り切っています。

技術のアップデートはする

エンジニアが個人サービスをやる魅力の1つは、自分一人の判断でサービスに新しい技術を導入できることでしょう。
アルバイト体験記@taikenki.jpでもサーバーサイドはPure PHP->CakePHP 1.x->CakePHP 2.xと更新していますし、フロントエンドもレスポンシブ対応やアイコンフォントの導入などを都度行っています。
レガシーなままサービスを続けるという強固な選択もなくはないのですが、やはりエンジニアとして知見を広げる目的意識を持った方が継続する理由になりやすいです。

金銭的コストをかけず、少しばかりのマネタイズをする

趣味のウェブサービス開発とはいえ、赤字は抑えたいものです。
ドメイン代は仕方ないとしても、サーバーはなるべく安いところで、SSLもLet's Encryptなどを利用するのがいいでしょう。
マネタイズが全くできていないうちの、アクセスも少なくお金だけが出ていくサービスを続けるのはなかなか精神力が要るので何とか耐えましょう。
またサービスを運営する上では、欲を言えば日々のビール代くらいは稼ぎたいというのが人情というものですし、逆にビール代さえ稼げればサービスを維持するモチベーションは格段に上がります。(※個人差があります)

コンテンツが半自動的に追加・更新されるようにする

このサイクルを作るのが一番難しいところだと思うのですが、とにかく自力でコンテンツを追加し続けていくサービスはそのうち更新が面倒になって、サービスではなくアーカイブと化します。
そうするとアクセス数も減少する一方になり継続するモチベーションはだだ下がりです。
ただ完全にCGMにすると最初に投稿するユーザーを集めるのに苦労するので、自分も投稿するしユーザーも投稿できるハイブリッド型が今ならいいのかなと思います。

終わりに

という感じで、サービスを続ける技術というより、サービスを終了させない技術という内容でしたがいかがだったでしょうか。
あくまでここで書いたことは一例でしかなく、これらのルールを守るように運営してきた自分のサービスも閉鎖したものがたくさんあります。

僕が10年以上続けられなかったサービスのことを思うと、やっぱり難しいのは最後の2つのマネタイズとコンテンツ更新の問題でしょうか。
それさえクリアできれば、きっとウェブサービスはずっと続きます。

See Also

作ったWebサービスが誰からも使われなくてさみしい問題を解決する(しない)意識低い方法論 - NOT SO BADなブログ
https://blog.notsobad.jp/entry/2018/07/30/110000

ずっと下書きのままだったこの記事はこちらに影響され公開されました。
コンセプトからしてかなり重複する内容があるのですが、見比べてもらうのも面白いかなと思い、特に手を加えずそのまま公開しています。