機能追加と安定性向上のために、非常に大規模な変更を多数行いました。
技術スタック・設計の変更、APIの変更、UIの改善、多数の不具合修正が含まれます。
セットアップ作成に関するクライアント側のロジックを見直し、様々な改善を行いました。
- 過去に投稿したセットアップを編集できるようになりました。
- 画像を添付する際、ファイルを選択したタイミングでサーバーへアップロードされるようになりました。
- UIが少し見やすくなりました。
Unityバージョンを記載する機能を削除しました。当初、Modular AvatarやFaceEmoのようなツールを使用したことを明示できる機能を検討しており、Unityのバージョンを記載するのはその一部とする予定でした。
様々な形態で提供されるツール群の管理をユーザーあるいは開発チームに依存するのは、機能の規模とコストが見合わないと判断したため、機能削除に至りました。
セットアップを検索する際、これまではキーワードでの検索と含まれるアイテムの指定のみ行うことができました。
今回のアップデートにより、含まれるアイテムを複数指定することができるようになり、タグでの絞り込みも可能になりました。
SupabaseのRPCで記述していたクエリは、現在はDrizzleを使ってAPI内に記述しています。
以前はpgroongaを使用して全文検索を可能にしていましたが、今回のアップデートで同等の機能をオミットしました。
これは、ユースケースを想定したときにオーバースペックだと判断したことに起因します。
今後のアップデートにより、同様の機能が再実装される可能性もありますが、今のところ未定です。
投稿・アカウント・Avatioのサービスなどに重要な変更があった場合、ユーザーが通知をサイト内で受け取るようになりました。
特に重要な通知については、サイト上部にバナーで表示されます。
今のところ、メールなどで通知をお送りすることはありません。
今まで、ユーザーの皆様からのフィードバックはアカウントIDと紐づいていましたが、より率直で的確なご指摘をいただくため、匿名でフィードバックが送信されるようになりました。
Nuxt によるブログを参考に実装されており、リバースエンジニアリングに強いプライバシー保護を実現しています。
投稿・ユーザーへの報告については、依然として送信したアカウントIDが紐づいています。
「誰が報告を行ったか」は重要なコンテキストであり、適切なモデレーションのために必要であるためです。
これまでは認証およびDBにSupabaseを使用していましたが、より安全かつ高度な認証処理のためにBetter-Authを導入することに決めました。
- マルチセッションに対応し、いつでもアカウントを切り替えることが可能になりました。
- ユーザーIDの仕様が変更されました。
- 誰でも自由にユーザーIDを変更できるようになりました。
- ユーザーIDは、主にユーザーページのURLに使用されます。
- 以前はランダムなUUIDが割り当てられていましたが、ユーザーページのURLが長くなる問題がありました。
現在の仕様ではBetter-Authのデフォルトに基づき、UUIDよりも短いランダムな文字列が付与されます。
- X (Twitter) のOAuth 2.0に対応したことで、認証がよりセキュアになりました。
- 今後別の認証方法を実装することが容易になりました。(具体的な今後のプランは未定です)
これに付随してDBがNeon Postgresへと移行しています。
かつて、AvatioではUIコンポーネントをほとんど自作していたたため、Nuxt UIはあえて使用しないこととしていました。
しかし、これは愚かな選択でした。
Nuxt UIを使用することで、より一貫性が保たれたUI設計となりました。
- ほとんどのページにおいてUIの改善が行われました。
- アクセシビリティが向上し、より適切なナビゲーションを行えるようになりました。
- 以前のUIに存在していた不具合の多くが修正されました。
- 新たな不具合を発見された方は、ぜひご報告をよろしくお願いいたします。
現在Avatioのコードは@Liry24がほとんど全て記述していますが、以前はWeb開発初心者だったこともあり、ソースコードは見づらく非常に管理がしづらいものでした。
そこで、すべてのコードを見直し、TypeScript / Zod / Drizzle ORMの恩恵をできるだけ多く得られるよう書き直しました。
以前よりもアップデートが容易になり、不具合の発生確率も低下したと考えています。
- サインアップした際、X (Twitter) で使用しているアイコンを使用するようになりました。
- 既定のフォントにNoto Sans JPを使用するようになりました。
- ログインをよりスムーズにするため、ログイン画面のCAPTCHAを削除しました。
- 適切にBot対策を行っているので、セキュリティに問題はありません。
- ショップのオーナー認証のフローを変更しました。
- SSRでより適切に動作するようページ・API を実装しました。
- APIから読み込んだデータをキャッシュするようになり、閲覧体験が向上しました。
- 投稿・ユーザーをBAN・非表示する機能を整備し、モデレーションがより適切になりました。
- エラー画面の挙動が安定しました。
- 多言語対応のための準備を行いました。今後、実際に翻訳が行われていく予定です。