プラットフォームを普通に作っていました。

いつもの流れです:
フロントエンドを構築し、バックエンドを接続し、フォームやバリデーションを扱う… いつもの作業です。

ある時点で、バリデーションが必要になりました(どのアプリでも必要ですよね)。
当然、こう思いました:

「よし、ライブラリを入れて先に進もう」

でも、何か違和感を覚えました。


🤔 きっかけとなった考え

同じ問題が何度も発生しました:

  • 一部のライブラリは重すぎると感じた
  • 他のものは抽象的すぎると思った
  • シンプルなものが必要なのに、結局多くのコードを書く羽目になった

そして、ふとこんな考えが浮かびました:

「自分でバリデーションシステムを作ってみたらどうだろう?」

何かに勝とうと思ったわけではありません。
大それた計画があったわけでもありません。

ただの好奇心です。


🧪 とても小さなところから始まった

最初は本気ではありませんでした。

こんな感じのものです:

const schema = {
  email: { rule: "email", errorMsg: "Invalid email" }
};

Enter fullscreen mode Exit fullscreen mode

そして、データに対してスキーマを検証するシンプルな関数を作成しました。

それだけです。

大規模なアーキテクチャも、深く考え込むこともありませんでした。


😅 そして、どんどん大きくなっていった…

プラットフォームの構築を続ける中で、改善を重ねました:

  • より多くのルールを追加
  • エラーハンドリングをよりクリーンに
  • スキーマの書き方をよりシンプルに
  • 構造を何度も調整

そして徐々に…「ただの小さなヘルパー」ではなくなっていきました。

本物のような感覚が芽生え始めました。


🚀 予想していなかった展開

ある時点で一歩引いて気づきました:

「待って…これは本格的なバリデーションライブラリになりつつある」

正直、最初からそんな目標はありませんでした。

ただ別のものを作りながら、自分の問題を解決しようとしていただけでした。


🧠 この経験から学んだこと

いくつかの気づきがありました:

  • 常に大きなアイデアから始める必要はない
  • 「自分のプロジェクトのためだけに作る」ことが、思わぬ大きな成果につながることもある
  • シンプルさは複雑さよりも実は難しい
  • そして最も重要なのは…実際に作ることで多くのことを学べるということ

📦 drea のご紹介

そうして、その小さな実験に名前がつきました:drea

特徴は:

  • 軽量
  • ルールベース
  • 使いやすい

複雑なチェーンはありません。
不要な抽象化もありません。
ただストレートなバリデーションです。


🙌 まだ初期段階 — フィードバックをお待ちしています

現在も改善を続け、将来性を模索しています。

もしバリデーションライブラリが「やり過ぎ」と感じたことがあるなら、
ぜひご意見をお聞かせください。

こんなものを利用してみたいと思いますか?
どんな機能を期待しますか?


💭 最後に

これは計画していたことではありませんでした。

最初はこう思っただけでした:

「この小さな問題をさっと解決しよう…」

ドキュメントはこちら:https://drea-docs.netlify.app

そして、気づけばこうなっていました:

「ライブラリを作ってしまったかも」

不思議なものです。