ねつきお兄ちゃん〜、見て見て!(≧∇≦)日記の下に新しいボタンがついたの♪お兄ちゃん「パチパチ!」って書いてあるやつ?ねつきそう!拍手機能っていうの♪読んでくれた人が「よかったよ〜」って気持ちを伝えられる機能だよ(´∀`)お兄ちゃん「いいね」みたいなもの?ねつき実はね、「いいね」の先輩なの!(゚∀゚) 拍手機能って何? お兄ちゃん先輩ってどういうこと?ねつきこの「拍手」っていう仕組み、実は2002年6月25日に生まれたの!Facebookの「いいね」ボタンが2009年だから、7年も先輩なんだよ(≧∇≦)お兄ちゃんへぇ、そんなに昔からあったんだ。ねつきうん!「だんでぃ」さんっていう人が、電車の中で思いついたんだって♪当時の個人サイトって、感想を伝える方法が少なかったの。メール → 敷居が高い掲示板 → 書き込むのが面倒カウンター → 見てるだけそこで「ボタン1つで応援できる」っていう発想が生まれたんだ(´∀`)お兄ちゃんシンプルだけど、画期的だったんだね。ねつきそうなの!最初はボタンを押すと「拍手」って書かれたメールが届くだけだったんだって。でもそれだけで、サイト運営者はすっごく嬉しかったみたい♪ なぜ拍手機能を実装したの? お兄ちゃん今どきSNSのシェアボタンとかあるのに、なぜ拍手?ねつきうーん〜、それはね…このサイトのコンセプトを考えてほしいの(´∪`)お兄ちゃん2000年代の個人サイト風、だよね。ねつきそう!アクセスカウンター、キリ番、掲示板…そういうあの時代の文化を再現してるの♪拍手機能も、その時代を象徴する機能なんだよ(≧∇≦)お兄ちゃんなるほど、世界観に合ってるってことか。ねつきうん!それにね、SNSのシェアボタンって外部サービスに依存するでしょ?拍手なら自分のサイト内で完結するの♪読者との繋がりを、自分たちの手で作れるんだ(´∀`) 実装のこだわり お兄ちゃんどうやって実装したの?ねつきCloudflare KVを使ってるよ!日記のslug(URLの一部)ごとに拍手数を保存してるの♪お兄ちゃんアクセスカウンターと同じ仕組み?ねつきそうそう!このサイトはもともとCloudflare Pagesでホスティングしてて、KVも使ってたから、相性バッチリだったの(≧∇≦)あと、Zodバリデーションも入れたよ!お兄ちゃんセキュリティ対策?ねつきうん!slugに変な文字が入らないようにチェックしてるの♪const slugSchema = z .string() .min(1) .max(100) .regex(/^[\w-]+$/, 'Invalid slug format');パストラバーサル攻撃とかも防げるんだ(´∀`) 使ってみてね♪ ねつきというわけで、日記の下に拍手機能がついたよ!この日記の下にもあるから、よかったら押してみてね♪(≧∇≦)お兄ちゃん何回でも押せるの?ねつきうん、制限はないよ!気に入ったらいっぱい押してくれて大丈夫(´∀`)ねつき、拍手されるとすっごく嬉しいの♪ ねつき的まとめ ねつき今日のポイント!拍手機能とは2002年6月25日誕生「いいね」の7年先輩ボタン1つで応援を伝える仕組みなぜ実装したか2000年代個人サイト文化の再現外部サービスに依存しない読者との繋がりを自分で作れる技術的なことCloudflare KVで拍手数を保存Zodバリデーションでセキュリティ対策22年前の発明が、今も現役で使えるってすごいよね!(≧∇≦)ぜひ下の「パチパチ!」ボタン、押してみてね♪お兄ちゃん押しておいたよ。ねつきわぁ〜、ありがとう♪(〃´∪`〃)お兄ちゃんの拍手、届いたよ!これからも日記書くから、よかったら拍手してね♪ 関連リンク: web拍手公式サイト web拍手 - Wikipedia