皆さん、チャットツールでコミュニケーションするとき、絵文字や画像って使ってますか? 僕はよく使ってます。人とコミュニケーションするのに、文字だけだと堅苦しいイメージですよね。 例えば、
『OK です、それで先に進めて下さい。』
というフレーズだけだと、相手がどのような感情なのか読み取りにくいです。
そこで、次のような画像でコミュニケーションを取ると、柔らかい印象を与えることができます。

画像を使って会話をするためのサービスとして、Tiqav があります。
dev.tiqav.com現在は、サービス終了しています。 Tiqav2 は、その Tiqav を参考にして作りました。
Tiqav2 は、大きく分けて 2 つの機能があります。

検索する為には、全文検索サービスの Algolia を使います。
Algolia に保存する情報は、主に 3 つです。画像 URL と拡張子、そしてテキストです。 画像は画像変換&管理サービスの Cloudinary に保存します。保存後、Cloudinary より、画像 URL と拡張子が手に入ります。
テキストは、Google Cloud Vision API へ画像を渡すことでテキストを抽出します。 もちろん、手動でテキストを設定することもできます。

テキストで全文検索を行います。その結果の ID と Extension を組み合わせることで、 画像を表示することができます。Extension の種類は、Cloudinary のサポートするもの全てになります。
"gif", "png", "jpg", "bmp", "ico", "pdf", "tiff", "eps", "jpc", "jp2", "psd", "webp", "zip", "svg", "mp4", "webm", "wdp", "hpx", "djvu", "ai", "flif", "bpg", "miff", "tga", "heic"この画像を表示する機能を使うと、次のように Slack 上で画像を送信することができます。

詳しい機能は、次のリポジトリをご確認下さい。
今回、全文検索であったり画像管理は、SaaS に全て任せました。テキスト抽出はなくてもよかったのですが、Google Cloud Vision API が、そこそこ使えたため、そちらも使いました。
個人で開発する際、リソース(時間、お金、人)は組織に比べてとても小さいです。 SaaS は、1つのことを上手くやってくれるし、個人の利用範囲であれば無料なものが多いです。 ニッチなカスタマイズしたい要求がない限り、SaaS は大体の要望を叶えてくれます。 どんな種類の SaaS があるか知りたい方は、↓ のサイトを見てみて下さい。参考になるはずです。
SaaS に面倒なことは任せて、プロダクトコードに集中することは、私にとって、とても大切にしています。 ちなみに今回のプロダクトコードは、CleanArchitecture + InversifyJS で作りました。
Tiqav2 は、OSS として公開していますので、誰でも無料で構築できます。 ぜひ、使ってみて下さい。快適なコミュニケーションを目指しましょう!
-
タグ「成果物」の記事
個人サイト(ジブンノート)をリニューアルしました。本記事では、個人サイトをリニューアルした際にあった出来事などを振り返りたいと思います。ちなみに、個人サイトは以下のページです。ノート風デザインで、ブログ記事が読めるようになりました!🎉
個人サイトをリニューアルしました!🎉 https://silverbirder.github.io リニューアルは、今回で6回目です。制作期間は、去年の12月27日から今年の1月28日までの約1ヶ月間です。個人的には最速の開発期間でした。AIの力は偉大ですね。本記事では、個人サイトのリニューアルでこだわったポイントについて紹介します。
2026-01-28
個人開発として、機能リクエスト投稿サービスを作成しました。 サービス名は Fequest で、Feature Request の略です。 Fequest は、プロダクトに対して「この機能を追加してほしい」「ここを改善してほしい」といった要望
2025-12-28
タグ「サービス」の記事
どうも、Web業界で働き始めて9年目の駆け出しエンジニア、silverbirderです。Spotifyで音楽を聴いていると「この曲、どこかで聞いたことがあるけど、何の主題歌だったかな?」と思うこと、ありませんか?特にドライブ中や作業中に、ふと気になることが多いですよね。 私もそんな経験があり、気になったその曲が主題歌だったアニメを見始めたことがきっかけで、「簡単にタイアップ情報(アニメやドラマなど)を調べられるアプリがあったら便利だな」と思い、このアプリを作ることにしました。
結論 `iframe.contentWindow` から `twttr` オブジェクトを見つけて、`event.bind("rendered", () => {})` の第二引数に、表示処理を書くことです。 背景 `https://twitter.com/openwc/status/1427617679427440643` のような URL から、埋め込みコンテンツをブログサイトなどに表示したいです。 `https://publish.twitter.com/oembed?url=${URL}` のレスポンスの中の html が、埋め込みコンテンツになります。これを iframe の srcdoc に設定することで、埋め込みコンテンツを表示することができます。
TikTokへスクレイプするバッチをGCP上で構築しました。GCP構築のシステム設計話と、その構築時に、ハマったことを共有します。