🚀

お悩み相談プラットフォーム『Sereni』作ってみた by Remix + Litestream

2024/09/21に公開

趣旨

この度、お悩み相談プラットフォーム ”Sereni” をリリースしました!!
本記事では、本サイトのミッションや使い方を紹介していきます!
https://serenikotoba.jp/

Sereniとは?

心の荷物を言葉にできる場所”をミッションにした匿名型のコミュニケーションプラットフォームです。
”心の荷物” とは、周りの他人には伝えづらい悩みや疑問を指しています。
「ひとりで抱え込んでいる心の荷物を吐き出せる場所を作りたい」
「誰かの心の荷物に共感し、理解することで、他人に優しくなれる社会にしたい」
そういった願いのもと、Sereniは作られました

Sereniで何ができるのか?

心の荷物を言葉にできる。以上です。笑。
UIも超シンプルにしています。

なぜ作ったのか?

aboutページでは、下記の通りに記載しています。

周りの他人には伝えづらい悩みや疑問を言葉にし、分かち合い、時とともに忘れていく。
この過程を繰り返すことで、悩みや疑問とうまく付き合えるようになる。
やがて、その自信が心の余裕となり、明日を生きる勇気になり、他人に少し優しくなれる。
そんな前向きな変化を信じているから。

要するに、本サイトを通じて、心の荷物(悩みや疑問)とうまく付き合えるようになれば、自分自身、そして他者との向き合い方に対して、前向きな変化が生まれると信じているから作ったという感じです。

ここでのポイントは、”周りの他人には伝えづらい悩みや疑問を言葉にし、分かち合い、時とともに忘れていく。” の部分で、決して”解決されること”をゴールにしていないことです。

個人の感想に過ぎませんが、心の荷物(悩みや疑問)への一番の対処方法は、”忘れること” だと考えています。
なぜなの?という説明は、ちょっと長くなるので、後の章で解説します。

技術スタックとAI活用

技術スタック

  • フレームワーク:Remix(フロントエンド/バックエンド)
  • CDN/DNS:Cloudflare
  • コンピューティング:Cloud Run
  • DB:prisma + Litestream(SQLite

ポイント① リアルタイムチャット機能

一応ページリロードをしなくとも、リアルタイムでチャットできるようにしています。具体的には、SSE(サーバサイドイベント)を採用して、各スレッドごとにイベントプッシュ&リスニングするようにしています。RemixのSSE実装については、下記動画が大変参考になりました。
https://www.youtube.com/watch?v=WUoXCSYiNKk&ab_channel=JanMarshal

ポイント② Cloud Run + Litestream

コストをかけずにSQLを使いたかったので、LitestreamでSQliteを永続化することにしました。こちらは、下記の記事が大変参考になりました。
https://zenn.dev/kou_pg_0131/articles/google-cloudrun-litestream

ポイント③ デザイン

デジタル庁のデザインシステムが大変参考になりました。
これからも使わせていただきます。
https://design.digital.go.jp/

AI活用

Cursorを利用して、ほぼAIにコーディングしてもらいました。
AIエンジンとしては、「claude-3.5-sonnet」が一番日本語とソースコードを読み取ってくれました。

まとめ

設計~開発~デザイン~インフラ~リリース、やっと一通りできるようになりました。
AIが無きゃ無理だった。ほんとにいい時代。
本サービス、どうぞ気軽にお使いください!
そして、これからも作り続けます!

【参考】なぜ解決ではなく、忘れることがゴールなのか?

心の荷物(悩みや疑問)への一番の対処方法は、”忘れること” だと考えています。

↑に対する理由を下記でつらつら書いています。
興味ある方だけどうぞ。。

解決をゴールにしてしまうと、一時の心の荷物を解消できたとしても、どうしようもない心の荷物を背負わなければいけない時に、押しつぶされてしまうと思っています。

なぜそんなことが起こりうると考えるか?
私の答えとしては、悩みや疑問は本来答えのないものだと考えており、答えが出せるものは”課題”や”問題”に区別されると考えているからです。

例えば、”今日の晩御飯を何にするか”という問いに対しては、例え冷蔵庫に何も無くとも”外食”や”食べない”という何らかの答えが出せますし、時間の経過とともに強制的に答えが出ます。
しかし、”過干渉な親をどうにかしたい”や”生きている意味が分からない”などの問いは、答えが出ません。前者に関しては、問いが親に帰結するため、子供がいくら行動したとしても、結局は親が答えを出すことになります。しかも、時間の経過とともに強制的に答えは出ません。こちらを答えの出るものに転嫁するならば、”過干渉な親からどう逃げるか”に切り替えて、自分の考え/行為に帰結させる必要があります。後者に関しては、図書館の哲学コーナーに行けば、様々な年代の様々な学者の考え/答えが出てきます。しかし、人類の歴史を持ってしても、画一的な答えが出ていないことから、こちらも答えが出ないものになると考えます。

答えの出ないものに対して取り組むことは、心身ともに体力を使う作業だと思います。この取り組みに対して、一度無理やり答えを出したとしても、また繰り返し答えを検証し続けることになります。悩みや疑問の大きさによっては、無理やり答えを出すこともできず、ただ体力だけ使われて、結果的に押しつぶされてしまうことが考えられます。

この状況を避けるべく、私は、心の荷物(悩みや疑問)の行きつく先は”解決すること”ではなく、他人と話してスッキリするか、他のものに没頭するか、課題や問題に転化させるかして、”忘れること”だと考えます。
そのために、本サイトの目指す姿としても、心の荷物を言葉にして、分かり合って、忘れることと定義しているのです。

Discussion