数年前、もし誰かに「なぜオンラインツールのサイトを作ろうと思ったのか」と聞かれたなら、私は少し不思議に思ったでしょう。
なぜなら、私の印象では、インターネット上にはすでに多くのツールウェブサイトがあったからです。
画像圧縮、PDF変換、JSONフォーマット、QRコード生成、色変換……ほとんどすべてのニーズに対して、数十、さらには数百のウェブサイトが見つかります。多くのツールは10年以上も運営され、巨大なユーザーベースを持っています。
では、なぜさらに新しいものを作るのでしょうか?
正直なところ、最初は私もわかりませんでした。
最初は、ただ自分の問題を解決したかっただけ
多くのプログラマーには一つの習慣があります。
問題に遭遇したとき、最初の反応はソフトウェアをダウンロードすることではなく、ブラウザを開いてオンラインツールを検索することです。
時には画像を圧縮する必要があります。
時にはJSONをフォーマットする必要があります。
時にはUUIDを生成する必要があります。
時にはただ画像をトリミングしたり、フォーマットを変換したり、QRコードを生成したりしたいだけです。
これらのニーズは複雑ではありませんが、毎日遭遇します。
そこで、私はさまざまなツールウェブサイトをブックマークし始めました。
ブラウザのブックマークはどんどん長くなっていきました。
ある日、私はとても興味深い現象に気づきました。
本当に快適だと感じさせるウェブサイトはほとんどありませんでした。
あるウェブサイトではコンテンツよりも広告の方が多いです。
あるウェブサイトは使用する前にログインが必要です。
あるウェブサイトは速度が遅く、小さな機能でも長い待ち時間がかかります。
あるウェブサイトではファイルをサーバーにアップロードしますが、自分のデータがどのくらい保存されるかわかりません。
また、あるウェブサイトは10年前のインターフェースのままで、モバイルではまったく正常に使用できません。
そこで、私は考え始めました:
もし自分がよく使うこれらの小さなツールを再び作ったらどうなるだろうか?
最初は、これはただの練習プロジェクトでした。
ビジネスプランもなければ、製品計画もありませんでした。
ただ、自分が毎日使いたいウェブサイトを作りたいだけでした。
コードを書くことは実は難しくない、難しいのは細部をしっかりやることだ
実際に始めると、機能開発はむしろ最も簡単な部分だとわかりました。
本当に時間がかかるのは、ユーザーがほとんど気づかないような細部です。
例えば、ページの読み込み速度です。
多くの人は、画像トリミングツールなら、少し遅くても問題ないと思うかもしれません。
しかし、私はそう思いません。
もしツールが3、4秒待つ必要があるなら、私は再び最適化する方が良いと思っています。ユーザーに余計に待たせたくないのです。
そのため、私は絶えずパフォーマンスの最適化を研究し始めました。
画像をどのように遅延読み込みさせるか?
JavaScriptをどのように分割するか?
どのリソースをキャッシュすべきか?
どのリソースを長期間キャッシュすべきか?
どのリクエストが最初の画面のレンダリングに影響するか?
どのコードが実際に読み込む必要がないのか?
少しでもスコアを向上させるために、私は何度もページパフォーマンスをテストしました。
時にはただ一つの設定を修正するだけです。
時にはただ数十KBのリソースを削減するだけです。
ユーザーはこれらの変更を感じないかもしれませんが、これらの最適化すべてが重なり合うことで、最終的にウェブサイト全体がより速く、よりスムーズになります。
ツールを作ることは、想像よりも複雑だ
始めたばかりの頃、ツールを作ることは、機能を書くことだと思っていました。
後になって、本当に長期間使用できるウェブサイトには、見えない仕事がたくさんあるとわかりました。
例えば、国際化です。
もし中国語のウェブサイトだけを作るなら、開発は実際には簡単です。
しかし、より多くの国の人が使用できるようにしたいなら、それは単にテキストを翻訳するだけではないことを意味します。
異なる言語のレイアウトも考慮する必要があります。
異なる国のユーザーの使用習慣。
検索エンジンが異なる言語のページをどのように認識するか。
URLをどのように設計するか。
ページタイトルと説明を異なる言語に対してどのように最適化するか。
これらのことは、機能ではないように見えます。
しかし、それらはウェブサイトが本当に多くの人にサービスを提供できるかどうかを決定します。
SEOは、想像よりも難しかった
以前は、ウェブサイトさえ作れば、検索エンジンは自然にインデックスすると思っていました。
後になって、物事はそれほど単純ではないとわかりました。
私はサイトマップを研究し始めました。
構造化データを研究しました。
ページタイトルを研究しました。
メタ説明を研究しました。
カノニカルを研究しました。
Open Graphを研究しました。
ページキャッシュを研究しました。
Core Web Vitalsを研究しました。
GoogleとBingがなぜあるページをインデックスし、またなぜ別のページを無視するのかを研究しました。
時には、非常に小さな問題でも、私は答えを見つけるのに数時間、さらには数日を費やすことがあります。
これは、このウェブサイトを作ることで得た最大の収穫の一つです。
それは、ウェブサイトがページとコードだけではないと本当に理解し始めさせました。
裏に隠れている多くのルールがあります。
なぜ無料を堅持するのか?
多くの友人が、これらのツールが将来的に有料になるかどうかと私に尋ねました。
現在、私の答えはノーです。
少なくとも大多数の基本ツールについては、それらが常に無料であることを望んでいます。
なぜなら、私自身がこれらのツールのユーザーだからです。
画像を圧縮したいだけなのに、有料のポップアップが表示されたくはないことを知っています。
ファイルを変換したいだけなのに、先にアカウント登録をしたくはないことも知っています。
ツールは問題を解決するべきで、新しい障壁を作るべきではありません。
もちろん、ウェブサイトにはサーバーが必要で、メンテナンスが必要で、継続的な開発も必要です。
将来的には、広告やプレミアム機能などのビジネスモデルがあるかもしれません。
しかし、普通のユーザーの最も基本的な使用体験に影響を与えないことを望んでいます。
ToolActという名前
多くの人がToolActを初めて見たとき、この名前が何を意味するのかと尋ねます。
実際、特に複雑な物語はありません。
私はこのウェブサイトが単にツールの詰め合わせではなくてほしいのです。
より重要なのは、ツールが本当に人々の行動(Act)を助けることです。
ツール自体には価値がありません。
本当に価値があるのは、それが時間を節約し、より早く物事を成し遂げるのを助けることです。
そのため、多くのツールをブックマークするよりも、ウェブサイトを開いて、使い終えて、閉じて、自分の仕事を続けることを望んでいます。
ツールは主役ではなく、背景になるべきです。
ウェブサイトを作ることは、学びでもある
多くの人はウェブサイトを見て、それは完成したと思います。
しかし、開発者にとって、それは常に始まりに過ぎません。
機能を一つ追加するたびに、私は新しいことを学びます。
メールシステム。
ログイン認証。
キャッシュ戦略。
国際化。
アクセシビリティサポート。
ブラウザ互換性。
検索エンジン最適化。
セキュリティ。
パフォーマンス最適化。
これらの知識の多くは、以前は文書にとどまっていました。
実際に自分で一度やってみると、どれだけ多くの細部があるかがわかります。
また、このプロジェクトのおかげで、私はユーザーが本当に何を必要としているか、ではなく、私がユーザーが必要だと思っているものにより注意を払うようになりました。
これから
ToolActにはまだ多くの改善点があります。
より多くのツールが登場します。
より多くの言語に対応します。
速度を継続的に最適化します。
また、ユーザー体験を絶えず改善します。
私はそれが一夜にして何千何万ものユーザーを持つことを期待していません。
むしろ、ここに来たすべての人が、自分の問題を素早く解決し、次回もまた戻ってきたいと願うことを望んでいます。
もしある日、オンラインツールが必要なとき、頭にToolActが浮かぶようなら。
そうなれば、このプロジェクトは半分成功したと思います。
最後に
インターネットには毎日新しい製品が登場し、また多くのウェブサイトが静かに消えていきます。
ToolActがどこまで行けるかはわかりません。
しかし、少なくとも今、私はまだ喜んでコードを書き続け、他の人が気づかないかもしれない細部を最適化し続け、本当に役立つ小さなツールを追加し続けます。
この記事を読んでいるなら、ToolActへようこそ。
ここのあるツールが、いつか、数分の時間を節約し、小さな問題を解決するのに役立つことを願っています。
もしそうなら、当初このウェブサイトを作り始めたことは価値のあることでした。