Blog Blog

Unwritten Chapters

Geometric JF Fusion

Blog

サーバー代 0円 で「いいね機能」を実現する。TURSO × SvelteKit 最強説

サーバー代 0円 で「いいね機能」を実現する。TURSO × SvelteKit 最強説

いいねボタン付けたい!

ブログにいいねボタン付けたい!それは突然の衝動でした。3日前にはなかった感情。そう、いつだって「あれやりたいこれやりたい」が出てくるのは突然。

お手軽にデータを保存したい

「イイネ」のカウントをするだけなので、サーバー側にデータを保存する仕組みを作るのは面倒だなぁ。という僕のワガママは、いつものように AI さんに解決してもらいました。いろいろ提案してもらって、エッジで動くSQLiteデータベースである TURSO というサービスを使うことにしました。

なぜ TURSO ?

Supabase, Firebase, Upstash, Neon, Cloudflare などが検討候補に上がりましたが、とりあえず簡単に使えて、軽量に扱える。しかも無料で、無料枠の制限が緩い、しかも低遅延。このへんが自分にとっては評価のポイントとなりました。

あんまりアクセスしたくない

いくら通信回数の上限が緩いと言っても、可能な限りアクセス数は減らしたい。いくら高速だと言ってもそのちょっとした時間が気になることもある。なので、「あんまりアクセスしなくていいように、『イイネ』数を自分のサーバーに仮保存しておく仕組み」も取り入れました。これで劇的にアクセス数は減らせました。

つまり、データの永続性は TURSO にまかせて、高速化を自分のサーバーで補う(キャッシュする)みたいな、いい感じの構成になりました。

「イイネ」の状態はどう保存してる?

これは、みなさんが閲覧に利用してるブラウザの Local Storage に「イイネ」状態を保存しています。なので、実はブラウザのデータを消したらもう一回いいねボタン押せます。

「イイネ」たくさんしちゃえー!

ありがとうございます!皆さんが「イイネ」してくれたら嬉しくなっちゃいます。連打はできない仕様ですが、記事ごとにポチッとしてくれるとモチベーション爆上がりです。この下のボタンです。「イイネ」の練習にご利用ください!

いいなと思ったら応援しよう!

Support チップで応援する

応援してもらえると最高に嬉しいです!