この記事について
個人開発は、最初からきれいに進みません。
Webサイトを作るだけでも、HTML、CSS、JavaScript、Node.js、サーバー起動、ドメイン、SEO、画像、スマホ対応、セキュリティなど、考えることが次々に出てきます。
自分も最初は、ただ「サイトを作って公開したい」くらいの気持ちでした。
でも実際には、ローカル環境でつまずき、公開方法で悩み、記事管理を変え、SEOを直し、ゲームページの見せ方も調整することになりました。
この記事では、その中で学んだことを 個人開発のロードマップとして10個 に整理します。
完成された正解ではなく、実際につまずきながら見えてきた進め方です。
結論:個人開発は小さく動かして直すのが一番強い
個人開発で一番大事だと感じたのは、最初から完璧な設計を狙わないことです。
もちろん設計は大事です。
ただ、作る前に全部を決めようとすると、何も進まなくなります。
自分の場合は、次の流れが一番うまくいきました。
- 小さく作る
- ローカルで動かす
- 実際に触って違和感を見つける
- 必要なところだけ直す
- 記録に残す
- 次の改善に進む
この繰り返しで、サイトもゲームも少しずつ形になっていきました。
施策1:ローカル環境の仕組みを理解する
最初につまずきやすいのが、ローカル環境です。
例えば、http://127.0.0.1:8000 や http://localhost:8000 が何を意味しているのかを曖昧にしたまま進めると、エラーが起きたときに原因を切り分けられません。
最低限、次の3つは理解しておくとかなり楽になります。
localhostは自分のPCを指す127.0.0.1も基本的には自分のPCを指す8000のような数字はポート番号で、どの入口を使うかを表す
Node.jsでサイトを起動している場合、サーバーが動いていなければブラウザで開いても表示されません。
逆に、サーバーが動いていても、違うポートを見に行っていたら表示されません。
確認するときは、まずこの順番で見ると切り分けやすいです。
- サーバー起動コマンドを実行しているか
- 起動時にエラーが出ていないか
- 表示しているURLのポート番号が合っているか
- ブラウザのURLが
httpsではなくhttpになっているか - 別のプロセスが同じポートを使っていないか
ローカル環境の理解は地味ですが、ここがわかるとトラブル対応が一気に楽になります。
施策2:最初は最小構成で動かす
個人開発では、最初から完成形を作ろうとしないほうが進みます。
例えばWebサイトなら、最初は次のような構成で十分です。
index.js
public/
index.html
package.json
このくらい小さい状態で起動できれば、あとから記事、プロフィール、ゲームページ、SEO、サイトマップを足していけます。
最初から全部を作ろうとすると、どこで壊れたのかがわかりにくくなります。
逆に、最小構成で動かしてから少しずつ足すと、壊れた原因を見つけやすいです。
自分のサイトも、最初から今の形だったわけではありません。
HTMLページを置き、Node.jsで配信し、記事をMarkdown管理に変え、SEOタグを足し、カテゴリページを整え、少しずつ育ててきました。
最初の目標は「完成」ではなく「起動して表示されること」でいいと思います。
施策3:エラー文は分解して読む
エラーが出ると、つい全部が壊れたように感じます。
でもエラー文は、落ち着いて分解するとかなり情報を持っています。
見るべきポイントは次の4つです。
- 何の種類のエラーか
- どのファイルで起きたか
- 何行目付近で起きたか
- 実行時エラーか、構文エラーか
例えば Node.js なら、SyntaxError は書き方のミス、Cannot find module はパッケージやファイルの読み込みミス、EADDRINUSE はポートが使用中の可能性があります。
ただし、エラーが表示された行だけが原因とは限りません。
その前の行でカッコを閉じ忘れていたり、設定ファイルの値が間違っていたりすることもあります。
自分はエラーを見たら、次のように考えるようにしています。
- まずエラー名を見る
- ファイル名と行番号を見る
- 直前に変更した場所を見る
- 変更を小さく戻して再確認する
- 同じエラー文で検索する
エラー文を怖がらず、手がかりとして読むことが大事です。
施策4:設定変更は記録してから触る
DNS、Cloudflare、環境変数、サーバー設定、メール設定のようなものは、適当に触ると戻すのが大変です。
コードなら履歴を見れば戻せることもあります。
でも管理画面で変更した設定は、変更前の状態が残らないことがあります。
そのため、設定を変える前に次のどれかを残すようにしています。
- スクリーンショットを撮る
- 変更前の値をメモする
- 何を変えたかを記事やメモに書く
.env.exampleのような見本を作る
特に公開環境では、SITE_URL、PORT、HOST、Cloudflare Tunnel の向き先、DNSレコードなどが重要です。
どれか1つがズレるだけで、ローカルでは動くのに公開URLでは見えない、という状態になります。
設定は「正しい値にする」だけでなく、「あとから説明できる状態にする」ことが大事です。
施策5:自作するものと任せるものを分ける
個人開発では、何でも自作したくなります。
それ自体は悪くありません。
むしろ勉強になります。
ただ、公開するサイトでは、自作するほど責任も増えます。
例えば問い合わせフォームを自作する場合、入力チェック、迷惑送信対策、メール送信、秘密情報の管理、エラー時の処理を考える必要があります。
作れるかどうかだけで判断すると、管理コストが見えなくなります。
自分の中では、次のように分けると考えやすくなりました。
- 学びたい部分は自作する
- サイトの本質ではない部分は外部サービスも使う
- セキュリティリスクが高い部分は慎重にする
- 運用が重い部分は持たない選択も考える
例えば、ゲームや記事表示は自分で作る価値があります。
一方で、問い合わせや高度な認証のような部分は、最初から無理に抱え込まなくてもいい場合があります。
「作れる」と「持つべき」は別です。
施策6:公開前にSEOの最低限を整える
個人サイトでも、公開するならSEOは無視できません。
SEOと聞くと難しく感じますが、まずは最低限で十分です。
公開前に確認したいのは次の項目です。
- ページごとのタイトルがあるか
- description がページ内容と合っているか
- H1が1つに整理されているか
- canonical が正しいURLを指しているか
- OGP画像が設定されているか
- Twitterカードが設定されているか
- sitemap.xml があるか
- robots.txt があるか
- スマホで読みにくくないか
このサイトでは、記事ごとに front matter へタイトル、説明文、カテゴリ、サムネイル、キーワードを書き、サーバー側でSEOタグを作る形にしています。
最初は手作業でもいいですが、記事が増えると必ず抜けが出ます。
だから、同じルールで自動生成できる形にしておくと後が楽です。
SEOは検索順位を上げるためだけではありません。
SNSで共有されたときにどう見えるか、Googleがページ内容を理解できるか、読者がクリックする前に内容を判断できるかにも関係します。
施策7:公開方法を早めに決める
ローカルで動いているものを外に公開するとき、公開方法でかなり悩みます。
選択肢はいくつかあります。
- VPSを借りる
- RenderなどのPaaSを使う
- 静的サイトホスティングを使う
- 自宅PCからCloudflare Tunnelで公開する
どれが正解というより、目的と管理できる範囲で選ぶのが大事です。
自宅PCからCloudflare Tunnelで公開する場合、外部から自宅サーバーへ直接ポート開放しなくても公開できます。
個人開発の実験としては便利です。
ただし、自宅PCが止まるとサイトも止まります。
MacやWindowsがスリープしたり、Node.jsサーバーを止めたりすると、公開URLでも見えなくなります。
安定性を重視するなら、VPSやクラウドへ移す選択肢もあります。
一方で、まず試す段階ならCloudflare Tunnelはかなり使いやすいです。
公開方法を早めに決めておくと、SITE_URL、CORS、sitemap、canonical の設定もブレにくくなります。
施策8:サイトマップとURLを意識する
記事やページが増えると、URL設計が大事になります。
例えば、記事ページを /articles/develop-log のようにするなら、あとから不用意に変えないほうがいいです。
URLが変わると、検索エンジンやSNSに残っているリンクが切れる可能性があります。
サイトマップも同じです。
サイトマップは、検索エンジンに「このサイトにはこういうページがあります」と伝えるための一覧です。
記事をMarkdownで管理し、サーバー側でsitemap.xmlを作るようにしておくと、記事追加時の抜けを減らせます。
ただし、HTMLファイルを消しただけで、必ず自動的にサイトマップから消えるとは限りません。
サイトマップがどの情報を元に生成されているかを理解しておく必要があります。
このサイトの場合は、記事Markdownや登録済みの静的ページ一覧を元にサイトマップを生成する形です。
だから、記事を追加・削除したときは、表示とサイトマップの両方を確認するのが安心です。
施策9:画像とアイコンを後回しにしすぎない
個人サイトでは、画像やアイコンを後回しにしがちです。
でも、実際に公開すると、画像はかなり重要です。
- ブラウザのタブに出るfavicon
- スマホでホーム画面に追加したときのアイコン
- 記事一覧のサムネイル
- SNSで共有されたときのOGP画像
- 制作物ページの見た目
画像がないと、サイト全体が未完成に見えやすくなります。
逆に、統一感のある画像やアイコンがあるだけで、かなりサイトらしく見えます。
このサイトでも、タブ用のアイコン、ヘッダーに表示するサイトアイコン、記事サムネイル、テトリスAI系の記事画像を整えました。
画像を扱うときは、次の点を意識するとよいです。
- ファイル名をわかりやすくする
- 同じ画像を別記事で使い回しすぎない
- サイズを大きくしすぎない
- altやdescriptionと記事内容を合わせる
- OGP画像として見ても違和感がないものにする
記事本文だけでなく、一覧で見たときの印象もサイトの一部です。
施策10:完成前でも記録する
最後に一番大事だと思っているのが、完成前でも記録することです。
完成してから書こうとすると、途中で何に詰まったかを忘れます。
逆に、詰まっている最中や直した直後の記録は、あとから見るとかなり価値があります。
記録しておくとよいのは、次のようなことです。
- 何を作ろうとしたか
- どこで詰まったか
- 何を試したか
- 何が原因だったか
- 最終的にどう直したか
- 次に何を改善したいか
これは読者のためだけではありません。
未来の自分にとっても、かなり役に立ちます。
個人開発では、同じような問題に何度もぶつかります。
そのとき、自分の過去の記録が一番わかりやすい資料になります。
実際におすすめする進め方
これから個人開発を始めるなら、次の順番がおすすめです。
- まず1ページだけ作る
- ローカルで表示する
- Gitまたはバックアップで戻れる状態にする
- Node.jsなど必要なサーバーを足す
- 記事や制作物を1つ追加する
- スマホ表示を確認する
- SEOの最低限を入れる
- 公開方法を決める
- サイトマップを確認する
- 作った過程を記事にする
この順番なら、途中で失敗しても戻りやすいです。
いきなり大きなサービスを作るより、小さな公開物を育てるほうが続きます。
まとめ
個人開発で学んだ一番大きなことは、つまずくこと自体がロードマップになるということです。
ローカル環境でつまずく。
公開方法でつまずく。
SEOでつまずく。
画像でつまずく。
記事管理でつまずく。
ゲーム制作でつまずく。
そのたびに調べて、試して、壊して、直して、記録する。
この繰り返しが、そのまま自分のスキルになります。
完璧な設計より、まず動くもの。
高度な仕組みより、自分が理解して直せる仕組み。
一気に完成させることより、続けられる形にすること。
個人開発は、そうやって少しずつ育てていくのが一番現実的だと思います。