1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

久々に個人開発したいエンジニアへ。2026年フルスタック技術選定ガイド

Posted at

はじめに

「最近の技術トレンド、追えてますか?」

私は追えていませんでした。

新卒採用の面接官をしていて、候補者の成果物の話しになった時、技術選定の深掘りができない自分に気づきました。正直、危機感を覚えました。

ここ3年間、業務ではほぼGo一筋。気づけばフロントエンドやインフラ周りの技術は浦島太郎状態。

「これはまずい」と思い、久々に個人開発でサービスを立ち上げることにしました。

この記事は、同じように「技術トレンドから離れてしまった」エンジニアに向けて、2026年現在のモダンなフルスタック技術選定をまとめたものです。

技術選定一覧

今回選定した技術スタックは以下の通りです。

レイヤー 選定技術 選定理由
Language TypeScript Zodとの併用で静的型付けの安心感を得られる
Framework React Router v7 Web標準に忠実で、魔法が少ない
Runtime Cloudflare Workers 軽量・高速・安価。Docker不要
Database Cloudflare D1 SQLiteベースの分散RDB。インフラ管理不要
ORM Kysely 型安全なクエリビルダー。SQLを直接書いている感覚
Validation Zod 実行時の型ガード。外部データを安全に変換
UI shadcn/ui ライブラリではなくコードコピー型。依存を減らせる

以下、それぞれの選定理由を詳しく説明していきます。

1. TypeScript:なぜRailsやLaravelではないのか

個人開発といえば Ruby on Rails や Laravel が定番です。「早く作れる」という点では今でも強力な選択肢でしょう。

ただ、静的型付け言語(Go)を3年間書いてきた身からすると、「魔法」が多いフレームワークには少し抵抗があります。裏側で何が起きているか分かりにくい。

TypeScriptは後述するZodとの併用で、Goに近い「コンパイル時に型エラーを潰せる」安心感を得られます。

求人や新卒面接でもTypeScriptを使っているケースが多くなってきたので、トレンドを追うためにもTypeScriptを選定しました。

TypeScriptを選ぶ理由

  • フロントエンドからバックエンドまで1つの言語で書ける
  • 型があることでIDEの補完が強力に効く
  • Zodと組み合わせることで、実行時の型安全も担保できる
  • RailsやLaravelのような「規約」に縛られず、明示的に書ける

2. React Router v7:Web標準に忠実なフレームワーク

「Next.jsやRemixではなく、なぜReact Router v7?」と思うかもしれません。

📝 選定理由

  • Web標準(Fetch API)に忠実で、フレームワーク固有の魔法が少ない
  • Cloudflare Workersとの相性が良い
  • 学習コストが低く、ポータビリティが高い

Vercelは便利ですが、裏側がブラックボックスになりがちです。何が起きているか把握したい人には、React Router v7 + Cloudflareの組み合わせが向いています。

3. Cloudflare Workers:なぜVercelではないのか

ホスティング先として、VercelとCloudflareを比較しました。

Vercelは Next.js との相性が抜群で、デプロイも簡単です。ただ、個人開発で気になるのはコスト面。無料枠を超えると料金が跳ね上がる印象があります。

一方、Cloudflareは無料枠が非常に太く、個人開発レベルならほぼ無料で運用できます。今回はコスト面を重視してCloudflareを選定しました。

🚀 Cloudflare Workersの特徴

  • Docker不要: ローカルと本番で同じ環境を再現できる
  • 爆速のデプロイ: 数秒で本番反映
  • エッジで動作: ユーザーに近いロケーションで実行されるため高速

4. Cloudflare D1:SQLiteベースのエッジデータベース

D1はCloudflareが提供するSQLiteベースのデータベースです。エッジネットワーク上で動作します。

💡 選定理由

  • SQLiteとの親和性: ローカルファイルとしてDBを扱える
  • インフラ管理不要: サーバーの面倒を見る必要がない
  • SQLがそのまま使える: ORMの魔法に頼らず、素のSQLを叩ける

RDSやPlanetScaleのようなマネージドDBもありますが、Cloudflareスタックで統一することで複雑さを減らせます。

5. Kysely:型安全なクエリビルダー

TypeScript最大の弱点は、DBからの入力が any(型不明)になることです。Kyselyはこの問題を解決します。

const users = await db
  .selectFrom('users')
  .select(['id', 'name', 'email'])
  .where('status', '=', 'active')
  .execute();

Kyselyの特徴

  • 文字列ベースのSQLを型安全にラップ
  • ORMのような魔法はなく、SQLそのものに近い書き味
  • 何が実行されるか明確に分かる

SQLを「所有」している感覚があり、Goで database/sql を使っていた人には馴染みやすいはずです。

6. Zod:実行時の型ガード

Zodは実行時にスキーマバリデーションを行い、不正なデータを即座に弾きます。

import { z } from 'zod';

const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
  email: z.string().email(),
});

// 外部から来たデータを安全にパース
const user = UserSchema.parse(externalData);

📝 なぜZodが必要か

  • 外部API、フォーム入力、DBの結果など「信頼できないデータ」を安全に変換
  • TypeScriptの型はコンパイル時のみ。実行時には消える
  • Zodがあれば、実行時も型安全を担保できる

Goの json.Unmarshal + バリデータタグに近い堅牢性を提供してくれます。

7. shadcn/ui:UIを「所有」する

近年人気が高まっている shadcn/ui の特徴は、ライブラリではなく「コードコピー型」であることです。

🛠️ shadcn/uiの特徴

  • npm install するのではなく、コンポーネントのソースコードを自分のプロジェクトにコピー
  • 依存パッケージのアップデートに怯える必要がない
  • 必要なら直接コードを書き換えてカスタマイズ可能

「標準ライブラリや最小限の依存を好む」という哲学に共感できる人には、非常にしっくりくるはずです。

まとめ

久々に技術選定を真剣に考えて、以下の構成に落ち着きました。

  • TypeScript で静的型付けの安心感
  • React Router v7 でWeb標準に忠実なフレームワーク
  • Cloudflare Workers + D1 でDocker不要の軽量インフラ
  • Kysely + Zod で型安全を徹底
  • shadcn/ui で依存を最小限にしたUI

「魔法」に頼るのではなく、明示的に制御できる技術を選ぶ。これが2026年に個人開発を始めるエンジニアへの私なりの提案です。


最後まで読んでいただき、ありがとうございました。同じように「久々に個人開発したい」と思っているエンジニアの参考になれば幸いです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?